ESC-конфигуратор: AM32, BLHeli_S и Bluejay через полётник (только чтение)

Обновлено: 2026-08-02 esc am32 регулятор конфигуратор blheli blheli_s bluejay 4-way 4way passthrough web serial msp eeprom настройки телеметрия rpm обороты read-only только чтение полётник betaflight inav timing advance motor kv motor poles brake low voltage cutoff current limit температура ток прошивка

ESC-конфигуратор: AM32, BLHeli_S и Bluejay через полётник

Инструмент /tools/esc-connect подключается к полётному контроллеру по USB
(Web Serial), переводит его в passthrough к регуляторам (протокол
«4-way interface» — тот же механизм, которым пользуются BLHeliSuite и
esc-configurator) и определяет семейство прошивки каждого ESC (AD-1066:
единый конфигуратор вместо отдельной тулы на вендора). Настройки AM32,
BLHeli_S и Bluejay читаются в полном объёме (AD-1070), плюс
RPM-телеметрия. Ничего не устанавливается, данные
не покидают ваш компьютер: весь обмен идёт локально между браузером и платой.

⚗️ Экспериментально · предальфа. Нужен десктопный Chrome или Edge,
открытый по HTTPS (Firefox, Safari и мобильные Web Serial не поддерживают).
Перед подключением закройте INAV/Betaflight Configurator и другие ESC-тулы —
они держат COM-порт. Инструмент скрыт за фича-флагом esc_tools
(включён по умолчанию с AD-1066; администратор может выключить
конкретное окружение в /admin/flags).

v1 — только чтение

По решению основателя первая версия — строго read-only:

  • никакой записи настроек, никакого стирания, никакой прошивки — ни для
    AM32, ни для BLHeli_S/Bluejay;
  • в протокольном кодеке команды записи не реализованы вообще — испортить
    («окирпичить») регулятор этим инструментом технически нельзя;
  • единственные «активные» команды — перезапуск регулятора из загрузчика
    обратно в рабочую прошивку и выход полётника из passthrough (уборка после
    чтения, настроек они не меняют).

Что читается по семействам (AD-1066/AD-1070):

Семейство Опознаётся Настройки читаются
AM32 (ARM) да да, полная раскладка EEPROM
BLHeli_S / Bluejay (SiLabs) да да, каждая по своей раскладке (AD-1070)
BLHeli на Atmel (легаси 8-бит) да нет — открытого описания раскладки нет
SiLabs C2 (отладочный интерфейс) да нет

Запись настроек и прошивка — кандидаты на следующие версии. BLHeli_32
поддерживаться не будет: протокол закрыт, программа лицензирования
остановлена производителем (EOL).

Как пользоваться

  1. Снимите пропеллеры. Любые работы с регуляторами — только на столе.
  2. Подключите полётник по USB и нажмите «Подключить полётник» — инструмент
    прочитает вариант прошивки, версию и плату.
  3. (Опционально) «Прочитать RPM» — обороты моторов по данным esc-sensor
    полётника (INAV с настроенной телеметрией ESC). Если esc-sensor не настроен,
    инструмент честно скажет «телеметрия недоступна».
  4. Нажмите «Войти в passthrough» — полётник переключится в режим 4-way и
    покажет число выходов ESC.
  5. Подключите аккумулятор к борту. Регуляторы, включённые уже после входа
    в passthrough, остаются в загрузчике (мотор не крутится) и готовы к чтению.
  6. Нажмите «Прочитать ESC N» у нужного регулятора: инструмент подключится
    к его загрузчику и определит семейство прошивки. Для AM32, BLHeli_S
    и Bluejay читается полный блок настроек; для легаси BLHeli на Atmel и
    SiLabs C2 регулятор только опознаётся (сигнатура + режим интерфейса) —
    честное сообщение поясняет, что открытого описания их раскладки у нас нет.
  7. По окончании — «Выйти из passthrough»: регуляторы перезапустятся в
    рабочую прошивку, полётник вернётся в обычный режим MSP.

Что показывается

  • Регулятор: сигнатура микроконтроллера, режим интерфейса (ARM BLB — AM32;
    SiLabs BLB — BLHeli_S/Bluejay; Atmel BLB/SK — легаси BLHeli; SiLabs C2 —
    отладочный интерфейс) и сырые байты ответа.
  • Настройки AM32: версия прошивки, версия EEPROM-раскладки, имя таргета и
    таблица настроек (направление вращения, 3D-режим, timing advance, частота
    PWM, KV и полюса мотора, тормоз, пороги отсечки по напряжению, лимиты тока и
    температуры и др.). Для каждого поля показан сырой байт, производная
    величина — только там, где формула описана в открытой документации AM32.
  • Настройки BLHeli_S/Bluejay (AD-1070): версия прошивки, ревизия
    EEPROM-раскладки, имя регулятора и таблица настроек (направление вращения,
    опережение коммутации, компенсация размагничивания, пороги газа, защита по
    температуре, тормоз на нуле газа и др.; у Bluejay — свои поля: минимальная и
    максимальная стартовая мощность, частота PWM, сила торможения, класс
    питания). У каждого поля показан сырой байт; расшифровка — только там,
    где значение описано в исходниках прошивки. Значение, которого в описании
    нет, показывается числом, а не «похожим» вариантом.
    BLHeli_S и Bluejay разбираются по РАЗНЫМ таблицам: Bluejay использует
    часть тех же байт под другой смысл, и общая таблица показала бы неправду.
    Если регулятор сообщает незнакомую ревизию раскладки (например, старая
    версия прошивки), настройки не расшифровываются вовсе — вы увидите номер
    ревизии и сырой дамп. Это сделано намеренно: неверно расшифрованная
    настройка выглядит достовернее, чем её отсутствие.
  • Сырой дамп: полный HEX-дамп прочитанного блока — инструмент ничего не
    выдумывает: байты, не описанные в источнике, видны только здесь. Если
    структура блока не распознана, показывается только дамп с честной пометкой.
  • Легаси BLHeli на Atmel и SiLabs C2: только идентификация (сигнатура +
    режим интерфейса) — без таблицы настроек: открытого описания их раскладки
    у нас нет.

Приватность и лицензии

Обмен с полётником и регуляторами идёт локально в браузере, на сервер ничего
не отправляется. Протоколы (MSP passthrough, 4-way interface, раскладка EEPROM
AM32, классификация семейства прошивки) реализованы clean-room по открытым
описаниям
, без заимствования кода из GPL/AGPL-проектов — подробности в ADR
docs/adr/ad-856-esc-clean-room.md.

Откуда взята раскладка BLHeli_S/Bluejay (AD-1070): из опубликованных
исходников самих прошивок — они и есть первоисточник этого формата данных.
Конкретные файлы названы прямо в исходном коде инструмента
(web/static/js/tools/esc_blheli.js) и сведены в таблицу в
docs/research/esc-protocols-am32.md § 5.1. Код при этом написан с нуля: из
GPL/AGPL-проектов (BLHeliSuite, esc-configurator.com) не заимствовано ни
строки, и как источник раскладки они не использовались.

Почему инструмент не пишет в регулятор и не будет этого делать в этой
версии.
Read-only — не «пока», а требование безопасности: ошибка в разборе
раскладки при ЧТЕНИИ означает неверную строчку на экране, а при ЗАПИСИ —
испорченный регулятор. В коде нет даже функции, собирающей настройки обратно в
байты. Запись появится отдельным решением и только после проверки чтения на
реальном железе.