Activity

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

тоже подобные мысли посещали, сегодня отлетал три аккумулятора в поле , все в стандарте ,без бустеров конфигов и франкенштейнеров 😃 улетел на 3000 метров , прилетел обратно было 55% , общий налет на одном аккуме примерно 8400 метров. Все вопросы по поводу прошивания , ковыряния отпали сразу. Единственное колпачки куплю на антенны и все.

Во Владовостоке хорошо - наверное, дрон подумал, что он на исторической родине, и решительно врубил ФЦЦ

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

Вот ещё вариант с модифицированными прошивками: …google.com/…/1dWbmcl_jV0m94UuH1IQ1gJC3yt71xOFW

Отличие от …google.com/…/1fynM3evNpF8Enepljjj4ertNbJxB-stW что в инструкции rcopen.com/forum/f132/topic500402/2000, по сути, тока в варианте с модом 01.03.0700.

Файлы “V01.04.0000_noFC_Mavic_dji_system.bin” (из папки в инструкции) и “V01.04.0000_(w-o 305&306_FC 905_NFZ)_Mavic_dji_system.bin” идентичны по внутреннему содержимому.

w-o в имени файла - это от “without”

Artem19:

а если WinHex`ом каким-неть поменять? по идее не нарушится целостность файла

это влажная мечта всех хакеров мира.

Но против математики не попрешь - если изменить содержимое файла хоть на один бит, у него поменяется контрольная сумма.

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

Для большей уверенности тогда, можно список файлов, которые должны быть в архиве?

taishy:

Описание модулей есть где-нибудь?

например, здесь: github.com/MAVProxyUser/firm_cache

taishy:
  1. Судя по содержимому файла “wm220.cfg.sig” существуют как минимум 3 модификации мавиков с разным железом

wm220 - это и есть мавик, но вот перечень самих модулей (за исключением базовых) не всегда постоянен - например, в 01.03.0400 нету 0905 (NFZ DB-).
Модуль модулю рознь - какие-то к железу конкретно относятся, какие-то - базы данных вон.

taishy:
  1. В том же файле пугает строчка "expire=“2018/09/19"” (или expire=“2018/05/05” для версии .700)

Эту строчку туда DJI вписал, редактирование подписанных файлов (*.sig) недопустимо. Т.е. он(файл)/она(строчка) в любой оригинальной прошивке присутствует (в каждой версии - свой).

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

DJI, странное дело, не радует пользователей помодульным changelog’ом. Но интуитивно понятно, что с физикой полета, прописанной внутри Flight Controller’a, особо ничего не сделаешь. Разве что - уберешь какие дополнительные параметры из списка доступных для редактирования пользователем.

Посему, есть основания полагать, что код прошивок FC модулей меняется не сильно. А вот прочие вещи, типа режима постобработки изображения, поддержка очков, или там заскриптованных интеллектуальных режимов съемки, могут и кардинально поменяться.

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

Интересно, а фиксы от новых прошивок, тоже появляются

Есть фиксы, а есть “фиксы” - например, допиливание модуля камеры или подвеса - это фикс, а “повышение безопасности полетов”, с урезанными настройками макс. высоты или НФЗ - это “фикс”.

deeplock:

И кстати для новых полетных режимов нужна последняя немодифицированная джига.

У меня на Франкеншивке с 305&306 модулями из 01.03.0700 и всем остальным, кроме 305, 306, 905 из 01.04.0000, новые интеллектуальные режимы quickshot работают на оригинальной 4.1.10 на андроиде.

Кстати, к выходным отцы со слака обещают выкатить что-то новое интересное для патчинга apk

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

А Вы сами пробовали такие частичные заливки?

Да, как раз сегодня, когда ваял инструкцию, пересобрал по пути 1.04.0000->1.03.0400->1.03.0700(-905 NFZ)->1.04.0000(-305,-306,-905).

jkson:

Смущает что такие продвинутые дроноломы не знают что у нескольких батареек прошивка и так обновляется “по быстрому”, без всяких костылей, родной джигой, стоит только выйти на главный экран и дождаться сообщения о несовместимых модулях.

Это не всегда так - не все используют родную джигу. Некоторые используют патченную DJI GO 4, которой запретили лезть проверять обновления и оставили интернеты только для карт и первичного логина. Ну или Flight Mode на телефоне/планшете.

jkson:

И на мой взгляд эти манипуляции очень рискованны, ведь может случиться что один модуль пошлет другому команду, которая ему неизвестна, либо синтаксис изменился и т.д.

Риск, конечно, есть. Но пока никаких сообщений о таинственных крэшах или улётах от попробовавших не поступало.

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

Решил тут поделиться с энтузиастами опытом, почерпнутым у дружественных дроноломов.

DJI Firmware Module mixing на примере MavicPro.

Disclaimer - всё на свой страх и риск, а также спасибо товарищам с dji-rev.slack.com за наше счастливое детство, ну и прочий fly safe.

Преамбула.

*.bin файлы прошивки, доступные на странице github.com/MAVProxyUser/dji_system.bin/…/bins , являются, по сути, архивами (.tar), содержащими набор файлов с прошивками индивидуальных модулей железа дрона (пульта управления, очков). Интересующиеся могут ознакомиться с подробностями тут: github.com/MAVProxyUser/firm_cache

Известно, что по мере эволюции прошивок, DJI, с одной стороны, добавлял новые фишки (совместимость с очками, автоматические режимы съемки, и т.д.), а с другой - убирал возможности по редактированию параметров полёта (максимальная высота, NFZ).

Параметры полета используются модулями FlightController - wm220_0305_* и wm220_0306_*, модуль wm220_0905_* содержит базу данных NFZ.

Поэтому, желающим заполучить актуальные “фишки” новых прошивок, но при этом сохранить полный контроль над параметрами полёта, имеет смысл установить прошивку-“франкенштейн”, используя модули 0305 и 0306 из прошивки 1.03.0700 (или 1.03.0400), а прочие модули - из прошивки 1.04.0000 (без модулей 0305, 0306 и 0905). В принципе, удалять модуль 905 наверное, не обязательно, раз уж NFZ редактированием параметров отрубается (на версиях прошивок <=1.03.0700). Но, по слухам, в процессе полетов вылезает меньше назойливых поп-апов (#ноэтонеточно).

К сожалению, нельзя “просто так взять и” сразу создать версию “всё нужное в одном” - в архиве dji_system.bin, загруженном на дрон при помощи DUMLDore, находится файл wm220.cfg.sig. Он содержит информацию о конфигурации для модулей прошивки из архива dji_system.bin для данной версии прошивки. При этом, нельзя заменить модули wm220_0305 и wm220_0306 в прошивке 1.04.0000 на более ранние версии из прошивки 1.03.0700, т.к. информация о “старых” версиях отсутствует в wm220.cfg.sig

Когда файл dji_system.bin загружен на дрон, он распаковывается, дешифруется, подписи модулей сверяются с wm220.cfg.sig, и происходит обновление модулей, прошивки для которых содержались в архиве. Если в архиве отсутствует файл прошивки для определенного модуля, updater-скрипт оставляет текущую установленную версию и продолжает далее по списку.

Амбула.

Алгоритм на примере микса модулей из 1.03.0700 и 1.04.0000 для MavicPro.

  1. Убеждаемся, что батарейка полностью заряжена

  2. Скачиваем:

  1. Откатываем прошивку дрона на 1.03.0700 (см пункт 4 здесь: dji.maximlord.ru) при помощи DUMLDore.

Процедура с перепрошивкой не всегда проходит гладко, и может напугать зависанием на 86% или 61%, если наблюдать за прогрессом в Assistant2. Важный критерий - передние красные диоды в процессе прошивки мигают, и в этот момент питание дрона ни в коем случае нельзя выключать. Если передние диоды мигать перестали и всё время горят красным, задний диод быстро мигает желтым (дрон пытается связаться с пультом управления), а ассистент2 залип на xx% и/или при перезапуске вообще не видит дрон, помогает включить пульт и подождать установления соединения. В некоторых случаях может потребоваться несколько циклов включения-выключения (#ноэтонеточно).

  1. Распаковываем 7-зипом архив прошивки V01.04.0000_Mavic_dji_system.bin

  2. Удаляем из директории с распакованной прошивкой файлы модулей wm220_0305, wm220_0306 и wm220_0905, выделяем оставшиеся файлы и тем же 7-зипом упаковываем в архив формата tar с расширением .bin (например, “V01.04.0000(-305_306_905)_Mavic_dji_system.bin”). Пакуем не саму “облегченную” директорию, а именно выделенные файлы!

Также имеет смысл создать версию прошивки V01.04.0000, содержащую модуль wm220_1100 (ну и wm220.cfg.sig, разумеется) - это пригодится людям, у которых несколько аккумуляторов для мавика, т.к. можно будет поочередно по-быстрому обновить прошивку только батареек.

  1. Накатываем модифицированную на предыдущем шаге прошивку 1.04.0000 на дрон при помощи DUMLDore

  2. Profit!

Возможны другие последовательности шагов - например, откат до 1.03.0400 (в ней вообще изначально отсутствует NFZ модуль wm220_0905), затем апгрейд до 1.03.0700 с удаленным wm220_0905, затем апгрейд до 1.04.0000 с удаленными 0305, 0306, 0905.
Главное - модифицированный архив *dji_system.bin ДОЛЖЕН содержать wm220.cfg.sig и МОЖЕТ содержать меньше (хоть один-единственный, например - для батарейки wm220_1100) либо столько же модулей, как и оригинальная версия, но не должен содержать “неродных” версий прошивок модулей.

В принципе, последовательность обновления прошивок не критична, но могут быть глюки с отображаемой глобальной текущей версии прошивки в DJI Assistant2, поэтому первым шагом рекомендуется откатываться на самую раннюю версию из желаемых.

———————

А вот гражданин со слэка уже сделал кастомы:

Some stripped back fw

  1. 1.3.400 fc 305 & 306 to load old fc (только модули 305 306 от 1.03.0400)
  2. 1.4.0000 gim 400 to set version back to 0000 (если ставили то, что в 1) поверх 1.04.0000, общая версия в Assistant2 будет 1.03.0400, а накатив 2), будет 1.04.0000)
  3. 1.4.0000 nofc -305 & 306 to update to 0000 -fc (1.04.0000 без 305, 306 и, на самом деле, 905)
  4. 1.4.0000 bat 1100 to update additional batteries (толко модуль батарейки, чтоб по-быстрому обновлять только его, у кого несколько аккумов)

…google.com/…/1fynM3evNpF8Enepljjj4ertNbJxB-stW