Урок 4. Основная конфигурация и Mixer — INAV … ↩
mod. Вторник, 20 октября 2026 15:59 . См. 3
Курс CLI · INAV firmware 9.1.0 · урок 4 из 13
Настройка и диагностика общих функций, параметров и микшера INAV из CLI — без необходимости открывать GUI. Скриншоты показывают поля Configurator, а все учебные действия ниже выполняются командами.
Содержание
- Цели урока
- Рабочий цикл CLI без GUI
- Команда feature и состояние функций
- Датчики и шины: экран Sensors & Buses
- Батарея, измерения и ограничения мощности
- VTX, Serial Gimbal и Headtracker
- Тип платформы и ориентация платы
- CLI Mixer: выходы и правила смешивания
- Практическое задание без GUI
- Чек-лист и контрольные вопросы
- Официальные источники и следующий урок
Цели урока
После урока специалист сможет без GUI:
- подключиться к CLI и получить диагностический снимок конфигурации;
- различать команды
feature,get,setи команды работы с Mixer; - по имени параметра найти допустимые значения, прочитать его текущее состояние, изменить только обоснованное значение и проверить результат;
- объяснить, что задают
platform_type,timer_output_mode,resource,mmixиsmix, не смешивая уровни конфигурации.
Рабочий цикл CLI без GUI
Подключитесь к CLI по известному MSP-порту/USB VCP либо через предусмотренный платой последовательный адаптер. GUI в этом процессе не требуется. Сначала выполняйте только чтение:
version
status
feature
get platform_type
resource
diff allget ищет имя настройки по подстроке и выводит найденные переменные с текущими значениями и допустимыми диапазонами/вариантами. Например, get vbat возвращает связанные с VBAT настройки; get current_meter — настройки измерения тока. Если запрос слишком широк, уточняйте имя по выводу.
Перед правками сохраните полный текст diff all и при необходимости dump all во внешний файл. Это резервная копия для анализа/восстановления, а не разрешение загружать чужой дамп на другой target.
Переменную меняют формой set ИМЯ_ПАРАМЕТРА = ЗНАЧЕНИЕ. Имя и значение берите из get и справочника именно INAV 9.1.0. После записи перечитайте параметр и проверьте diff all. Команда save [Save and Reboot] сохраняет изменения и перезагружает контроллер; выполняйте её только после проверки и согласования изменения.
Команда feature и состояние функций
Команда feature без аргументов показывает включённые и выключенные функции — именно такой вывод показан на снимке CLI. feature ИМЯ включает функцию, feature -ИМЯ выключает её; это изменение конфигурации, а не команда чтения. В наблюдавшемся CLI feature list возвращает ### ERROR: Invalid name LIST, поэтому не используйте её как способ перечисления.

Ниже — полный набор строк из этого вывода. Таблица описывает назначение в общих словах; перед включением проверьте target, аппаратную поддержку и требования к параметрам/портам.
| Имя в выводе | Что означает | Состояние на скрине выше |
|---|---|---|
THR_VBAT_COMP | Компенсация влияния напряжения батареи на тягу/газ. | OFF |
VBAT | Функция контроля напряжения батареи. | OFF |
TX_PROF_SEL | Выбор профиля стиками передатчика. | OFF |
BAT_PROFILE_AUTOSWITCH | Автоматическое определение и переключение battery profile при подключении батареи. | OFF |
GEOZONE | Функции настроенной геозоны и связанных с ней проверок. | OFF |
SOFTSERIAL | Программные последовательные порты; требуют поддержки target и ресурсов. | OFF |
GPS | GPS-подсистема; нужны модуль, настроенный serial-порт и правильный протокол. | ON |
TELEMETRY | Передача телеметрических данных; одной функции недостаточно для назначения порта/протокола. | OFF |
CURRENT_METER | Функция измерения тока; требуются датчик и корректная калибровка. | OFF |
REVERSIBLE_MOTORS | Режим реверсивной тяги для совместимой моторной/ESC-системы. | OFF |
RSSI_ADC | Чтение аналогового RSSI с назначенного ADC-входа. | OFF |
LED_STRIP | Поддержка RGB LED-ленты. | OFF |
DASHBOARD | Функции экранного Dashboard/CMS для поддерживаемого дисплея. | OFF |
BLACKBOX | Запись полётных данных; требуется доступное устройство хранения. | OFF |
AIRMODE | Функция Airmode; подробное поведение зависит от типа платформы и параметров Airmode. | OFF |
SOFTSPI | Так отображено в снимке; в исходнике INAV 9.1.0 позиция помечена неиспользуемой. Не включать без проверки версии/сборки. | OFF |
PWM_OUTPUT_ENABLE | Разрешение PWM-выходов, поддерживаемых target. | ON |
OSD | Поддержка OSD. | OFF |
FW_LAUNCH | Режим Launch для самолётной платформы. | OFF |
FW_AUTOTRIM | Автоматическая подстройка тримов на самолётной платформе. | OFF |
Снимки не являются одним синхронным состоянием. На GUI-снимке «Other Features» GPS выглядит выключенным, а на CLI-снимке GPS включён. На GUI-снимке Voltage & Current Sensors мониторинг VBAT/тока включён, а в CLI-таблице VBAT и CURRENT_METER выключены. Значит, это разные состояния/сборки; для диагностики конкретного аппарата доверяйте свежему выводу его CLI, а не значениям на иллюстрациях.
Пример формы команды Включения GPS: feature GPS [Configuration > Other Features > GPS for navigation and telemetry]. Отключение: feature -GPS [тот же переключатель]. До включения отдельно настройте порт и проверьте реальное устройство. Аналогично применяются имена из списка CLI только когда они действительно доступны данной сборке.

Датчики и шины: экран Sensors & Buses
Снимок показывает выбор аппаратуры датчиков и частоты I2C. CLI-only специалист читает точные переменные и варианты командой get; менять аппаратный тип наугад нельзя.

| Поле на снимке | CLI-параметр | Команда чтения | GUI-поле только для сопоставления |
|---|---|---|---|
| Accelerometer | acc_hardware | get acc_hardware | [Configuration > Sensors & Buses > Accelerometer] |
| Magnetometer | mag_hardware | get mag_hardware | [Configuration > Sensors & Buses > Magnetometer] |
| Barometer | baro_hardware | get baro_hardware | [Configuration > Sensors & Buses > Barometer] |
| Pitot tube | pitot_hardware | get pitot_hardware | [Configuration > Sensors & Buses > Pitot tube] |
| Rangefinder | rangefinder_hardware | get rangefinder_hardware | [Configuration > Sensors & Buses > Rangefinder] |
| Optical flow | opflow_hardware | get opflow_hardware | [Configuration > Sensors & Buses > Optical flow] |
| I2C Speed | i2c_speed | get i2c_speed | [Configuration > Sensors & Buses > I2C Speed] |
Для чтения используйте точное имя после get. Для записи — set ТОЧНОЕ_ИМЯ = ДОПУСТИМОЕ_ЗНАЧЕНИЕ [соответствующее поле Configuration]. get выводит допустимые варианты: используйте только значение, которое подходит установленному датчику и target. На скриншоте стоят MPU6000, HMC5883, MS5611, VIRTUAL, SRF10, MSP и 400KHZ.

В снимке есть подсказка о 800 kHz. Она не означает, что всем надо менять скорость: в INAV 9.1.0 стандартное значение i2c_speed — 400KHZ; 800KHZ применяйте только если все подключённые устройства и разводка это поддерживают. Например, сначала get i2c_speed, а изменение set i2c_speed = 800KHZ [Configuration > Sensors & Buses > I2C Speed] допустимо только после проверки аппаратуры.
Батарея, измерения и ограничения мощности

Переключатели измерений — это функции, а тип датчика, калибровка, пороги и ёмкость — переменные. Не путайте их: включение feature VBAT [Configuration > Voltage & Current Sensors > Battery voltage monitoring] не задаёт vbat_scale, а включение feature CURRENT_METER [Configuration > Voltage & Current Sensors > Battery current monitoring] не калибрует токовый датчик.
| Поле на снимке | CLI-параметр | Команда чтения | GUI-поле только для сопоставления |
|---|---|---|---|
| Voltage Meter Type | vbat_meter_type | get vbat_meter_type | [Configuration > Voltage & Current Sensors > Voltage Meter Type] |
| Voltage source for alarms/telemetry | bat_voltage_src | get bat_voltage_src | [Configuration > Voltage & Current Sensors > Voltage source] |
| Voltage Scale | vbat_scale | get vbat_scale | [Configuration > Voltage & Current Sensors > Voltage Scale] |
| Current Meter Type | current_meter_type | get current_meter_type | [Configuration > Voltage & Current Sensors > Current Meter Type] |
| Current Meter Scale | current_meter_scale | get current_meter_scale | [Configuration > Voltage & Current Sensors > Current Meter Scale] |
| Offset | current_meter_offset | get current_meter_offset | [Configuration > Voltage & Current Sensors > Offset] |

Прочитать блок целиком можно командами get vbat, get bat_voltage_src и get current_meter. Поля «Battery Voltage» и «Battery Current» на картинке — текущие измерения, а не настройки для set. Масштаб и offset калибруются по фактическим измерениям с надёжным прибором; цифры 1100, 400 и 0 на картинке не переносите на другой контроллер.

| Поле на снимке | CLI-переменная | Единицы/замечание | GUI-поле только для сопоставления |
|---|---|---|---|
| Number of cells | bat_cells | 0 = auto; 7S, 9S, 11S не определяются автоматически | [Configuration > Battery Settings > Number of cells] |
| Cell-count detection voltage | vbat_cell_detect_voltage | сотые доли вольта | [Configuration > Battery Settings > Maximum cell voltage for cell count detection] |
| Minimum / maximum / warning cell voltage | vbat_min_cell_voltage, vbat_max_cell_voltage, vbat_warning_cell_voltage | сотые доли вольта; например, 330 = 3.30 V | [Configuration > Battery Settings > Minimum/Maximum/Warning Cell Voltage] |
| Capacity unit and capacity | battery_capacity_unit, battery_capacity | MAH или MWH; значение задаётся в выбранной единице | [Configuration > Battery Settings > Battery Capacity Unit/Capacity] |
| Warning / critical remaining capacity | battery_capacity_warning, battery_capacity_critical | пороговые значения оставшейся ёмкости; проверяйте диапазон через get | [Configuration > Battery Settings > Warning/Critical Capacity] |
| Continuous / burst current and timing | limit_cont_current, limit_burst_current, limit_burst_current_time, limit_burst_current_falldown_time | токи в dA, интервалы в ds; ноль выключает соответствующее ограничение, где это разрешено | [Configuration > Power Limiting > Current limits/times] |
| Continuous / burst power and timing | limit_cont_power, limit_burst_power, limit_burst_power_time, limit_burst_power_falldown_time | мощность в dW, интервалы в ds; не задавайте по примеру без расчёта силовой системы | [Configuration > Power Limiting > Power limits/times] |
Ищите точное текущее значение командами get bat_cells, get vbat_cell, get battery_capacity и get limit_. Например, в Settings INAV напряжения ячейки хранятся в сотых долях вольта: 330 = 3.30 V. Ограничители тока/мощности — защитная логика; значения рассчитываются под батарею, проводку, ESC, моторы и охлаждение, не копируются со скриншота.
VTX, Serial Gimbal и Headtracker
Каждый блок со снимков доступен для чтения по префиксу настройки. Конкретные enum-значения перечисляет сам get и справочник версии. Изменение команды должно соответствовать установленному устройству и требуемой функции порта.

| Поле VTX | CLI-параметр | Примечание | GUI-поле только для сопоставления |
|---|---|---|---|
| Band | vtx_band | В Settings 9.1.0 перечислены значения A/B/E/F/Race как 1–5; проверьте устройство и законность частоты | [Configuration > VTX > Band] |
| Channel | vtx_channel | 1–8; согласовать с фактическим VTX | [Configuration > VTX > Channel] |
| Power level | vtx_power | номер уровня зависит от конкретного VTX, это не универсальные mW | [Configuration > VTX > Power Level] |
| Low power while disarmed | vtx_low_power_disarm | допустимые значения и смысл уточнить в выводе get | [Configuration > VTX > Use low power while the craft is disarmed] |
Проверка: get vtx. В справочнике INAV 9.1.0 band A/B/E/F/Race кодируются значениями 1–5; channel — 1–8. Значение vtx_power зависит от модели VTX и не равно универсальной мощности в mW. Частоту и мощность передающего устройства сверяйте с местными правилами.


| Поле | CLI-параметр | Соответствие в GUI (справочно) |
|---|---|---|
| Sensitivity | gimbal_sensitivity | [Configuration > Serial Gimbal > Gimbal sensitivity] |
| Pan / tilt / roll channel | gimbal_pan_channel, gimbal_tilt_channel, gimbal_roll_channel | [Configuration > Serial Gimbal > соответствующий channel] |
| Headtracker type | headtracker_type | [Configuration > Headtracker > Head tracker type] |
| Pan / tilt / roll movement ratio | headtracker_pan_ratio, headtracker_tilt_ratio, headtracker_roll_ratio | [Configuration > Headtracker > соответствующий movement ratio] |
Читайте эти группы через get gimbal и get headtracker. На картинках приведены значения примера, включая нулевые каналы и тип Headtracker None; они не доказывают, что соответствующие функции нужны или активны в вашей конфигурации.
Тип платформы и ориентация платы
Платформа влияет на доступные flight modes, их поведение, flaps и типы mixer. В INAV 9.1.0 реализованы MULTIROTOR, AIRPLANE и TRICOPTER. Значения, упомянутые справочником, но не реализованные в релизе, не следует выбирать.
get platform_type
get align_board_yaw
get align_board_pitch
get align_board_rollplatform_type [Mixer > Platform Configuration > Platform type] читается и меняется как параметр. Форма изменения: set platform_type = AIRPLANE [то же поле]; выполняйте её только если тип аппарата действительно AIRPLANE и конфигурация будет проверена. Не выбирать тип только по числу моторов.
Параметры align_board_yaw, align_board_pitch, align_board_roll измеряются в десятых долях градуса: 900 соответствует 90°. Сначала измерьте фактическую ориентацию платы и проверьте оси по данным/стендовой процедуре; знак и ось нельзя выбирать наугад. Примеры градусов из Betaflight напрямую не переносите.
CLI Mixer: выходы и правила смешивания


В CLI разделяйте четыре слоя, которые на экране видны рядом:
- Тип платформы и поведение профилей:
get platform_type,get mixer_control_profile_linking,get motor_direction_inverted[Mixer > Platform Configuration; Motor direction]. Параметрmotor_direction_invertedобращает направление motor yaw mix; не путайте его с физическим направлением вращения мотора, задаваемым ESC/проводкой. Для связи индекса Control Profile с Mixer Profile параметр —mixer_control_profile_linking[переключатель Control Profile will use same index as Mixer Profile index]; изменить его можно командойset mixer_control_profile_linking = ON[тот же переключатель], только если такое связывание действительно задумано. Параметрmotor_direction_inverted[Mixer > Motor direction] можно изменить командойset motor_direction_inverted = ON[то же поле]; значениеOFFотключает инверсию. Это меняет знак yaw motor mix, а не физическое направление вращения мотора в ESC. - Распределение таймеров и физических ресурсов:
timer_output_modeбез аргументов показывает режимы таймеров;resourceпоказывает назначение ресурсов/выводов. У командыtimer_output_mode ТАЙМЕРможно запросить один индекс, аtimer_output_mode ТАЙМЕР MOTORS,timer_output_mode ТАЙМЕР SERVOSилиtimer_output_mode ТАЙМЕР AUTOменяет режим [Mixer > Output Groups (Timers)]. Индекс таймера в CLI начинается с 0; не подставляйте номер надписи Timer/TIM или Sx без target-документации. - Правило распределения моторов: команда
mmixбез аргументов читает custom motor-mix rules [Mixer > Motor Mixer]. Она не выбирает GUI preset кнопкой и не гарантирует, что показывает/воспроизводит preset, загруженный в Mixer; не заменяет проверку выхода/порядка моторов. В синтаксисеmmix НОМЕР THROTTLE ROLL PITCH YAWномер CLI начинается с 0. - Правила сервоприводов:
smixбез аргументов читает custom servo mix rules. Форма записи:smix RULE_INDEX SERVO_INDEX INPUT_ID WEIGHT SPEED LOGIC_CONDITION_ID[Mixer > Servo Mixer]. CLI weight задаётся в диапазоне от -1000 до 1000; speed0означает без ограничения скорости. Значение «100%» на GUI-скриншоте нельзя без проверки переписывать как100.
В CLI input ID для servo mix — отдельная нумерация:
| CLI input ID | Вход, указанный в Mixer docs |
|---|---|
| 0 | Stabilized Roll |
| 1 | Stabilized Pitch |
| 2 | Stabilized Yaw |
| 3 | Stabilized Throttle |
| 4 | Raw RC Roll |
| 5 | Raw RC Pitch |
| 6 | Raw RC Yaw |
| 7 | Raw RC Throttle |
Например, строка GUI «Servo 1 / Stabilized Roll / 100% / Speed 0 / Always» означает концептуально: первое серво-правило использует стабилизированный Roll, без slew-rate ограничителя и без logic condition. Для точных индексов/чисел прочитайте smix и сверьте input ID со справочником; не выводите CLI weight напрямую из процента GUI.
На скриншоте показана таблица Quad X. Ниже — пример команд для задания custom motor-mix rules с такими же коэффициентами, если схема, порядок моторов и желаемые значения точно совпадают. GUI-строки 1–4 соответствуют CLI-индексам 0–3:
mmix 0 1 -1 1 -1
mmix 1 1 -1 -1 1
mmix 2 1 1 1 1
mmix 3 1 1 -1 -1Это учебная расшифровка конкретного Quad X на скриншоте (не универсальная команда для любой рамы). До записи проверьте геометрию, нумерацию моторов и соответствие выходов; снимите пропеллеры. Команда mmix reset удаляет пользовательские правила и не нужна для чтения — не запускайте её случайно. Для серво-микшера используйте ту же дисциплину: сначала smix, затем рассчитывайте правило по CLI input ID и официальной таблице; не копируйте процент GUI без пересчёта.
В показанной Output Mapping таблице, например, S1 и Timer 2 назначены Motor 1 на этом конкретном стенде. Это не универсальное соответствие. В CLI проверяйте resource и timer_output_mode; меняйте ресурсы только по документации точного target. Для управления PWM-протоколом и сервовыходами запрашивайте точные настройки get motor_pwm и get servo_pwm.
Практическое задание без GUI
- Подключитесь к CLI и запишите вывод
version,status,feature,diff all,resource. - Без изменений выполните
get acc_hardware,get vbat,get current_meter,get battery_capacity,get vtx,get gimbal,get headtracker. Для каждого ответа выпишите значение и доступные диапазоны/enum. - Выполните
get platform_type,timer_output_mode,mmixиsmix. По результатам объясните, что является типом платформы, распределением таймера, аппаратным ресурсом, motor rule и servo rule. - Сопоставьте CLI-выводы со снимками. Отметьте несогласованные статусы GUI/CLI как «разные снимки», не пытайтесь привести их друг к другу.
- Составьте план одного безопасного изменения: точное имя, текущее значение, обоснование, допустимое новое значение из справочника, команда чтения для проверки и план восстановления. Пока план не проверен наставником/документацией target — команду записи не вводить.
Чек-лист и контрольные вопросы
- Что показывает
featureбез аргументов и почему состояния с двух скриншотов могут различаться? - Как через CLI узнать текущий и допустимый тип датчика для
acc_hardware? - Чем измерение
vbat_scaleотличается от текущего напряжения батареи? - Что проверяют
resourceиtimer_output_mode, и почему индекс таймера нельзя отождествлять с номером разъёма? - Почему строки Quad X на снимке нельзя без проверки ввести на любой квадрокоптер?
Официальные источники и следующий урок
- CLI reference INAV 9.1.0
- Settings reference INAV 9.1.0
- Configuration
- Mixer and platform type
- Feature definitions и CLI implementation
Следующий урок: приёмник. Связь с уроком 4: сначала через CLI проверены платформа, функции и доступность выходов; далее разбирается путь команд управления от приёмника.
Проверено: 20.10.2026
- мод. : Вторник, 20 октября 2026