INAV Web Serial: обзор, миксер, моторы, серво, PID, рейты и режимы
Инструмент /tools/inav-connect подключается к полётному контроллеру на прошивке
INAV прямо из браузера по USB (Web Serial) и общается с ним по протоколу
MSP. Ничего не устанавливается, никакие данные не уходят на сервер — весь
обмен идёт локально между вашим компьютером и платой.
⚗️ Экспериментально · предальфа. Нужен десктопный Chrome или Edge,
открытый по HTTPS (Firefox, Safari и мобильные Web Serial не поддерживают).
Перед подключением закройте INAV/Betaflight Configurator — они держат COM-порт.
Инструмент реализован clean-room по открытому протоколу MSP (без кода
INAV/Betaflight Configurator): читаются и пишутся только MSP-кадры.
Вкладка «Обзор»
Подключение и чтение (только чтение):
- вариант и версия прошивки, плата, имя аппарата, уникальный UID платы;
- состояние blackbox-хранилища (SD-карта и онбордовая flash) и его объём;
- сырой лог MSP-обмена в hex — чтобы видеть, что связь живая.
Нажмите «Подключить», выберите COM-порт полётника — данные подтянутся
автоматически.
Вкладка «Миксер / Моторы»
Появляется после подключения на вкладке «Обзор».
Тип миксера и платформа
Читается конфигурация миксера (MSP2_INAV_MIXER): тип платформы
(мультиротор / самолёт / вертолёт / трикоптер / ровер / лодка), применённый
пресет миксера, флаг реверса вращения моторов и motorstop.
- Прочитать миксер — обновить значения с полётника.
- Записать миксер (
MSP2_INAV_SET_MIXER) — применить выбранный тип
платформы и реверс.
Смена типа платформы/пресета вступает в силу после перезагрузки полётника
(в INAV Configurator или CLI:save). Полный набор правилmmix/smix
здесь не редактируется — это делается в INAV Configurator; инструмент
показывает и переключает тип платформы и реверс.
Выходы на моторы
Текущие значения на выходах (MSP_MOTOR, в микросекундах). Это фактический
порядок: «Выход 1» — первый мотор миксера и т.д. Переназначение выходов
делается в INAV Configurator — инструмент показывает раскладку.
Motor test
Слайдеры газа по моторам (MSP_SET_MOTOR). Раздел опасный — при вращении
мотора установленный пропеллер травмирует. Поэтому motor test защищён:
- Подтверждение «пропеллеры сняты». Пока галочка не стоит, слайдеры и
кнопка запуска заблокированы. - Лимит газа (по умолчанию 20 %). Ползунок-предохранитель: даже 100 % на
слайдере мотора не даст газ выше лимита. - Общий СТОП — красная кнопка мгновенно останавливает все моторы, сбрасывает
слайдеры и выключает тест. Доступна всё время, пока есть связь. - Автостоп срабатывает при потере связи, сворачивании вкладки/окна, уходе с
раздела и при длительном бездействии — моторы глушатся сами.
Значения газа применяются только когда полётник разоружён (disarmed).
Порядок безопасного motor test:
- Снимите пропеллеры и надёжно закрепите аппарат.
- Поставьте галочку «Пропеллеры сняты…».
- Задайте лимит газа (начните с малого).
- Укажите число моторов и нажмите «Включить motor test».
- Плавно двигайте слайдер нужного мотора — проверьте, что крутится тот мотор
и в ту сторону, что ожидаете. - По окончании — «Общий СТОП» или снимите галочку.
Вкладка «Серво»
Появляется после подключения на вкладке «Обзор»; конфиги серв читаются
автоматически. Показаны серво 1–8 (INAV поддерживает до 18 — расширенные каналы
редактируются в INAV Configurator).
Конфигурация серв
Таблица параметров по каждому серво (MSP_SERVO_CONFIGURATIONS):
- Min / Center / Max — endpoints и центр в микросекундах (предел хода
500–2500 µs, значения вне диапазона зажимаются предохранителем); - Rate — норма хода
[-125…125]; знак задаёт направление: «+» прямое,
«−» реверс (колонка «Напр.» показывает это словами); - Выход — текущее значение на серво по MSP (
MSP_SERVO, только чтение).
Кнопки: Прочитать серво — обновить значения с полётника; Записать
(в строке серво) или Записать все — отправить конфиги
(MSP_SET_SERVO_CONFIGURATION, по одному серво на команду).
Запись применяется к полётнику сразу, но в EEPROM сохраняется только
командойsave(в INAV Configurator/CLI). Доsaveизменения живут в RAM и
сбрасываются перезагрузкой.
Правила серво-миксера
Только чтение (MSP_SERVO_MIX_RULES): какой вход (стабилизация / RC-канал /
флапы / …) управляет каким серво и с каким rate. Пустые правила (rate = 0) не
показываются. Редактирование правил — в INAV Configurator.
Тест хода серво
Слайдер двигает выбранное серво, временно меняя его центр
(MSP_SET_SERVO_CONFIGURATION) — так же, как это делает «живой» режим серво-вкладки
INAV Configurator. Раздел с движением — под защитой:
- Подтверждение «поверхности/линкейджи свободны». Пока галочка не стоит,
слайдер и кнопка запуска заблокированы. - Ход ограничен endpoints выбранного серво (Min…Max) — слайдер не выведет
серво за настроенные пределы. - Возврат центра — красная кнопка «ВЕРНУТЬ ЦЕНТР» возвращает серво в исходный
центр и выключает тест. Доступна всё время, пока есть связь. - Автовозврат срабатывает при потере связи, сворачивании вкладки/окна и уходе
с раздела — серво возвращается в исходный центр само.
Меняется только центр серво и только временно (в RAM); в EEPROM ничего не пишется.
Вкладка «PID-тюнинг»
Появляется после подключения на вкладке «Обзор»; PID-коэффициенты читаются
автоматически. Правятся основные оси стабилизации — Roll / Pitch / Yaw
(остальные петли INAV — позиционные, уровень, курс — редактируются в
INAV Configurator).
⚠️ Не меняйте PID в полёте. PID напрямую не крутят моторы, но неверные
коэффициенты делают аппарат неуправляемым и опасным в воздухе. Правьте PID
только на земле, при разоружённом (disarmed) полётнике, и проверяйте
изменения постепенно.
PID-коэффициенты по осям
Таблица коэффициентов по каждой оси (MSP2_PID):
- P / I / D — пропорциональная, интегральная и дифференциальная составляющие;
- FF — feed-forward (упреждение).
Все поля — целые в диапазоне 0–255 (значения вне диапазона зажимаются
предохранителем). Кнопки: Прочитать PID — обновить значения с полётника;
Записать PID (MSP2_SET_PID) — отправить изменения.
При записи в полётник уходит весь PID-банк: инструмент берёт прочитанные
значения всех петель и подменяет только отредактированные оси, поэтому
позиционные/level/heading настройки не затрагиваются.Запись применяется к полётнику сразу, но в EEPROM сохраняется только
командойsave(в INAV Configurator/CLI). Доsaveизменения живут в RAM и
сбрасываются перезагрузкой.Legacy-команды
MSP_PID/MSP_SET_PIDудалены из INAV (в 9.1) — PID-тюнинг
идёт только через MSP v2-командыMSP2_PID/MSP2_SET_PID.
Вкладка «Рейты / Expo»
Появляется после подключения на вкладке «Обзор»; рейты и expo читаются
автоматически. Правятся оси стабилизации Roll / Pitch / Yaw, RC expo,
throttle mid/expo и TPA — весь блок MSP_RC_TUNING.
⚠️ Не меняйте рейты в полёте. Рейты и expo сами по себе не крутят моторы,
но задают отклик аппарата на стики — резкая смена делает управление
непредсказуемым и опасным в воздухе. Правьте только на земле, при
разоружённом (disarmed) полётнике, и проверяйте изменения постепенно.
Рейты и expo по осям
Таблица рейтов по каждой оси (MSP_RC_TUNING):
- Рейт — максимальная угловая скорость по оси. INAV хранит одно значение на
ось (отдельных «RC rate» / «super rate», как в Betaflight, у INAV нет). Рядом
показывается справочно ≈ °/с (значение × 10 — как в подсказке INAV: рейт 20
≈ 200 °/с). Диапазон Roll/Pitch —4…180, Yaw —1…180.
Ниже — общие поля:
- RC expo (Roll/Pitch) и RC expo (Yaw) — сглаживание отклика у центра
стика (0…100); - Throttle mid и Throttle expo — форма кривой газа (
0…100); - TPA rate — снижение PID на высоком газу (
0…200); - TPA breakpoint — точка газа (в µs,
1000…2000), с которой TPA включается.
Значения целые; вне диапазона зажимаются предохранителем. Кнопки: Прочитать
рейты — обновить значения с полётника; Записать рейты (MSP_SET_RC_TUNING)
— отправить изменения.
При записи в полётник уходит весь блок рейтов: инструмент берёт прочитанные
значения и подменяет только отредактированные поля.Запись применяется к полётнику сразу, но в EEPROM сохраняется только
командойsave(в INAV Configurator/CLI). Доsaveизменения живут в RAM и
сбрасываются перезагрузкой.Legacy-команды
MSP_RC_TUNING/MSP_SET_RC_TUNINGв INAV 9.x сохранены
(в отличие от выпиленныхMSP_PID) — рейты идут через них; байтrcRate8в
начале кадра — устаревший плейсхолдер (INAV шлёт100и не использует).
Вкладка «Режимы / Aux»
Появляется после подключения на вкладке «Обзор»; список режимов и их диапазоны
читаются автоматически. Здесь настраивается активация режимов полёта
(ARM / ANGLE / HORIZON / NAV ALTHOLD / POSHOLD / RTH и т.д.) по диапазонам
aux-каналов приёмника.
⚠️ Осторожно с режимом ARM. ARM — это взвод: при поданном диапазоне и
наличии газа моторы могут запуститься. Меняйте диапазоны режимов только на
земле, при разоружённом (disarmed) полётнике и со снятыми пропеллерами.
Как это работает
Каждый режим активируется, когда значение назначенного aux-канала попадает в
заданный диапазон. Диапазон задаётся в микросекундах (µs) с шагом 25, от
900 до 2100 — так же, как в INAV Configurator.
Имена режимов и их постоянные идентификаторы читаются по MSP_BOXNAMES и
MSP_BOXIDS (эти два списка идут параллельно: имя ↔ id), диапазоны — по
MSP_MODE_RANGES.
Диапазоны
Для каждого диапазона показаны:
- Режим — выпадающий список режимов, поддержанных полётником;
- AUX-канал — какой канал приёмника управляет режимом (AUX1…AUX14);
- Мин / Макс, µs — границы срабатывания.
Кнопки и действия:
- Прочитать режимы — обновить список и диапазоны с полётника.
- Добавить диапазон — новая строка в первый свободный слот.
- Записать (в строке) — отправить диапазон в полётник
(MSP_SET_MODE_RANGE, по одному диапазону на команду). - Удалить (в строке) — очистить слот (записывается пустой диапазон, а
ещё не записанный черновик просто убирается).
Запись применяется к полётнику сразу, но в EEPROM сохраняется только
командойsave(в INAV Configurator/CLI). Доsaveизменения живут в RAM и
сбрасываются перезагрузкой. Полный набор режимов и логических условий
редактируется в INAV Configurator — инструмент правит основные диапазоны aux.
Живая подсветка активного режима
Кнопка «Живой опрос активных» периодически читает текущие значения каналов
(MSP_RC) по USB и подсвечивает диапазоны, активные при текущих положениях
переключателей (зелёная точка); имена активных режимов сводятся в строку
«Активны сейчас». Это локальное чтение порта — на сервер ничего не отправляется;
опрос останавливается сам при уходе со вкладки, сворачивании окна и отключении.
MSP-команды
| Команда | Код | Назначение |
|---|---|---|
MSP2_INAV_MIXER |
0x2010 |
чтение конфига миксера (платформа, пресет, реверс, motorstop) |
MSP2_INAV_SET_MIXER |
0x2011 |
запись конфига миксера |
MSP_MOTOR |
104 |
чтение выходов на моторы (8×u16, µs) |
MSP_SET_MOTOR |
214 |
запись выходов на моторы — motor test (8×u16, µs) |
MSP_SERVO |
103 |
чтение текущих выходов серв (u16, µs) |
MSP_SERVO_CONFIGURATIONS |
120 |
чтение конфигов серв (min/max/middle/rate) |
MSP_SET_SERVO_CONFIGURATION |
212 |
запись конфига одного серво |
MSP_SERVO_MIX_RULES |
241 |
чтение правил серво-миксера |
MSP2_PID |
0x2030 |
чтение PID-банка (P/I/D/FF по группам, u8) |
MSP2_SET_PID |
0x2031 |
запись PID-банка (весь банк, PID_ITEM_COUNT×4 байта) |
MSP_RC_TUNING |
111 |
чтение рейтов/expo/throttle/TPA (11 байт) |
MSP_SET_RC_TUNING |
204 |
запись рейтов/expo/throttle/TPA (весь блок, 11 байт) |
MSP_MODE_RANGES |
34 |
чтение диапазонов активации режимов (4 байта/слот) |
MSP_SET_MODE_RANGE |
35 |
запись одного диапазона (index + 4 байта) |
MSP_BOXNAMES |
116 |
имена активных режимов (ARM/ANGLE/…, через ;) |
MSP_BOXIDS |
119 |
permanentId режимов (параллельно MSP_BOXNAMES) |
MSP_RC |
105 |
текущие значения RC-каналов (живая подсветка активного режима) |