Jednym z popularniejszych tematów dotyczących modyfikacji dronów DJI niewątpliwie jest temat przełączenia z “wykastrowanego” z mocy trybu CE na FCC. Sam podchodzę do tego dość sceptycznie, bo w większości przypadków do latania w zasięgu wzroku (VLOS) CE niekoniecznie jest potrzebne. W większości, bo w miastach usianych wieżowcami bywa różnie i czasem faktycznie komunikat o słabszym zasięgu może pojawić się jeszcze zanim dron na dobre zerwie z zasięgu wzroku (naszego lub obserwatora).

Wgrywanie DJI FCC na kontroler DJI RC (i RC2 oraz RC Pro)

Pomimo tego, co napisałem, to korzystam z takiej modyfikacji, ale – choć zabrzmi to dziwnie – nie po to, by mieć aktywne FCC, bo i tak mam przełączone na CE (tak, da się), a dla dodatkowych opcji, jakie taka modyfikacja daje. Przynajmniej w przypadku aparatury DJI RC, z której korzystam (to ta z wbudowanym ekranem) lub DJI RC Pro i RC 2, na których również działa ta modyfikacja. A jest ich całkiem sporo i niektóre z nich – jak możliwość zablokowania wyłączania migania LEDów w Mini 3 Pro podczas nagrywania wideo – całkiem przydatne. I aż dziwne, że w standardzie ich nie ma.

Tak więc specjalnie na potrzeby tego poradnika wytypowaliśmy kolegę znajomego kolegi, który ma DJI RC i zgodził się, by przykładzie aktywacji modyfikacji DJI FCC na jego kontrolerze DJI RC (RM330) zrobić zrzuty ekranu potrzebne do tego poradnika. On ma modyfikacje na kontrolerze, ja nie mam ~42 $, ale za to Wy macie ten poradnik.

Brak kontaktu z autorem

Jeśli ktoś ma już moda i korzysta, to pewnie będzie mógł korzystać dalej. Natomiast w przypadku nowych osób jest pewne problem – od końcówki stycznia 2024 nie ma kontaktu z autorem modyfikacji. Nie ma też na serwerze pliku to pobrania.

Natomiast zasada działania modyfikacji, jak i dostępne opcje są bez zmian, niezależnie od źródła “zakupu”. Wydaje się też, że same serwery działają (mod działa również z najnowszą wersją, czyli 01.03.1300, jak i 01.03.1400 dla RC, oraz najnowszą wersją oprogramowania RC Pro (RM510), czyli 03.02.0700).

Robisz to na własne ryzyko i na własną odpowiedzialność

Zanim przejdziemy “do mięsa”, muszę napisać, że wszystko, co przedstawione w tym poradniku robisz na własną odpowiedzialność. Zarówno w kontekście ew. straty środków z powodu oszustwa, uszkodzenia sprzętu (komputer, dron, kontroler), jak i prawnych aspektów korzystania z modyfikacji. Czy to w kontekście obowiązującego prawa, czy gwarancji na sprzęt.

W uproszczeniu: robisz to tylko i wyłącznie na własne ryzyko, a ja przedstawiam to tylko i wyłączenie w celach informacyjnych i/lub edukacyjnych.

Wymagania programowe

Zanim kupisz, musisz wiedzieć, że aktualnie program wymaga do działania komputera z systemem operacyjnym Windows 10 lub Windows 11, oraz zainstalowanego programu DJI Assistant 2 (Consumer Drones Series). Oczywiście też potrzebujesz móc podłączyć aparaturę DJI RC (to ta z wbudowanym ekranem) do komputera za pomocą USB. Jeśli któryś z tych elementów wydaje się problematyczny, to jest spora szansa, że modyfikacja się nie uda, a z tego, co wiem, zwrotów nie ma.

AKT 2024.04.13

Na początku sierpnia 2023 pojawiła się aktualizacja 01.03.0400 dla DJI RC (RM330). Z testów wiem, że również ta wersja, jak i nowsze, są wspierane, choć jeszcze przed (!) aktualizacją RC do wersji 01.03.0400+ trzeba pobrać nową wersję DJI FCC i ją zainstalować (tak, jeszcze raz, nawet jak wcześniej modyfikacja była już zainstalowana), i dopiero wtedy wykonać aktualizację do wersji 01.03.0400 (lub nowszej), i po jej zainstalowaniu ponownie zainstalować DJI FCC.

Ścieżka:

  • Wersja poniżej 01.03.0400: wgranie nowej wersji moda -> aktualizacja do 01.03.0400 lub nowszej -> ponowne wgranie moda
  • Wersja 01.03.0400 lub nowsza i działający mod: aktualizacja do nowszej wersji -> ponowne wgranie moda

Tak więc w przypadku DJI RC (RM330) pierwsza aktywacja modyfikacji FCC musi zostać przeprowadzona na oprogramowaniu w wersji 1.03.0100 lub starszej, i dopiero wtedy można zaktualizować oprogramowanie kontrolera. W przypadku DJI RC 2 i DJI RC Pro na obecną chwilę wspierane są wszystkie wersje.

Jest obecnie jednak “ratunek” również dla tych, którzy mają DJI RC (RM330) w wersji oprogramowania powyżej 01.03.0300 i chcieliby wgrać pierwszy raz modyfikację. W takiej sytuacji będzie to wymagać dodatkowych kroków – m.in. ręcznego skopiowania kilku plików z poziomu kontrolera, w odpowiednim momencie:

Jest to opcja jednorazowa, tylko dla pierwszej aktywacji modyfikacji na oprogramowaniu 01.03.0400 lub nowszym (mod działa również z najnowszą wersją, czyli 01.03.1300, jak i 01.03.1400).

Koniecznie też upewnij się, że modyfikacja DJI FCC wspiera oprogramowanie, które masz zainstalowane na DJI RC. Zwłaszcza jeśli niedawno były jakieś aktualizacje.

Modyfikacja prawie permanentna

To, co mi się podoba w przypadku tej modyfikacji (DJI FCC) na tej aparaturze (DJI RC, choć wspierana jest też aparatura DJI RC Pro i DJI RC 2), to fakt, że po wgraniu modyfikacji działa ona również po ponownym uruchomieniu drona i aparatury, czyli nie trzeba jej wgrywać przed każdym lotem.

Natomiast by się jej pozbyć, wystarczy przywrócić aparaturę do ustawień fabrycznych. Tak samo, jak po aktualizacji – o ile nowa wersja będzie obsługiwana – ponownie należy wgrać modyfikację. Poza tymi przypadkami, działa z każdym uruchomieniem aparatury.

Jedna licencja, wiele dronów

Dla wielu istotne może być też to, że modyfikacja dotyczy aparatury, a nie samego drona, więc w przypadku gdy z jednej aparatury korzystamy z kilkoma dronami, to z każdym powinno to działać (o ile jest na liście wspieranych).

Zakup licencji DJI FCC dla DJI RC (i DJI RC 2, oraz DJI RC Pro)

Zanim wgramy modyfikację, to trzeba ją kupić. A właściwie nie tyle modyfikację trzeba kupić, bo tą można pobrać bez problemu bez płacenia, a licencję, która pozwoli ją przypisać do naszego kontrolera. Bo trzeba przyznać, że wygląda to całkiem profesjonalnie – od “zaciemnienia” pliku wykonywalnego, by utrudnić jego dokładną analizę, po serwer aktywacji, z którym łączy się program i sprawdza, czy mamy aktywną licencję, co aktywacji modyfikacji na podłączonym kontrolerze.

Strona WWW lub konto na Telegramie

Gdy wpiszemy “DJI RC FCC” w wyszukiwarce, znajdziemy przynajmniej 2 strony, na których można kupić licencję za jakieś 60-70 USD (USDT). Nie jest to cena zaporowa, ale po co płacić 69 dolarów, jak dosłownie to samo, ale bez pośrednika (sorki Ramirez ;-)) można mieć za 40-42 USD(T)? No właśnie…

Tak więc z zakupem licencji najlepiej uderzyć do źródła, które znajduje się na telegramie. Wystarczy zagadać do użytkownika @djifcc:

Ale trzeba uważać, bo tak jak są różne strony “pośredników”, tak i na Telegramie jest sporo konto “niby jak”. Nie wiem, czy też bawią się w pośredników, czy próbują oskubać tych, co się pomylą. Nie sprawdzałem. Ja zawsze kupuję od użytkownika @djifcc i przynajmniej do tej pory zawsze było OK. Płatność albo 40 USDT na portfel krypto, albo 310 HKD na PayPala (ok 42 USD):

Adresów portfela krypto celowo nie podaję, tak samo, jak adresu e-mail PayPal, bo te potrafią się zmieniać. Po płatności wysyłamy potwierdzenie i otrzymujemy kod licencji (aktywacyjny), który wygląda np. tak:

pass_9f6e6800cfae7749eb6c486619254b9c

Oczywiście to kod demonstracyjny i raczej nie zadziała, ale też nie bronię sprawdzić, bo kto wie, może wygenerował mi się działający… ;-)

Czy to bezpieczne?

W tym momencie nie byłbym sobą, gdybym nie pochylił się nad tematem bezpieczeństwa. I nie mam tu na myśli ryzyka ewentualnego “uceglenia” aparatury (może się zdarzyć, warto uwzględnić i takie ryzyko) lub drona (też może się zdarzyć, i też warto uwzględnić i takie ryzyko), a bezpieczeństwo komputera.

Tak więc postanowiłem za pomocą serwisu VirusTotal najpierw przeskanować archiwum ZIP:

Sam plik wykonywalny:

Oraz dołączony plik DLL:

Jak widać, w przypadku pliku wykonywalnego (i archiwum) niektóre antywirusy coś tam krzyczą, ale nie wszystkie i niekoniecznie te najpopularniejsze. Powody tego mogą być różne, choćby “zaciemnienie” pliku wykonywalnego (zabezpieczenie przed dekompilacją), czy też brak podpisu. Decyzja należy do Was, ja w takich przypadkach na wszelki wypadek korzystam z wirtualnej maszyny, i tak zrobiłem i w tym przypadku. Na wszelki wypadek.

DJI Assistant 2 (Consumer Drones Series)

Kolejny krok, to pobranie i instalacja programu DJI Assistant 2 (Consumer Drones Series), który udział w całym procesie jest dość symboliczny, ale niezbędny.

Po podłączeniu włączonej aparatury DJI RC do komputera i uruchomieniu programu DJI Assistant 2 (Consumer Drones Series) przechodzimy do widoku kontrolera i w tym momencie można ów program wyłączyć. Jednak kontrolera nie wyłączamy ani nie odpinamy od komputera.

DJI FCC dla DJI RC (i DJI RC 2, oraz DJI RC Pro)

W tym momencie przechodzimy do programu “modyfikującego” (link do pobrania dostaniecie podczas zamawiania, nie podaję, bo z czasem może i on również się zmienić, ale jak ktoś chce, to jest widoczny na zrzucie ekranu z pierwszego testu w VirusTotal, czy oknie rozmowy na Telegramie).

W przypadku kontrolera DJI RC (RM330) w wersji oprogramowania powyżej 01.03.0300 pierwsze wgranie modyfikacji jest obecnie również możliwe, ale wymaga dodatkowych kroków – m.in. ręcznego skopiowania kilku plików z poziomu kontrolera, w odpowiednim momencie. Odpowiednia informacja powinna pojawić się w trakcie procesu wgrywania modyfikacji. Jest to opcja jednorazowa, tylko dla pierwszej aktywacji modyfikacji na oprogramowaniu 01.03.0400 lub nowszym.

Uruchamiamy program (plik “djifcc.exe”), chwile coś tam sobie “pomięli” i jeśli wszystko będzie OK, pojawi się okno na wpisanie numeru licencji (kodu aktywacyjnego):

A gdy on będzie prawidłowy i nadal wszystko będzie OK, to licencja zostanie przypisana do kontrolera (do wykorzystania w przyszłości, np. po aktualizacji oprogramowania) i pojawi się monit o ponowne uruchomienie programu:

Po ponownym uruchomieniu (cały czas bez odłączania aparatury) powinna pojawić się informacja, że modyfikacja została zainstalowana na kontrolerze:

Dla pewności można jeszcze raz uruchomić program, ponownie powinien pojawić się taki sam komunikat, z tym że z doświadczenia wiem, że wtedy dodatkowo kontroler najczęściej sam się restartuje (uruchamia ponownie). I dla mnie to jest właśnie ten moment, gdy mam pewność, że faktycznie modyfikacja została prawidłowo zainstalowana.

Plik tak jakby znany m.in. z DJI O3 Air Unit

Choć z powodów choćby zawodowych kusiło postawić środowisko, by dokładnie przyjrzeć się zarówno temu, co zawiera plik wykonywalny, jak wygląda komunikacja z serwerem autoryzacji, czy jakie zmiany wykonywane są na aparaturze, to ostatecznie nic z tego nie wykonałem. Może kiedyś…

Natomiast jedna rzecz rzuciła mi się w oczy od razy, czyli pojawienie się pliku “ham_cfg_support” w pamięci aparatury. Plik ten zwrócił moją uwagę dlatego, że kojarzę go z aktywacji FCC w kontekście drona DJI Avata, gogli DJI 2 / DJI Integra, czy ogólnie układów DJI O3 Air Unit i nie byłbym sobą, gdybym już dawno nie sprawdził, czy przypadkiem w DJI RC, czy Mini 3 Pro nie zadziała.

Tak więc wygląda na to, że działa (zapisany w pamięci aparatury), ale w przeciwieństwie choćby do DJI O3 Air Unit, gdzie wystarczy wrzucić pusty plik o takiej nazwie do pamięci (karta pamięci), to ten zapisany w aparaturze przez DJI FCC nie jest pusty – ma ponad 2 MB (2,68 MB dokładnie). Wydaje się też, że sam ten plik to za mało, nawet na tej samej aparaturze, bo po aktualizacji plik jest nadal, ale i tak trzeba wykonać wgrywanie moda na aparaturę.

Tryb CE czy FCC?

Oczywiście najłatwiej sprawdzić, czy modyfikacja działa, sprawdzając, w jakim trybie – CE czy FCC – będzie połączenie między kontrolerem (DJI RC lub DJI RC Pro) a dronem. W tym celu wystarczy uruchomić kontroler i drona, następnie przejść w ustawieniach DJI Fly do zakładki “transmission”.

W przypadku CE będzie ona wyglądać np. tak:

W przypadku FCC np. tak:

To, na co patrzymy, to czy linia “90 dbm” znajduje się mniej więcej na równi ze znacznikiem “1 km” (tryb CE), czy znacznie poniżej (tryb FCC).

Dodatkowe opcje i funkcje

I tak jak wspomniałem na początku, dla mnie ta modyfikacja to nie tyle możliwość korzystania z FCC (z możliwością przejścia na CE), ale dodatkowe opcje, które pojawiły się wraz z kwietniową aktualizacją.

Wykonywanie dodatkowych komend (opcji)

Zanim przedstawię listę aktualnie dostępnych dodatkowych komend (opcji), warto wiedzieć, jak z nich skorzystać. A korzystamy do tego z pola tekstowego w ustawieniach, a konkretnie… “name”, czyli nazwa drona:

Zamiast nazwy drona wpisujemy komendę, np “vled on”, i po wyjściu z ustawień, zostanie ona zastosowana, a pole “name” powinno zostać wyczyszczone.

Lista dodatkowych komend (opcji)

Nie będę ich tu szczegółowo omawiał, bo część jest oczywista, a z części nie korzystałem, a po prostu wkleję ich listę z opisem bezpośrednio z pliku “readme.txt” modyfikacji:

  • force_fcc on/off – enable/disable force fcc (drone will ignore country code setting)
  • rcgps on/off – enable rc gps or not (can not set RTH point to RC location after turn off)
  • led on/off – turn on/off drone led
  • atti on/off – turn on/off atti mode
  • vps on/off – turn on/off all vison sensors
  • manu on/off – turn on/off manul mode (be carefull)
  • vled on/off – enable led on/off when record (set led on first)
  • gps on/off – enable/disable drone gps
  • CC US/PL – set drone country code (can disable FCC mode)
  • droneid on/off – turn on/off droneid (need drone firmware support turn off droneid)
  • 5.8 on/off – enable/disable force 5.8GHz, disable 2.4G
  • flog off – delete all drone flight logs (the logs inside drone, logs will be deleted the next time the drone restarts)
  • landing on/off – enable/disable force landing (M3 firmware verion <= 900)
  • aled on/off – control the auxiliary led, if you can not control it in djifly
  • photo 1/1.5/2/3…10 – enable the automatic photo taking function and set the time for time-lapse photography, 1 means 1 second, 0 means disable
  • offline on/off – enable/disable offline mode, djifly can not use network
  • wp filename.kmz – load DJI waypoints kmz file from sdcard then execute the mission
  • mag on/off – command to turn off the compass error in case the aircraft cannot take off due to a compass error
  • 500 on – turn off the 120 meter altitude limit in Europe (C0)

Moja ulubiona (poza CC PL, by wyłączyć FCC ;-)), to “vled on”, dzięki której dron nie wyłącza oświetlenia podczas nagrywania, co może mieć zwłaszcza znaczenie w nocy, choć trzeba uwzględnić (przetestować), czy nie będzie to powodować, że na wideo lub na firmowanych obiektach, nie będzie tego widać.

Podoba mi się też opcja “landing on/off”, która wyłącza przymusowe awaryjne lądowanie. Do latania w pomieszczeniach może się przydać “gps on/off”, a dla prawdziwych twardzieli “manu on/off”, czy nawet “atti on/off” (ostrożnie ;-)).

W aktualnej wersji moda DJI FCC w przypadku dronów z klasą C0 (np. DJi Mini 4 Pro) instalacja moda automatycznie znosi też limit wysokości 120 metrów od miejsca startu.

Gdzieś tam w planach mam przetestować opcję z wczytywaniem “waypointów” z pliku, ale ten test ciągle odkładam, bonie tylko muszę przygotować odpowiedni plik, ale ta opcja nie zadziała to z Mini 3 Pro, którym obecnie latam.

Co istotne – modyfikacje (opcje) te działają (są aktywne) również po ponownym uruchomieniu drona/kontrolera. Przynajmniej te, z których korzystałem, czyli np. włączone światła (LEDy) podczas nagrywania wideo.

(!) Zgłoś błąd na stronie | Lub postaw nam kawę :-)
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Patryk