Перейти к содержимому

Урок 4. Основная конфигурация и Mixer — INAV … ↩

mod. Вторник, 20 октября 2026 15:59 . См. 3

Курс CLI · INAV firmware 9.1.0 · урок 4 из 13

Настройка и диагностика общих функций, параметров и микшера INAV из CLI — без необходимости открывать GUI. Скриншоты показывают поля Configurator, а все учебные действия ниже выполняются командами.

Содержание

Важное условие. Наличие CLI не снимает требований безопасности. До любых изменений сохраните исходную конфигурацию; перед проверкой выходов снимите пропеллеры/тяговые элементы. Значения в скриншотах — иллюстрации интерфейса, а не готовая конфигурация для неизвестной платы.

Цели урока

После урока специалист сможет без 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 all

get ищет имя настройки по подстроке и выводит найденные переменные с текущими значениями и допустимыми диапазонами/вариантами. Например, get vbat возвращает связанные с VBAT настройки; get current_meter — настройки измерения тока. Если запрос слишком широк, уточняйте имя по выводу.

Перед правками сохраните полный текст diff all и при необходимости dump all во внешний файл. Это резервная копия для анализа/восстановления, а не разрешение загружать чужой дамп на другой target.

Переменную меняют формой set ИМЯ_ПАРАМЕТРА = ЗНАЧЕНИЕ. Имя и значение берите из get и справочника именно INAV 9.1.0. После записи перечитайте параметр и проверьте diff all. Команда save [Save and Reboot] сохраняет изменения и перезагружает контроллер; выполняйте её только после проверки и согласования изменения.

Правило для CLI-only работы: сначала идентифицировать target и версию, затем прочитать состояние, затем менять ровно один параметр/назначение, проверить вывод и лишь после этого сохранять. Не подменяйте неизвестное значение «типовым» из чужого примера.

Команда feature и состояние функций

Команда feature без аргументов показывает включённые и выключенные функции — именно такой вывод показан на снимке CLI. feature ИМЯ включает функцию, feature -ИМЯ выключает её; это изменение конфигурации, а не команда чтения. В наблюдавшемся CLI feature list возвращает ### ERROR: Invalid name LIST, поэтому не используйте её как способ перечисления.

Вывод команды feature: имена функций INAV и их состояния ON/OFF
Вывод CLI feature в опубликованном снимке. Это состояние конкретного экземпляра контроллера, а не рекомендуемые значения.

Ниже — полный набор строк из этого вывода. Таблица описывает назначение в общих словах; перед включением проверьте 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 только когда они действительно доступны данной сборке.

Поля Other Features в снимке Configuration: функции и состояния переключателей
Снимок нужен для сопоставления терминов, не для определения текущего состояния подключённого контроллера.

Датчики и шины: экран Sensors & Buses

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

Configuration Sensors and Buses: типы датчиков и I2C speed
Пример полей датчиков и I2C из опубликованного снимка.
Поле на снимке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.

get_hardware_3b057.png

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

Батарея, измерения и ограничения мощности

Voltage and Current Sensors: типы измерителей, масштабы и текущие показания
Поля измерителей напряжения и тока; актуальное состояние следует читать в CLI.

Переключатели измерений — это функции, а тип датчика, калибровка, пороги и ёмкость — переменные. Не путайте их: включение 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_bat_curr_3ed88.png

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

Battery Settings and Power Limiting: пороги ячейки, ёмкость и ограничения тока и мощности
Пример полей батарейного профиля и ограничителей. Значения на снимке не являются настройкой по умолчанию для вашего аппарата.
Поле на снимке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: band, channel, power level и поведение при disarmed
Настройки VTX. Используйте только разрешённые в месте полёта частоты и мощность.
Поле VTXCLI-параметрПримечание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. Частоту и мощность передающего устройства сверяйте с местными правилами.

Настройки Serial Gimbal: чувствительность и каналы pan, tilt, roll
Пример полей Serial Gimbal.
Настройки Headtracker: тип и отношения перемещения pan, tilt, roll
Пример полей Headtracker.
Поле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_roll

platform_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: выходы и правила смешивания

Mixer: platform type, motor direction, output groups, Quad X preset and motor mixer
Снимок Mixer для разбора терминов: Multirotor, Quad X и моторные коэффициенты.
Output Mapping: связь S1–S8, таймеров и назначенных Motor/Servo функций
Output Mapping показывает результат распределения выходов в конкретной конфигурации/target.

В CLI разделяйте четыре слоя, которые на экране видны рядом:

  1. Тип платформы и поведение профилей: 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.
  2. Распределение таймеров и физических ресурсов: 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-документации.
  3. Правило распределения моторов: команда mmix без аргументов читает custom motor-mix rules [Mixer > Motor Mixer]. Она не выбирает GUI preset кнопкой и не гарантирует, что показывает/воспроизводит preset, загруженный в Mixer; не заменяет проверку выхода/порядка моторов. В синтаксисе mmix НОМЕР THROTTLE ROLL PITCH YAW номер CLI начинается с 0.
  4. Правила сервоприводов: smix без аргументов читает custom servo mix rules. Форма записи: smix RULE_INDEX SERVO_INDEX INPUT_ID WEIGHT SPEED LOGIC_CONDITION_ID [Mixer > Servo Mixer]. CLI weight задаётся в диапазоне от -1000 до 1000; speed 0 означает без ограничения скорости. Значение «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

  1. Подключитесь к CLI и запишите вывод version, status, feature, diff all, resource.
  2. Без изменений выполните get acc_hardware, get vbat, get current_meter, get battery_capacity, get vtx, get gimbal, get headtracker. Для каждого ответа выпишите значение и доступные диапазоны/enum.
  3. Выполните get platform_type, timer_output_mode, mmix и smix. По результатам объясните, что является типом платформы, распределением таймера, аппаратным ресурсом, motor rule и servo rule.
  4. Сопоставьте CLI-выводы со снимками. Отметьте несогласованные статусы GUI/CLI как «разные снимки», не пытайтесь привести их друг к другу.
  5. Составьте план одного безопасного изменения: точное имя, текущее значение, обоснование, допустимое новое значение из справочника, команда чтения для проверки и план восстановления. Пока план не проверен наставником/документацией target — команду записи не вводить.
Критерий завершения. Специалист может получить полную исходную картину через CLI, точно найти переменные/правила и объяснить, какие команды только читают, а какие меняют состояние и вызывают перезапуск.

Чек-лист и контрольные вопросы

  1. Что показывает feature без аргументов и почему состояния с двух скриншотов могут различаться?
  2. Как через CLI узнать текущий и допустимый тип датчика для acc_hardware?
  3. Чем измерение vbat_scale отличается от текущего напряжения батареи?
  4. Что проверяют resource и timer_output_mode, и почему индекс таймера нельзя отождествлять с номером разъёма?
  5. Почему строки Quad X на снимке нельзя без проверки ввести на любой квадрокоптер?

Официальные источники и следующий урок

  1. CLI reference INAV 9.1.0
  2. Settings reference INAV 9.1.0
  3. Configuration
  4. Mixer and platform type
  5. Feature definitions и CLI implementation

Следующий урок: приёмник. Связь с уроком 4: сначала через CLI проверены платформа, функции и доступность выходов; далее разбирается путь команд управления от приёмника.

Проверено: 20.10.2026

↑ К оглавлению

  • мод. : Вторник, 20 октября 2026