-
SkylabFCCfree v1.5.59 Stable
released this
2026-08-03 17:38:11 +03:00 | 59 commits to main since this releaseИсправления:
- Текст статусов и кнопок в шторке переведён на основной контрастный стиль уведомления; области нажатия остаются прозрачными и не затеняются.
- Одна команда GPS ON/OFF теперь выполняет четыре ограниченных цикла по пять идемпотентных записей, то есть включает эквивалент повторного нажатия.
- После команды по-прежнему выполняется автоматическая свежая проверка состояния GPS.
APK SHA-256: 0dd91c6255f1711b1a1133725adcdd4194a95462970c3074f6c0eecbfbe5ba93
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
released this
2026-08-03 17:04:54 +03:00 | 61 commits to main since this releaseЧто исправлено
- Действия FCC и GPS в развёрнутом уведомлении больше не затемняются системной Material-подложкой DJI SystemUI.
- Пять notification actions переведены с системных
Buttonна прозрачные кликабельные подписи с notification text style. - ID, PendingIntent, расположение строк и логика команд FCC/GPS не менялись.
Проверки
- Локально прошли
testDebugUnitTest,lintDebug,assembleDebugиassembleRelease. - GitHub Actions build, unit tests, Android lint и signed-release завершились успешно на exact commit
23e6ec7. - APK:
com.freefcc.app,versionName 1.5.58,versionCode 75. - SHA-256 APK:
72410b5161c6472a7bf062557f8d5104378407bc9fdadf842313b1a95ce0c089. - Signing certificate SHA-256 совпадает с
v1.5.57:1e50efc760a23d71f5ec57f855af4b8c42c21fea6da9122889d59b3b23b890ce.
Аппаратная проверка
В этой сессии подключённого Android-пульта не было. Окончательно подтвердить отсутствие затемнения нужно после установки APK на контроллер.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
released this
2026-08-03 16:33:30 +03:00 | 63 commits to main since this releaseЧто изменилось
- GPS ON/OFF теперь дублирует полное срабатывание. Одно нажатие выполняет два bounded-цикла по пять
03:F9-записей с паузой 100 мс между записями и 250 мс между циклами. После обеих серий запускается одна fresh-port проверка статуса. - GPS ON/OFF добавлены в шторку. В развёрнутом постоянном уведомлении под режимами FCC появился второй ряд. После команды приложение автоматически делает до трёх fresh-port readback-попыток и показывает подтверждённое, неизвестное или несовпавшее состояние.
- Новая иконка приложения. Launcher icon заменён на настоящий Skylab-логотип из проекта
skylab_hub. - В README добавлены адреса добровольной поддержки автора.
Проверки
- Локально прошли
testDebugUnitTest,lintDebug,assembleDebugиassembleRelease. - GitHub Actions: build, unit tests, Android lint и signed-release завершились успешно на exact commit
2f8f454. - APK:
com.freefcc.app,versionName 1.5.57,versionCode 74. - SHA-256 APK:
7e968d39bdc8dbee641b3570f473e5f890c2ae655052594a20c01372816d8198. - Signing certificate SHA-256 совпадает с
v1.5.56:1e50efc760a23d71f5ec57f855af4b8c42c21fea6da9122889d59b3b23b890ce.
Аппаратная проверка
В этой сессии подключённого Android-пульта не было. Физическое срабатывание GPS OFF после двойного цикла и внешний вид развёрнутого уведомления нужно подтвердить на контроллере.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- GPS ON/OFF теперь дублирует полное срабатывание. Одно нажатие выполняет два bounded-цикла по пять
-
released this
2026-07-28 16:46:03 +03:00 | 67 commits to main since this releaseЧто изменилось
Проверено на живом RC2
rc331с Avata 360 через LAN-мост.Код модели больше не переживает смену дрона. Во вкладке Info висела пара
DJI Avata 360+WM169. Имя уже читалось верно, а код остался от предыдущей версии, где таблица укорачивала название доDJI Avataи подставляла код именно той модели. Запись пустого кода прежнюю запись не стирала.Теперь имя и код — одна пара. Сохранённый код удаляется, если он противоречит текущему имени или если имя сменилось, а нового кода не пришло.
Название читается и внутри фразы.
Подключено: DJI Avata 360распознаётся целиком, а не только когда именем подписан весь элемент интерфейса.Таблица больше не может укоротить имя с экрана.
DJI Avataне подставляется вместоDJI Avata 360.Кнопка
Refresh aircraft identityбольше не пишет «модель не найдена», когда имя уже прочитано с экрана, а пульт просто не публикует код.Что показала проверка на борту
На RC2
rc331кадр00:82публикует сам пульт (sender=0x0d, payloadrc331), а борт свой product code в поток не отдаёт: ни пассивно на40009/8901/40007, ни в ответ на read-only запросы00:01и00:82. Серийник при этом читается штатно.Поэтому для Avata 360 на этом пульте код остаётся пустым — это правильное поведение, а не ошибка чтения: название берётся с экрана DJI Fly, и оно верное.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
released this
2026-07-27 22:29:03 +03:00 | 68 commits to main since this releaseЧто изменилось
Название дрона берётся с экрана дословно. Раньше текст экрана сверялся со списком известных моделей, и дрон, которого в списке нет, отбрасывался — хотя его имя было прямо на экране. На Avata 360 это и произошло: кода
WA530в таблице нет, серийник считывался, а название оставалось пустым.Теперь принимается любое имя вида
DJI …длиной до трёх слов, даже если приложение о такой модели никогда не слышало.Чтобы за модель не приняли посторонний текст, имя засчитывается в двух случаях: им целиком подписан элемент интерфейса, либо оно стоит в одной строке с product code. Продукты DJI, которые не являются дроном, отсеиваются по первому слову —
Fly,Care,Store,Goggles,RC,Osmoи другие.Таблица кодов осталась запасным вариантом. Она даёт название, когда на экране виден только код, и восстанавливает код по однозначному названию.
Порядок работы не изменился с 1.5.54: порты не открываются, пока экран не назовёт дрон; пассивное чтение
00:82/03:34запускается один раз на модель, когда имя есть, а кода на экране нет.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
released this
2026-07-26 23:46:40 +03:00 | 69 commits to main since this releaseЧто изменилось
Модель дрона берётся с экрана DJI-приложения. DJI Fly и Pilot 2 печатают и product code, и название, поэтому для заполнения вкладки Info не нужно открывать ни один DUML-порт.
Приложение больше не опрашивает порты вслепую. Раньше при незнакомой модели фоновая служба каждые 5 секунд обходила шесть портов, включая
40007под общим локом с LED, GPS и FCC. С выключенным дроном это продолжалось всё время, пока открыто DJI-приложение, хотя отвечать было некому. Теперь пассивное чтение00:82/03:34запускается только когда экран уже назвал дрон, но не показал его код, — и ровно один раз на модель. Кнопка Refresh aircraft identity работает как прежде, по требованию.Локальная таблица кодов вместо одной зашитой модели. Раньше в коде был единственный
WM265T, остальные известные коды показывались без названия. Теперь:WA233Air 3 ·WA234Air 3S ·WA341Mavic 4 Pro ·WA140Mini 4 Pro ·WA150Mini 5 Pro ·WA141Flip ·WA520Avata 2 ·WA521Neo ·WM162Mini 3 Pro ·WM169Avata ·WM260Mavic 3 ·WM2605Mavic 3 Classic ·WM261Mavic 3 Pro ·WM265E/M/TMavic 3E/3M/3T ·WM240/245/246/247— платформа Mavic 2.Таблица читается в обе стороны: код с экрана даёт название, а название — код, если оно однозначно. Общее имя
DJI Mavic 2намеренно не превращается обратно в код: их четыре.Совпадение по названию стало строгим. Выбирается самое длинное имя и только по границам слова, поэтому
DJI Air 3Sбольше не определяется какDJI Air 3, аNEONна экране не превращается вDJI Neo.Экран Pilot 2 читается наравне с DJI Fly. Для
WM265Tна RM510 в документации зафиксировано, что03:34без активного Pilot 2 не приходит, поэтому название берётся с экрана или из таблицы по стабильному коду.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
FreeFCC v1.5.53 Stable
released this
2026-07-26 23:03:04 +03:00 | 71 commits to main since this release- Определение любых безопасных product code модели дрона.
- Info показывает точный код, если DJI Fly не передал название.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
released this
2026-07-26 21:29:28 +03:00 | 76 commits to main since this releaseЧто изменилось
Battery optimization. При первом запуске приложение один раз просит исключить себя из списка оптимизации батареи. Auto FCC и LAN-мост живут внутри процесса приложения, поэтому doze останавливал их молча. Запрос не повторяется: дальше разрешение выдаётся вручную из настроек Android.
LAN Control Bridge выключен по умолчанию. Мост больше не поднимается сам при старте — включается только тумблером во вкладке Log. У тех, кто уже включал его раньше, сохранённое значение остаётся прежним.
Что проверено на живом стенде
Air 3S + RC Pro 2, read-only через wrapped порт 40007:
03:E0→ в таблице 0 1513 параметров, формат 2017 (E0/E1/E2/E3);03:E1возвращает имя парой — короткое и полное:forearm_led_ctrl|g_config.misc_cfg.forearm_lamp_ctrl;03:F7по хешу lamp →def=0xEF, min=0, max=255, то есть0xEFэто заводской дефолт маски, а не «состояние ON»;- формат 2015 (
03:F0) борт игнорирует.
Индексный путь
03:E1/E2/E3работает без хеша — это снимает зависимость от имени параметра, которое у разных моделей может отличаться. Разбор и LED-группа таблицы (индексы 361–366) — в docs/FLYC_PARAM_TABLE.md.Ни одной записи параметров при проверке не выполнялось.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
SkylabFCCfree v1.5.50 Stable
released this
2026-07-25 16:24:07 +03:00 | 90 commits to main since this releaseЧто изменилось
- FCC core сокращён с 17 до 14 DUML-кадров: удалены обе записи
06:72, которые на RC2 являютсяset stick value lock, и неподтверждённая установка максимальной высоты. - Удалены неподтверждённые CE restore profile/API/LAN action и устаревший keepalive-профиль.
- Периодический режим теперь отправляет один
07:19раз в 5 секунд и повторно применяет FCC-профиль только при фактическом несовпадении региона. - Добавлен regression-тест, запрещающий возвращение stick-lock и max-height кадров в FCC-профиль.
- Документация синхронизирована с анализом прошивок RC2, RC Pro 2, RM510, WA234, WA341, WA530 и WM260; границы статических выводов по opaque-командам указаны явно.
Проверка
testDebugUnitTest, Android lint и release/R8 сборка прошли в GitHub Actions.- APK подписан тем же сертификатом, что и v1.5.49, и устанавливается как обновление.
versionName=1.5.50,versionCode=67.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- FCC core сокращён с 17 до 14 DUML-кадров: удалены обе записи
-
SkylabFCCfree v1.5.49 Stable
released this
2026-07-24 21:35:21 +03:00 | 114 commits to main since this releaseЧто изменилось
- Country flow сначала читает
07:19и отправляет07:30=AUтолько при несовпадении. - Периодические логи теперь фиксируют изменения write/read completion и matching ACK.
- README и справка по
fcc_keepalive.jsonсинхронизированы с фактической реализацией.
APK собран GitHub Actions и подписан тем же сертификатом, что и предыдущие релизы.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Country flow сначала читает