Переключение в FCC режим РУ и снятие лимитов для Mavic, Spark ,Phantom 4 , Inspire 2

Дмитрий853

Всем, привет. Мучаюсь вопросом отключения NFZ и включения FCC Boost Mavic Pro 01.04.0300.
Пытаюсь использовать метод FC_Patcher на примере DJI Mavic Platinum.
Дошёл до момента подключения мавика к юсб. отправляю команду
$ adb devices
List of devices attached
но Cygwin Terminal не видит мавика. Почему это может быть? В DUMLdoreV3.20 кнопку Enable ADB нажал.
Заранее спаси за помощь.

Michael66
Hixx:

Такой подойдёт?

С мавиком-2 может не прокатить. Он хорошо видит спутники GLONASS.

Tarichok
Hixx:

способ с закрыванием ладошкой модуля GPS и арма со снятыми винтами для получения FCC

Нет никаких проблем тут. Часто летаю с FCC (3-5 км), гемора никакого - закрываю рукой GPS, включаю дрон, жду конекта с пультом, убираю руку и сразу (2-3 сек) завожу (не взлетаю, а стиками!!!). Все! (ну еще +пару сек чтобы выключить FakeGPS, иногда и DJI GO закрываю и открываю еще раз чтобы дистанцию до пульта показало, +еще пару сек.)
Но мод, конечно, удобней)

Hixx
Tarichok:

Нет никаких проблем тут. Часто летаю с FCC (3-5 км), гемора никакого - закрываю рукой GPS, включаю дрон, жду конекта с пультом, убираю руку и сразу (2-3 сек) завожу (не взлетаю, а стиками!!!). Все! (ну еще +пару сек чтобы выключить FakeGPS, иногда и DJI GO закрываю и открываю еще раз чтобы дистанцию до пульта показало, +еще пару сек.)
Но мод, конечно, удобней)

Если вы не фанат взлета/посадки в руку - да, нет проблем. А если пришел в пыльное/грязное/мокрое место без “картоночки” - взлетать только с рук, а там особо не понакрываешь. Вот тут либо глушилка, либо мод, либо кепка )) Я сегодня именно так испытывал свой девайс - пыль, грязь, трава, ни квадратика асфальта - достал, надел, взлетел с руки (кстати, автовзлетом тоже работает - я его носом жму и слайдер носом смахиваю) - все ок.

Dozor-SPb

Мнеб такой нос - я бы ни с кем не разговаривал

=vados

Приветствую! Хочу поделиться опытом установки DJI-FC-Patcher на Mavic Pro. Надеюсь, что мануал будет полезен. Поскольку к программистам себя отнести не могу, думаю что всё описал более чем доступно.

P.S. Словил себя на мысли, что патчить было по-интереснее чем пользоваться результатами работы))

Моя работа основывалась на совместном использовании описания методов применения патчера, указанных тут - dji.retroroms.info/howto/fc_patcher_tool и в оригинальном посте, - github.com/o-gs/DJI_FC_Patcher. Автор описания, приведённого в первой ссылке, в общих чертах всё объяснил, но, как мне кажется, намеренно упустил несколько нюансов. Так что, пришлось искать ответы в тексте оригинального поста, хотя он под Win64 не адаптирован.
В настоящим мануале приводися пример с Mavic Pro, прошивка 01.04.0300. Работа будет проводиться в среде Windows и Linux-песочнице. Для начала, подготовим рабочий каталог для размещения необходимых нам файлов. При параллельном использовании среды ОС Win и Unix, определение путей к папкам и их синтаксис очень важны. Итак, начнем.
ШАГ 1. ПОДГОТОВКА

  1. Создаем каталог С:\fcpatcher;
  2. Скачиваем следующие инструменты и размещаем их указанным далее образом:
    А) сам патч - github.com/o-gs/DJI_FC_Patcher/…/master.zip. Размещаем его в корне созданной нами ранее папки. То есть, путь к файлам патчера будет выглядеть так - “C:\fcpatcher\DJI_FC_Patcher\”;
    😎 утилиты, необходимые для работы с патчером - dji_firmware_tools - github.com/o-gs/dji-firmware-tools/…/master.zip. Размещаем папку по тому же пути - “C:\fcpatcher\dji-firmware-tools\”. Удаляем “-master” из названия папки;
    C) скрипт для экстракции файлов конфигурации и *.sig файлов - image.py- github.com/fvantienen/dji_rev/raw/…/image.py; Помещаем файл в C:\fcpatcher\;
    D) декриптор файлов пришивки полётного контроллера - dji_mvfc_fwpak.py - github.com/o-gs/…/dji_mvfc_fwpak.py. ; Помещаем файл в C:\fcpatcher\;
    E) скрипт для изменений лётных параметров файлов пришивки полётного контроллера - dji_flyc_param_ed.py - github.com/o-gs/…/dji_flyc_param_ed.py. Помещаем файл в C:\fcpatcher\;
    F) дистрибутивы Python2(2.7.16) и Python3 - www.python.org/downloads. Важно отметить галочкой пункты меню установщика, задающие путь системы к данным компиляторам – SET PATH. Проверить правильную установку можно через ввод в терминале командной строки: python. Должен появится текст с версией Python. Если по каким-то причинам пропустили, задаете вручную через Win-утилиту sysdm.cpl. Гуглите, всё популярно расписано;
    G) последнюю рабочую с патчером версию прошивки - 01.04.0300, используя сервис DankDroneDownloader - github.com/cs2000/DankDroneDownloader; Помещаем файл в C:\fcpatcher\;
    H) утилиту для прошивки и предоставления root-доступа Dumldore v3.20 Tool - github.com/jezzab/DUMLdore/…/DUMLdoreV3.zip ; Помещаем папку в C:\fcpatcher\;
    I) пакет для работы с Android-устройствами в Win-среде Android SDK for Windows и ADB интерфейсом - developer.android.com/studio/…/platform-tools. Содержимое папки platform-tools копируем в корень папки fcpatcher;
    J) Linux-песочницу Cygwin64 для работы с .sh скриптами - www.cygwin.com. На сайте запускаем: setup-x86_64 -> Install from Internet -> All Users -> Use system proxy server -> выбираем первое зеркало для скачивания -> указываем какие пакеты скачивать (в нашем случае это bash, python2 и python3). В диалоге “View” выбираем “Full”, а в меню “Search”,- поочередно “bash”, потом “python2” и “python37”. Следим за тем, чтобы каждый раз в меню “View” стояло значение “Full”. Нам нужны именно этих три пакета. В соседней колонке напротив названия наживаем на стрелку меню «вниз» и выбираем последние версии. Нажимаем «далее», скачиваем и выходим.
    K) архиватор WinZip или WinRar;
    L) python-модуль pcrypto. Для этого в командной строке Windows PowerShell(администратор) введите: python -m pip install pycryptodome и ждите до окончания установки модуля.
    ШАГ 2. РАСПАКОВЫВАЕМ ФАЙЛ ПРОШИВКИ ПОЛЕТНОГО КОНТРОЛЛЕРА
    Открываем файл V01.04.0300_Mavic_dji_system.bin с помощью архиватора. Распаковываем файлы: wm220.cfg.sig; wm220_0305…… и wm220_0306…… в папку fcpatcher.

ШАГ 3. ИЗВЛЕКАЕМ ИЗ ФАЙЛА wm220.cfg.sig ФАЙЛЫ wm220.cfg.ori и wm220.cfg_0000.bin
Открываем командную строку (ПКМ на значке Пуск – выполнить - сmd) и вводим:
cd\fcpatcher <Enter>

в результате получаем заголовок командной строки: PS C:\fcpatcher>
далее вводим:

python image.py wm220.cfg.sig

move wm220.cfg_0000.bin wm220.cfg.ori

в результате в папке C:\fcpatcher\ появится два новых файла - wm220.cfg.ori и wm220.cfg_0000.bin

ШАГ 4. СНИМАЕМ ЦИФРОВУЮ ПОДПИСЬ С ФАЙЛА wm220_0306_v03.02.44.07_20171116.pro.fw.sig, в котором содержатся данные полетного контроллера

Подключаем дрон. Через утилиту Dumldore v3.20 Tool получаем root-доступ (кнопка “Enable ADB”). Далее, в командной строке вводим команду:

adb shell

В тексте начала диалога командной строки вместе с идентификатором дрона должно появиться слово root. Далее делаем раздел /vendor открытым для записи и создаем папку во внутренней памяти дрона:

mount -o remount,rw /vendor

потом:

mkdir /vendor/bin

и выходим:

exit

Перемещаем файл wm220_0306_v03.02.44.07_20171116.pro.fw.sig в новосозданную папку:

adb push wm220_0306_v03.02.44.07_20171116.pro.fw.sig /vendor/bin/

exit

Обходим верификацию и в результате получаем файл 0306.unsig. Извлекаем его с папки vendor/bin/ дрона:

adb pull /vendor/bin/0306.unsig

файл сохранится в папке C:\fcpatcher

Удаляем его и файл wm220_0306_v03.02.44.07_20171116.pro.fw.sig с дрона и возвращаем раздел /vendor к исходному состоянию:

adb shell

cd /vendor/bin/

rm 0306.unsig

rm *.fw.sig

cd /

sync

mount -o remount,ro /vendor

После этого шага у Вас снята подпись с файла wm220_0306_v03.02.44.07_20171116.pro.fw.sig параметров контроллера, но его еще нужно расшифровать.

ШАГ 5. ДЕКРИПТИМ 0306.unsig с помощью скрипта dji_mvfc_fwpak.py.

Не забываем начинать работу с каталога C:\fcpatcher. Вводим:

cd \fcpatcher

Далее декриптим файл 0306.unsig:

python dji_mvfc_fwpak.py dec -i 0306.unsig

В папке C:\fcpatcher должен появится файл 0306.decrypted.bin

Далее перемещаем данные этого файла в файл wm220_0306_v03.02.44.07_20171116.pro.fw_0306.decrypted.bin, вводим одной строкой:

move 0306.decrypted.bin wm220_0306_v03.02.44.07_20171116.pro.fw_0306.decrypted.bin

ШАГ 6. Извлекаем из вышеполученного файла таблицу полётных параметров в виде файла flyc_param_infos.

Вводим одной строкой:

python dji_flyc_param_ed.py -vv -x -b 0x420000 -m wm220_0306_v03.02.44.07_20171116.pro.fw_0306.decrypted.bin

В результате данной операции, в папке C:\fcpatcher появится файл - flyc_param_infos.

ШАГ 7. Модифицируем полётные параметры.

Открываем файл flyc_param_infos с помощью Блокнота и правим ИСКЛЮЧИТЕЛЬНО параметр “defaultValue” согласно данных из таблицы:

Parameter Name Value Description
g_config.airport_limit_cfg.cfg_disable_airport_fly_limit 1
g_config.airport_limit_cfg.cfg_limit_data 20250910
g_config.flying_limit.driver_license_limit_enable 0
g_config.flying_limit.viechle_license_limit_enable 0
g_config.flying_limit.height_limit_enabled 2
g_config.airport_limit_cfg.cfg_search_radius 1
g_config.airport_limit_cfg.cfg_enable[FLY_LIMIT_TYPE_AIRPORT] 0
g_config.airport_limit_cfg.cfg_enable[FLY_LIMIT_TYPE_SPECIAL] 0
g_config.flying_limit.limit_height_rel 10000
g_config.flying_limit.limit_height_abs 10000
g_config.flying_limit.limit_height_abs_without_gps 10000
g_config.mode_normal_cfg.tilt_atti_range 33
g_config.mode_normal_cfg.vert_vel_up 7
g_config.mode_normal_cfg.vert_vel_down -6
g_config.mode_normal_cfg.vert_acc_up 7
g_config.mode_normal_cfg.vert_acc_down -6
g_config.mode_sport_cfg.tilt_atti_range 50
g_config.mode_sport_cfg.vert_vel_up 8
g_config.mode_sport_cfg.vert_vel_down -8
g_config.mode_sport_cfg.vert_acc_up 8
g_config.mode_sport_cfg.vert_acc_down -8
g_config.fw_cfg.max_speed 20
g_config.avoid_cfg.avoid_atti_range 23
g_config.control.avoid_atti_range 50
bat_level_2_action 0
bat_cap_v2_prot_type 0
g_config.bat_config.level2_smart_battert_land 0
Тут указаны стандартные модификаторы, если нужно что-то дополнительно изменить – ищем нужный Вам параметр и так же меняем только значение “defaultValue”.
Сохраняем файл, не меняя при этом названия и следим за тем, что б у данного файла не появилось расширения .dat или любого другого.

ШАГ 8. ПЕРЕНОСИМ ФАЙЛЫ С МОДИФИЦИРОВАННЫМИ ПАРАМЕТРАМИ НА ДРОН.
Теперь нужно внедрить изменённые полётные данные в файл прошивки дрона. Скрипт по внесению изменений написан под Bash и имеет формат .sh. Скриптовый язык Bash работает в Unix-среде, потому лучше всего использовать Linux-песочницу. Как говорилось раньше, мы будем работать в Cygwin. В моем случае, для корректной работы программы нужно было перепрописать дефолт-путь рабочего каталога, что и Вам советую. В файле параметров программы – C:\cygwin64\etc\profile с помощью блокнота после строк: ${ORIGINAL_PATH=${PATH}}, вместо следующих 4-х строчек:
if [ ${CYGWIN_NOWINPATH-addwinpath} = “addwinpath” ] ; then
PATH=“/usr/local/bin:/usr/bin${PATH:+:${PATH}}”
else
PATH=“/usr/local/bin:/usr/bin”
fi

пропишите следующие:

PATH=“/usr/local/bin:/usr/bin:/bin:/usr/sbin:/usr/local/sbin:$PATH”
unset DOSDRIVE
unset DOSDIR
unset TMPDIR
unset TMP

8.1. Запускаем Cygwin64. Переходим в скопированную ранее папку (помним, что в Unix-среде пути прописываются через backslash):

cd c:/fcpatcher/

8.2. Указываем путь для папки со скриптом и другими необходимыми для него утилитами. В первоисточнике указана следующая команда:

set PATH_TO_TOOLS=C:\fcpatcher

В моем случае она не сработала. Я использовал другую:

export PATH_TO_TOOLS=C:/fcpatcher
8.3. Запускаем скрипт FC_patch_sequence_for_dummy_verify.sh, используя следующие параметры - Mavic 03.02.44.08. В окне терминала Cygwin вводим одной строкой:

c:/fcpatcher/DJI_FC_Patcher/FC_patch_sequence_for_dummy_verify.sh Mavic 03.02.44.08

Работа скрипта заключается в изменении полётных параметров (тех что в файле flyc_param_infos плюс несколько модификаций в режим Waypoint), внесение в конфигурацию GNSS ресивера Ublox модифицированных параметров для работы с спутниками системы Galileo и внесении перечисленных изменений в файл конфигурации прошивки - wm220.cfg.sig. Далее скрипт собирает файл dji_system_wm220_0306_03.02.44.08_dummy_verify.bin из модифицированных и ранее растаренных для последующей прошивки его в дрон.

Автор патчера рекомендует проверять размер и хэш MD5 полученных после работы скрипта файлов перед их прошивкой на дрон. Выглядит это следующим образом, - переименовываем dji_system_wm220_0306_03.02.44.08_dummy_verify.bin в dji_system_wm220_0306_03.02.44.08_dummy_verify.tar (ПКМ – Переименовать). Далее разархивируем данный .tar файл (внутри должно быть 3 файла!!!) и сравниваем размер и хэш файла wm220_0306_v03.02.44.08_20171116.pro.fw.sig с указанными в wm220.cfg.sig. И если всё совпало, переходим к следующему шагу.

ШАГ 9. ПРОШИВКА ДРОНА МОДИФИЦИРОВАННЫМ ФАЙЛОМ КОНФИГУРАЦИИ ПОЛЁТНОГО КОНТРОЛЛЕРА С ПОМОЩЬЮ СКРИПТА - dummy_verify.sh

9.1. Здесь используется метод замены файла верификации dji_verify на dummy_verify.sh, после чего прошивка dji_system_wm220_0306_03.02.44.08_dummy_verify.tar становиться возможной.

Подключаем дрон. Активируем root-доступ через Dumldore v3.20 Tool – Активировать ADB-). В командной строке Windows (уже Wincyg не нужен) вводим:

adb shell

mount -o remount,rw /vendor

exit

adb push dummy_verify.sh /vendor/bin/

adb shell

cd /vendor/bin/

chown root:root dummy_verify.sh

chmod 755 dummy_verify.sh

cp /sbin/dji_verify /vendor/bin/original_dji_verify_copy
sync

cd /

mount -o remount,ro /vendor

После выключаем дрон.

9.2. ПРОШИВАЕМ dji_system_wm220_0306_03.02.44.08_dummy_verify.tar.

Снова включаем дрон. Не забываем про ADB Enable. В командной строке Windows вводим:

adb shell

mount -o bind /vendor/bin/dummy_verify.sh /sbin/dji_verify

Затем открываем Dumldore v3.20 Tool, выбираем файл dji_system_wm220_0306_03.02.44.08_dummy_verify.tar (Load firmware) и прошиваем (Flash firmware). Время прошивки – до 5 мин… Дрон самостоятельно перезагрузиться и по концовке отключиться.

9.3. Далее следует проверить результат работы скрипта уже на прошивке дрона. Включите дрон снова. В меню Dumldore v3.20 Tool выберите пункт “Pull the upgrade logs”. В результате выгрузиться логи, из которых Вам необходим один - upgrade00.log. Откройте данный файл и в меню блокнота – «Правка» – «Найти», и введите, опустившись в конец файла и выбрав соответственно в меню поиска «вверх», номер версии 03.02.43.21 или без нуля 3.2.43.21. Найдите рядом с этими цифрами параметры – Current ver.Fw и Target ver.Fw… Суть проверки следующая. В логе есть два места, где упоминается номер версии. В той, что ближе к концу файла, параметры Current ver.Fw и Target ver.Fw НЕ ДОЛЖНЫ БЫТЬ ОДИНАКОВЫМИ. В моем случае, - Current ver.Fw 03.02.44.07 а Target ver.Fw - 03.02.44.08. Перед этим, значением упомянутые выше параметры была равны. Это и есть подтверждение позитивного исхода нашей работы. Конечно, главная проверка будет в полете, но эта – уже пол дела)))

Сразу после проделанного я поставил патч jkson_fcc_mod. - github.com/jkson5/jkson_fcc_mod. Отдельно хочу поделиться наблюдением, что после прошивки патча, БЕЗ NDL-ВЕРСИИ DJI-GO4 у меня стало ловить 25-28 спутников. Когда ранее было не больше 17-ти. Пользуюсь русифицированной версией 4.1.22. DJI-GO-4, скачанной с этого форума. Думаю, что патч и без изменений в джиге активирует ресивер под спутники Galileo.

Надеюсь, что этим мануалом помог нашему сообществу воспользоваться своим девайсом по полной. Хотя мне больше понравился сам процесс модификации…Удачи!

DJI_FC_Patcher_,manual (RUS).zip

yuriks1
=vados:

скрипт для экстракции файлов конфигурации и *.sig файлов - image.py

Спасибо!
Вот щас почти всё понял)
Тока вот у image.py страница уже недоступна…

Нашёл у себя,это он?
yadi.sk/d/n442tdAEEojvMg

Павел_28

Здравствуйте коллеги! Подскажите пожалуйста, может ли быть такое если после переключения на FCC через подмену координат не увеличивается мощность?
5.8 появляется и новые каналы тоже. Но кварик не летит дальше 400-00м. Пропадает связь.
Летаю на Spark. DJI установлен на IOS.

=vados
yuriks1:

Спасибо!
Вот щас почти всё понял)
Тока вот у image.py страница уже недоступна…

Нашёл у себя,это он?
yadi.sk/d/n442tdAEEojvMg

yuriks1:

Тока вот у image.py страница уже недоступна…

Здравствуйте! Нажмите ПКМ на ссылке и выберите “Сохранить как обьект”. Так же поступайте с остальными файлами *.py

Altay22
Hixx:

Мод Евгения - шедевр во всех смыслах и отношениях: работа, удобство применения, 100%-ная результативность. У меня была съёмка, при которой пришлось мод затереть (не буду вдаваться в подробности… если кратко - кнопка С2 (одна из плюшек мода) конфликтовала с тем, что мне нужно было клацать за съёмку полсотни раз), а второй раз просить поставить - это уже наглость 😦

У меня С2 не задействованна, управление модом идет только по кнопке пауза

Artem19

если кому-то нужна готовая прошивка с такими параметрами под FC_Patcher и не хочется сильно заморачиваться то держите, всё проверено и работает, вам от мануала github.com/o-gs/DJI_FC_Patcher от пункта 12 и ниже.
yadi.sk/d/Dftc87Y6D13pTg

Michael66
Altay22:

У меня С2 не задействованна, управление модом идет только по кнопке пауза

Такое управление на двойках. У Алексея М1 вроде, там переключение комбинацией кнопок.

Hixx
Michael66:

У Алексея М1 вроде, там переключение комбинацией кнопок.

У меня оба.
Во втором кнопкой С2 (долгое удержание) включается сдвиг SDR на 2.3, а у меня на долгое нажатие - включение фонаря на пузе (для фризлайт фоток), а летит он по ранее заданному пути при этом.

Michael66
Hixx:

кнопкой С2 (долгое удержание) включается сдвиг SDR на 2.3,

Наверное это особый, персонализированный мод Джексона )) У меня смена режимов паузой. Есть еще маленькая фича на 5D торчке из пульта, но не использую.

SergeyGreb

Моя история о полете в рублевской яме.

видео записываю с экрана телефона по последнему логу полета. yadi.sk/i/mZgYeQTqLT16Ag

при полете использовал DJI GO 4.1.22 с FCC от максимлорд

как видно на 250 метрах убили спутники.

начал опускать коптер. после этого прилетело что коптер во внуково в NFZ и произошел дисконект управления и включена авто посадка.

нв 20 метрах - появились родные спутники. и включирся RTH и спустя секунды - появилось управление. далее вернул вручную на точку взлета.

вопрос - как отключить автопосадку и дисконнект аппаратуры при попадании в NFZ - у меня живой пример подмены координат во время полета.

и если бы не отключение аппаратуры - все былобы вполне штатно. ибо летать учился на первой назе БЕЗ gps)

Сергей_64
SergeyGreb:

вопрос - как отключить автопосадку и дисконнект аппаратуры при попадании в NFZ

видимо откл. NFZ. У вас какой аппарат? Прошивка?

SergeyGreb
Сергей_64:

й аппарат? Прошивка?

в dgi go прошика не показывается. как узнать? аппарат mavic pro

Сергей_64
SergeyGreb:

в dgi go прошика не показывается. как узнать

Вообще-то, показывается. В самом первм экране настроек (снизу), потом нажать about/

От номера прошивки сильно зависит простота откл. NFZ.