Урок 6. Режимы полёта — INAV … ↩
mod. Суббота, 31 октября 2026 21:29 . См. 5
Курс CLI · INAV firmware 9.1.0 · урок 6 из 13
Настройка и чтение диапазонов режимов и adjustments через CLI, разбор отображаемых Modes и безопасная проверка условий ARM и навигации.
Содержание
aux, adjrange и diff all; не обходите arming checks ради включения режима.Цели и важное различие
После урока вы сможете:
- прочитать конфигурацию диапазонов командой
aux[Modes] и определить её числовые поля; - сопоставить CLI-индексы с каналами AUX, не путая номер канала передатчика со счётчиком от нуля;
- отличить назначение режима от фактического включения режима и от разрешения ARM;
- прочитать настройки
adjrange[Adjustments] и не смешивать adjustments с обычными режимами.
Mode range (диапазон параметра) определяет условие, при котором канал приёмника включает заданный режим. Это не измерение фактического положения переключателя и не подтверждение готовности датчиков. CLI выводит конфигурацию aux, но не отображает реальные значения всех RC-каналов и не доказывает, что конкретный переключатель достигает заданного диапазона.
Отдельно: режим ARM — это команда arm/disarm, назначаемая переключателю; наличие диапазона ARM само по себе не означает, что контроллер разрешает взведение. Условия и блокировки проверяются отдельно.
Чтение и синтаксис AUX через CLI
Начните с чтения. Команда без аргументов показывает текущую конфигурацию mode ranges; status показывает состояние и причины блокировки ARM. Снимите вывод до изменений:
version
status
aux
adjrange
diff all
В INAV 9.1.0 команда записи имеет вид aux SLOT MODE_ID AUX_INDEX MIN_US MAX_US [Modes]. Вводите числовые поля, не названия режимов. В самой CLI-записи не печатайте буквальные заполнители SLOT и т. п.; замените их подтверждёнными числами. Читайте их из текущего вывода и официального списка режимов для этой версии.
| Поле CLI | Смысл и допустимые значения INAV 9.1.0 |
|---|---|
SLOT |
Индекс строки диапазона, 0–39. Не занимайте строку, уже используемую другой настройкой; сначала прочитайте aux. |
MODE_ID |
Постоянный ID режима (permanent ID), а не произвольный номер строки в списке режимов. Снимок ниже содержит IDs 0, 1, 2, 3 и 10. |
AUX_INDEX |
Индекс AUX с нуля: AUX1 = 0, AUX2 = 1, AUX3 = 2. При стандартных четырёх основных каналах им соответствуют приёмные каналы CH5, CH6, CH7. |
MIN_US, MAX_US |
Границы в микросекундах в диапазоне 900–2100, с шагом 25. В коде INAV нижняя граница включена, верхняя не включена: value ≥ MIN_US и value < MAX_US. Это важно для соседних интервалов. |
Конфигуратор подписывает каналы как CH5/CH6/CH7; CLI кодирует AUX-индекс от нуля. Конкретные live-значения каналов CLI не показывает. Если нужно доказать, что физический переключатель реально достигает нужного диапазона, используйте подходящий MSP-клиент/измерительное средство либо Configurator как альтернативный монитор — не считайте один вывод aux такой проверкой.
Числовые mode IDs INAV 9.1.0 для режимов, показанных на снимке, сверены с таблицей прошивки:
| Режим | Permanent ID для aux |
|---|---|
ARM |
0 |
ANGLE |
1 |
HORIZON |
2 |
NAV ALTHOLD |
3 |
NAV RTH |
10 |
Не берите IDs из старого wiki, чужого дампа, другой версии или enum boxId: CLI в INAV 9.1.0 читает permanent IDs. Допустимые режимы на конкретном target также зависят от сборки и типа платформы.
Разбор актуального снимка Modes

В снимке открыта вкладка Modes [Modes]. На ней видны такие поля/значения. Их прямое CLI-соответствие — команда aux [Modes > строка режима > CH / Min / Max]:
| Строка/поля на снимке | Mode ID | AUX и индекс CLI | Диапазон на снимке, μs |
|---|---|---|---|
ARM, CH5, Min/Max |
0 |
CH5 = AUX1 = 0 |
1700–2100 |
ANGLE, CH6, Min/Max |
1 |
CH6 = AUX2 = 1 |
1300–1700 |
HORIZON, CH6, Min/Max |
2 |
CH6 = AUX2 = 1 |
900–1300 |
NAV RTH, CH7, Min/Max |
10 |
CH7 = AUX3 = 2 |
1700–2100 |
NAV ALTHOLD, CH7, Min/Max |
3 |
CH7 = AUX3 = 2 |
1300–1700 |
Если бы эти пять строк намеренно кодировались в CLI и слоты с индексами 0–4 были свободны, команды имели бы такой вид. Это демонстрация перевода именно снимка; перед любой записью проверьте занятость слотов выводом aux. Не вводите пример как универсальную или проверенную на реальной модели конфигурацию.
aux 0 0 0 1700 2100
aux 1 1 1 1300 1700
aux 2 2 1 900 1300
aux 3 10 2 1700 2100
aux 4 3 2 1300 1700
Точки перехода в GUI показаны рядом с диапазонами для симуляторных каналов около 1500. На реальном передатчике проверьте реальные крайние значения и переключение отдельным live-инструментом. Верхний предел 2100 в логике range не включён; для устойчивой работы фактический канал должен уверенно попадать внутрь нужного диапазона, а не держаться ровно на границе.
Режим, ARM и навигационные prerequisites
INAV использует назначение ARM на переключатель; stick arming удалён начиная с INAV 2.2. Активный диапазон ARM — только выбранный вход. По Controls INAV 9.1.0 взведение блокируется, например, если настроены NAV modes без GPS lock либо загружена WP-миссия, у которой первая точка дальше nav_wp_safe_distance. Читайте status [Status] и устраняйте первопричину. Не отключайте arming checks и не применяйте bypass как способ «починить» конфигурацию.
Навигационные режимы назначают только после проверки требований для фактического воздушного судна и установленного оборудования:
NAV ALTHOLDтребует валидного источника высоты; INAV выбирает доступный источник, например барометр, GPS или rangefinder.NAV POSHOLDтребует GPS, акселерометр и компас; для мультикоптера в документации указано дополнительное условие по барометру. Ограничения зависят от платформы.NAV RTHтребует корректных GPS, акселерометра и компаса; для мультиротора документация также указывает барометр. Перед применением отдельно проверьте Home, направление возврата, высоту и failsafe.NAV WP— режим движения по загруженной waypoint-миссии; это не команда загрузки миссии.
Команда wp управляет waypoint-данными/миссиями, а не диапазонами режима; команда safehome управляет safehome locations. Не смешивайте эти операции с назначением mode ranges через aux. Наличие названия режима в списке или на скриншоте не доказывает readiness GPS, компаса, барометра или готовность безопасного полёта.
Adjustments — отдельная команда
adjrange [Adjustments] связывает диапазон одного AUX-канала с adjustment function и каналом-управлением. Это не то же самое, что aux: aux включает режим, adjrange управляет настройкой через назначенную функцию. Сначала только прочитайте текущие строки:
adjrange
help adjrange
Синтаксис одной строки: adjrange RANGE_INDEX SLOT AUX_INDEX MIN_US MAX_US FUNCTION_ID ADJUSTMENT_AUX_INDEX. В INAV 9.1.0 предусмотрено до 20 строк (RANGE_INDEX 0–19) и четыре одновременных adjustment slots (SLOT 0–3). Оба канала AUX указываются индексами с нуля; границы диапазона задаются в микросекундах и шагом 25. Имена/числа adjustment functions сверяйте с официальной таблицей версии 9.1.0 — не используйте числа из чужой версии.
Не добавляйте adjustments в полётной конфигурации как упражнение «на пробу»: изменение rate/PID или другой функции в воздухе может сделать аппарат неуправляемым. Для учебной практики достаточно разобрать существующий вывод adjrange и объяснить все семь полей. Изменение, проверка и сохранение требуют отдельного конкретного стенда, backup и контролируемой процедуры.
Безопасная процедура и практика
- Сверьте
version, target и тип платформы. Сохраните выводыstatus,aux,adjrangeиdiff allво внешний backup. - По фактической карте каналов установите, какой AUX управляет каким переключателем; CLI-only считывание настроек не подтверждает live-ход канала.
- Для каждого желаемого режима выберите свободный range slot, проверьте permanent ID в источнике INAV 9.1.0, AUX index и реальные пороги канала. До записи составьте план.
- После изменения перечитайте
aux, сравните с планом и проверьте конфигурацию в безопасном состоянии. Для фактического переключения используйте внешний live-инструмент/Configurator, не подменяя его чтением настроенного диапазона. - Сохраните изменения только после проверки и согласования: команда
save[Modes > Save] сохраняет изменения и перезагружает контроллер. После reboot повторите чтение.
Практика без записи во FC: возьмите приведённый в разделе 02 скриншот, отметьте permanent ID каждого режима, переведите CH5–CH7 в AUX index 0–2, затем проверьте соответствие пяти диапазонов синтаксису aux. Для adjustments возьмите существующий вывод adjrange и подпишите диапазон, slot, условный канал, function ID и канал изменения. Критерий — корректно разобраны все поля без копирования SITL-настроек в аппаратную конфигурацию.
aux и adjrange, правильно перевести CH5–CH7 в CLI AUX indices и назвать, какие live-проверки один CLI выполнить не может.Чек-лист и контрольные вопросы
- Как отличаются
auxиadjrange? - Почему CH5 отображается как AUX1, но в CLI указывается
AUX_INDEX = 0? - Какой permanent ID у
NAV RTHв INAV 9.1.0, и почему нельзя подставить значение из старого списка режимов? - Что означает верхняя граница диапазона в проверке INAV и почему соседние диапазоны удобно делать стык-в-стык?
- Какие факты можно получить из
aux, а какие требуют чтения live-каналов/физического теста? - Почему активный режим
ARMне является доказательством, что взведение разрешено?
Источники INAV 9.1.0
- CLI reference: команды
auxиadjrange - CLI parser/вывод
auxиadjrange - Таблица permanent IDs режимов
- Логика mode-range и границы диапазона
- Controls/Arming: ARM и условия блокировки
- Navigation: prerequisites NAV ALTHOLD, POSHOLD, RTH и WP
- Inflight Adjustments: синтаксис, диапазоны и функции
Следующий урок: failsafe. Различайте выбор режима failsafe, условия ARM и реальные реакции при потере RC; ни одна из них не доказывается одним назначением переключателя.
Проверено: 31.10.2026
- мод. : Суббота, 31 октября 2026