Inav как сохранить настройки
Ну раз так, то да, тестить релиз удобно, дамп залил и в путь )
Я так обычно и делаю. Настроек куча, заново все настраивать — замучаешься.
Сейчас погода не совсем подходит для полётов и световой день короткий, а в квартире запускать коптер 450 размера, что то не хочется, размера свободного пространства 2х3 метра считаю малым. Облет разных конфигураций/настроек/прошивок у меня длится медленно (
Сейчас погода не совсем подходит для полётов и световой день короткий, а в квартире запускать коптер 450 размера, что то не хочется, размера свободного пространства 2х3 метра считаю малым. Облет разных конфигураций/настроек/прошивок у меня длится медленно (
Я полюбил мелкие коптеры типа того, что в посте #1927. Носить легко, повисеть можно и в квартире, летают хорошо.
Команда CLI “dump” делает полный дамп настроек
Я про эту команду в курсе, только тонкостей не понял… у меня она в кли и выводит всё, а в файл не сохраняет вроде. Как я понял, надо выделать прямо в окне мышОй, копировать и вставлять куда то, затем как-то обратно вгонять.
Я про эту команду в курсе, только тонкостей не понял… у меня она в кли и выводит всё, а в файл не сохраняет вроде. Как я понял, надо выделать прямо в окне мышОй, копировать и вставлять куда то, затем как-то обратно вгонять.
Ctrl+A, Ctrl+C и Ctrl+V в помощь
Я про эту команду в курсе, только тонкостей не понял… у меня она в кли и выводит всё, а в файл не сохраняет вроде. Как я понял, надо выделать прямо в окне мышОй, копировать и вставлять куда то, затем как-то обратно вгонять.
Да скопируйте, сохраняйте в текстовый файл, потом так же вставить и интер
Я полюбил мелкие коптеры типа того, что в посте
А я чота никак к ним… купил детский мини (наладонник), но и на нём не интересно (может потому, что врезаюсь и падаю ). Мне надо как раз вальяжности и пространства )) Может потому, что цель определена для коптера и почти достигнута
потом так же вставить и интер
Команда перед вводом должна быть опять дамп или просто вставить и ввод? Простите, туплю не открыв программу. Сушится регулятор на коптере и ворочить пока не могу, что бы приконнектить (
Команда перед вводом должна быть опять дамп или просто вставить и ввод? Простите, туплю не открыв программу. Сушится регулятор на коптере и ворочить пока не могу, что бы приконнектить (
Команда dump выдает лог настроек. Если этот лог вставить в командную строку и тыкнуть Энтер — он все эти команды применит
А я чота никак к ним… купил детский мини (наладонник), но и на нём не интересно (может потому, что врезаюсь и падаю ). Мне надо как раз вальяжности и пространства )) Может потому, что цель определена для коптера и почти достигнута
Команда перед вводом должна быть опять дамп или просто вставить и ввод? Простите, туплю не открыв программу. Сушится регулятор на коптере и ворочить пока не могу, что бы приконнектить (
Дамп нужен для вывода и сохранения, если обратно нужно бекап поднять, то открываем CLI и вставляем нужные команды или весь бекап
Кстати например пид в вики, можно при скопировать и так же вставить, не забываем после команду save
то открываем CLI и вставляем нужные команды или весь бекап
Спасибо, Константин уже уточнил куда вставлять строки, именно это интересовало. Я думал просто в окно ))
Спасибо, Константин уже уточнил куда вставлять строки, именно это интересовало. Я думал просто в окно ))
Он быстрее написал )
а я вчера полетал чуть, но мне вообще не понравилось поведение коптера.
Во первых, регулятор чудил… после включения он то и дело как бы перегружался чтоли (песня пела) пока не оторвал стяжку от луча, его прижимающую, тогда перестал почему-то.
Сразу при включении запищал индикатор разряда, хотя акум я зарядил полностью еще утром (летать пошел уже по тёмному), взлетел и как-то не уверенно он висел. Может на ветер из-за не правильно настроенных пидов так реагировал (как в прошлый раз я тут видео выкладывал, когда неадекватно как-то реагировал на команды), но в режиме жпсхолд я вроде назад, а он вперёд/вправо дёргается, я влево — он вроде тоже сначала вперёд, затем влево. Без ЖПСхолда вроде даже лучше было. Поднять выше 5м не решился, с ветром у него плохо получалось бороться, точнее непредсказуемо как-то.
Я думал упадёт вообще, но нет, отлетал около 10минут (с камерой, в полном комплекте). Приземлился он сам уже без сил, т.к. я не особо обращал на его пищалку. Вот такие у меня тесты… никакие какие-то.
Сборка квадрокоптера на раме RoboCat (часть 4) — установка и настройка iNAV
Последний этап сборки — установка и настройка прошивки на полётный контроллер. Для начала о самой прошивке. Cleanflight — очень популярная прошивка, но все навигационные функции находятся там в зачаточном состоянии. Поэтому я буду использовать прошивку iNAV. Это ответвление от Cleanflight`а, созданное Константином Шарлаимовым (он же DigitalEntity, он же jShadow) со товарищи и «заточенное» именно под работу с GPS и навигацией. Так как экспериментирую я с данным квадрокоптером уже давно, то и за iNAV слежу уже достаточно долго (с апреля 2016). Надо отдать должное авторам, объём работы проделан огромный. Это хорошо видно по теме обсуждения прошивки на форуме rcdesign.ru, где сам Константин активно общается.
ДИСКЛЕЙМЕР
Во многих аспектах, данная статья выражает субъективное мнение автора. Спорить с ним бесполезно, он упёртый.
Настраивать ранние версии было достаточно сложно, так как использовался Cleanflight Configurator, в то время как по коду iNAV уже очень сильно отличался от прародителя и бОльшую часть команд надо было вводить через CLI. Позднее (примерно, в августе 2016) iNAV обзавёлся собственным конфигуратором iNAV Configurator, что заметно упростило первичную настройку. Также iNAV обладает подробной документацией, часть которой переведена на русский:
- документация на английском
- документация на русском
- документация на русском
- видео по настройке
Последняя версия прошивки на сегодняшний день — 1.5 и именно её я рассматриваю в данной статье. Далее мои варианты настроек с пояснениями.
Вкладка Setup
Здесь производится калибровка датчиков и именно с неё и надо начинать. Начиная с версии 1.5, в прошивку добавлена неотключаемая «защита от дурака», не позволяющая запустить двигатели, если не откалиброваны компас и акселерометр. Процесс очень доступно описан на этой странице. Компас лучше калибровать на улице, где меньше помех. Делается это, как и в Cleanflight, переводом левого стика передатчика в верхний правый угол, а правого — вниз. Квадрокоптер при этом должен быть не заармлен.
Вкладка Ports
Минимум изменений: включил MSP для порта UART3 и GPS для UART2. Скорость для GPS выбрал 57600 (или 19200 при использовании softserial, но такое подключение не рекомендуется).
iNAV Configurator, вкладка Ports

Вкладка Configuration
Здесь настроек много, чтобы было проще, разделю их по блокам.
ESC/Motor Features
- Включил опцию «Enable motor and servo output». Это своего рода защитный механизм, вообще отключающий моторы, чтобы поберечь сервы на самолётных моделях.
- Выбрал протокол регуляторов ONESHOT125 и частоту обновления 1кГц.
- Отключил MOTOR_STOP, чтобы моторы всегда вращались в заармленном состоянии.
- Включил опцию «Disarm motors regardless of throttle value», так как буду делать арминг моторов на отдельном канале. Она позволяет дизармить моторы независимо от уровня газа.
- Уменьшил значение «Minimum Throttle» до 1050. Это обороты холостого хода, подбирал субъективно.
Sensors
Здесь ничего не менял, прошивка сама распознала мои датчики.
Board and Sensor Alignment
Указал, что мой ПК повёрнут на 90 градусов по оси yaw. Корректность этого параметра потом можно проверить во вкладке Setup. Компас у той модели U-blox NEO-M8N, что использую я, бывает повёрнут на 270 или 180 градусов. Кроме того, он расположен на нижней части платы, что тоже надо учитывать. Так что для компаса надо выбирать CW270 FLIP или CW180 FLIP.
Battery Voltage
Включил опцию «Battery voltage monitor» для активации индикатора заряда батареи. Остальные параметры я не менял, так как показания заряда соответствуют действительности. Если же в них есть погрешность, её можно убрать настройкой «Voltage Scale».
Reciever Mode
Выбрал протокол радиоприёмника RX_PPM.
GPS
- Активировал GPS, включив опцию «GPS for navigation and telemetry».
- Установил UBLOX в качестве протокола.
- Задал угол магнитного отклонения. Узнать его для своего местоположения можно здесь.
Other Features
Активировал только одну опцию — «Multi-color RGB LED strip support».
iNAV Configurator, вкладка Configuration

Вкладка Failsafe
О нюансах и настройке этого режима на приёмнике и ПК, я подробно писал тут. В данном случае кое-что изменилось. Во-первых, iNAV предлагает ещё один сценарий поведения — RTH (он же «Return To Home»). Во-вторых, мой новый приёмник Turnigy TGY-iA6C не такой «умный» и не передаёт на ПК сигнал о потере связи. Единственное, что он умеет — эмулировать предустановленные положения стиков/тумблеров. Поэтому единственный вариант настройки в моём случае — назначить Failsafe, как полётный режим, и активировать его на приёмнике при потере сигнала. У себя я это сделал на канале AUX4, к которому не привязан ни один тумблер. Подробности уже писал.
В итоге из настроек я только активизировал «Failsafe Stage 2» и выбрал сценарий RTH в «Failsafe Procedure». Важно, чтобы в разделе «Channel Fallback Settings» для Throttle было установлено значение Hold, иначе ПК будет вырубать моторы.
iNAV Configurator, вкладка Failsafe

Вкладка Modes
К этому моменту все датчики квадрокоптера должны быть включены и опознаны ПК, о чём информирует верхняя плашка с иконками.

Если какой-то из сенсоров не обнаруживается, из списка полётных режимов исчезнут те, которые этот сенсор используют. Например, без барометра не будет режима ALTHOLD, а без GPS — режима POSHOLD. Для начала кратко о некоторых из режимов.
- ANGLE — режим со стабилизацией, для которого можно задать максимальный допустимый угод наклона ЛА.
- HORIZON — тоже стабилизация, но предполагающая более агрессивное управление.
- AIRMODE — вспомогательный режим, пришедший из Betaflight.
- POSHOLD — удержание позиции по GPS.
- ALTHOLD — удержание высоты по барометру. Важный нюанс: «целевая» высота (которую квадрокоптер будет пытаться удерживать) запоминается при активации режима, а не при арминге. Кроме того, стик газа в этом режиме контролирует не газ, а вертикальную скорость с висением на 50% газа. Учитывая всё это, не стоит взлетать в этом режиме.
- MAG — удержание курса по компасу.
- HEAD LOCK — более жесткое удержание курса без использования компаса (актуально только для трикоптеров и, возможно, самолетов классической схемы).
В ранних версиях iNAV режимы удержания высоты и позиции не были самостоятельными и их надо было добавлять к ANGLE или HORIZON. Сейчас они самодостаточны, но, тем не менее, я всё же включу ANGLE и AIRMODE. Дело в том, что при первом полёте у меня не включился POSHOLD (как предположил Константин, была ошибка компаса) и я получил режим ACRO.
Переключателя режимов у меня два трёхпозиционных, но управляющих одним каналом (AUX1). Это даёт мне возможность настроить до пяти режимов или их комбинаций, чем я и воспользовался:
- ANGLE — для взлётов и посадок
- ANGLE + AIRMODE
- POSHOLD + ANGLE + AIRMODE
- POSHOLD + ALTHOLD + ANGLE + AIRMODE
- ALTHOLD + ANGLE + AIRMODE — основной полётный режим
Также я повесил на тумблеры арминг (AUX2) и пищалку (AUX3), а Failsafe на «безтумблерный» AUX4.
Пара слов о приоритетах режимов. Наивысший, разумеется, у Failsafe, далее идёт RTH, третим — WP, и затем уже режимы вроде POSHOLD и ALTHOLD. AIRMODE в отличии от Betaflight, здесь не имеет приоритета над MOTOR_STOP. То есть, если MOTOR_STOP включен, моторы в любом случае будут останавливаться при нулевом газе.
iNAV Configurator, вкладка Modes

Вкладка LED Strip
Тут всё очень субъективно. Для своего квадрика я настроил подсветку синего цвета с эффектом Larson Scanner.
Подсветка с эффектом Larson Scanner
Вкладка Sensors
Настраивать тут ничего не надо, но вот проверить работу датчиков можно. В первую очередь, барометра. Единственное, что надо знать — барометр начинает отображать данные только после арминга, а до этого высота принудительно подтягивается к нулю. Сделано для того, чтобы высота «дома» всегда нулевой.
Вкладка CLI
Несмотря на удобный конфигуратор, здесь тоже предстоит кое-что сделать. Для начала надо откалибровать каналы. Я уже писал как сделать это на передатчике, но, как оказалось, лучше делать это в прошивке ПК. Итак, сперва надо во вкладке Reciever посмотреть и запомнить крайние показатели всех четырёх каналов управления. Например, они такие:
roll 1050 — 1950
pitch 990 — 1992
yaw 990 — 2015
throttle 1070 — 1980
Затем нужно сообщить эти диапазоны прошивке. Делается это следующими командами:
rxrange 0 1050 1950
rxrange 1 990 1992
rxrange 2 990 2015
rxrange 3 1070 1980
Крайние точки теперь настроены, а вот центральные всё равно придётся настраивать на передатчике. Далее я ввёл некоторые настройки, адаптированные для маленьких рам. Их список находится здесь.
set p_pitch = 55
set i_pitch = 40
set d_pitch = 15
set p_roll = 55
set i_roll = 40
set d_roll = 15
set p_yaw = 90
set i_yaw = 45
set d_yaw = 20
set p_level = 20
set i_level = 15
set d_level = 75
set gyro_lpf = 256hz
set tpa_rate = 10
set tpa_breakpoint = 1650
set looptime = 1000
set gyro_sync = on
set gyro_sync_denom = 8
Опытным путём (то есть, в поле) надо определить газ висения и задать как значение переменной nav_mc_hover_thr. Оно будет использовано в режиме ALTHOLD. Если фактический газ висения будет отличается от заданного, то при активации режима удержания высоты, квадрокоптер будет сильно просаживатся или подпрыгивать.
Чтобы квадрокоптер армился в любом положении (даже вверх ногами), надо прописать:
set small_angle = 180
В iNAV много внимания уделено всевозможной защите. Выше уже упоминалась блокировка запуска моторов при неоткалиброванных датчиках. Кроме этого, есть переменные inav_gps_min_sats и nav_extra_arming_safety. Первая отвечает за минимальное количество спутников GPS, которые надо «поймать» для арминга, вторая разрешает/запрещает арминг при полном отсутствии сингала GPS. В процессе настройки, зачастую полезно отключить nav_extra_arming_safety, но потом надо не забыть включить обратно.
Ещё одна интересная переменная — nav_user_control_mode. Она отвечает за то, как будут интерпретироваться pitch/roll в режиме POSHOLD. Её значение по умолчанию ATTI — правый стик контролирует угол наклона коптера как в режиме ANGLE. Также возможен вариант CRUISE — правый стик контролирует скорость и направление полета. Я предпочитаю ATTI.
Собственно, всё, можно сохранять. Вот полный дамп моих настроек:
Dump всех настроек iNAV
# version # INAV/SPRACINGF3 1.5.0 Dec 31 2016 / 02:15:51 (37afad6) # pflags # Persistent config flags: 0x00000000 # dump master # mixer mixer QUADX mmix reset smix reset # feature feature -RX_PPM feature -VBAT feature -UNUSED_1 feature -RX_SERIAL feature -MOTOR_STOP feature -SERVO_TILT feature -SOFTSERIAL feature -GPS feature -FAILSAFE feature -SONAR feature -TELEMETRY feature -CURRENT_METER feature -3D feature -RX_PARALLEL_PWM feature -RX_MSP feature -RSSI_ADC feature -LED_STRIP feature -DASHBOARD feature -UNUSED_2 feature -BLACKBOX feature -CHANNEL_FORWARDING feature -TRANSPONDER feature -AIRMODE feature -SUPEREXPO feature -VTX feature -RX_SPI feature -SOFTSPI feature -PWM_SERVO_DRIVER feature -PWM_OUTPUT_ENABLE feature -OSD feature RX_PPM feature VBAT feature GPS feature FAILSAFE feature LED_STRIP feature PWM_OUTPUT_ENABLE # beeper beeper GYRO_CALIBRATED beeper HW_FAILURE beeper RX_LOST beeper RX_LOST_LANDING beeper DISARMING beeper ARMING beeper ARMING_GPS_FIX beeper BAT_CRIT_LOW beeper BAT_LOW beeper GPS_STATUS beeper RX_SET beeper ACC_CALIBRATION beeper ACC_CALIBRATION_FAIL beeper READY_BEEP beeper MULTI_BEEPS beeper DISARM_REPEAT beeper ARMED beeper SYSTEM_INIT beeper ON_USB beeper LAUNCH_MODE # map map AETR1234 # serial serial 0 1 115200 38400 0 115200 serial 1 2 115200 57600 0 115200 serial 2 1 115200 38400 0 115200 # led led 0 0,15::G:10 led 1 1,15::CO:10 led 2 2,15::CO:10 led 3 3,15::CO:10 led 4 4,15::CO:10 led 5 5,15::CO:10 led 6 6,15::CO:10 led 7 7,15::CO:10 led 8 8,15::CO:10 led 9 9,15::CO:10 led 10 10,15::CO:10 led 11 11,15::CO:10 led 12 12,15::CO:10 led 13 13,15::CO:10 led 14 14,15::CO:10 led 15 15,15::G:10 led 16 0,0::C:0 led 17 0,0::C:0 led 18 0,0::C:0 led 19 0,0::C:0 led 20 0,0::C:0 led 21 0,0::C:0 led 22 0,0::C:0 led 23 0,0::C:0 led 24 0,0::C:0 led 25 0,0::C:0 led 26 0,0::C:0 led 27 0,0::C:0 led 28 0,0::C:0 led 29 0,0::C:0 led 30 0,0::C:0 led 31 0,0::C:0 # color color 0 0,0,0 color 1 0,255,255 color 2 0,0,255 color 3 30,0,255 color 4 60,0,255 color 5 90,0,255 color 6 120,0,255 color 7 150,0,255 color 8 180,0,255 color 9 210,0,255 color 10 240,0,255 color 11 270,0,255 color 12 300,0,255 color 13 330,0,255 color 14 0,0,0 color 15 0,0,0 # mode_color mode_color 0 0 1 mode_color 0 1 11 mode_color 0 2 2 mode_color 0 3 13 mode_color 0 4 10 mode_color 0 5 3 mode_color 1 0 5 mode_color 1 1 11 mode_color 1 2 3 mode_color 1 3 13 mode_color 1 4 10 mode_color 1 5 3 mode_color 2 0 10 mode_color 2 1 11 mode_color 2 2 4 mode_color 2 3 13 mode_color 2 4 10 mode_color 2 5 3 mode_color 3 0 8 mode_color 3 1 11 mode_color 3 2 4 mode_color 3 3 13 mode_color 3 4 10 mode_color 3 5 3 mode_color 4 0 7 mode_color 4 1 11 mode_color 4 2 3 mode_color 4 3 13 mode_color 4 4 10 mode_color 4 5 3 mode_color 5 0 9 mode_color 5 1 11 mode_color 5 2 2 mode_color 5 3 13 mode_color 5 4 10 mode_color 5 5 3 mode_color 6 0 6 mode_color 6 1 10 mode_color 6 2 1 mode_color 6 3 0 mode_color 6 4 0 mode_color 6 5 2 mode_color 6 6 3 mode_color 6 7 6 mode_color 6 8 0 mode_color 6 9 0 mode_color 6 10 0 set looptime = 1000 set i2c_overclock = OFF set gyro_sync = ON set gyro_sync_denom = 8 set acc_task_frequency = 500 set attitude_task_frequency = 250 set async_mode = NONE set mid_rc = 1500 set min_check = 1100 set max_check = 1900 set rssi_channel = 0 set rssi_scale = 30 set rssi_ppm_invert = OFF set rc_smoothing = ON set input_filtering_mode = OFF set min_throttle = 1050 set max_throttle = 1850 set min_command = 1000 set 3d_deadband_low = 1406 set 3d_deadband_high = 1514 set 3d_neutral = 1460 set 3d_deadband_throttle = 1000 set motor_pwm_rate = 1000 set motor_pwm_protocol = ONESHOT125 set fixed_wing_auto_arm = OFF set disarm_kill_switch = ON set auto_disarm_delay = 5 set small_angle = 180 set reboot_character = 82 set gps_provider = UBLOX set gps_sbas_mode = NONE set gps_dyn_model = AIR_1G set gps_auto_config = ON set gps_auto_baud = ON set inav_auto_mag_decl = ON set inav_accz_unarmedcal = ON set inav_use_gps_velned = ON set inav_gps_delay = 200 set inav_gps_min_sats = 6 set inav_w_z_baro_p = 0.350 set inav_w_z_gps_p = 0.200 set inav_w_z_gps_v = 0.500 set inav_w_xy_gps_p = 1.000 set inav_w_xy_gps_v = 2.000 set inav_w_z_res_v = 0.500 set inav_w_xy_res_v = 0.500 set inav_w_acc_bias = 0.010 set inav_max_eph_epv = 1000.000 set inav_baro_epv = 100.000 set nav_disarm_on_landing = OFF set nav_use_midthr_for_althold = OFF set nav_extra_arming_safety = ON set nav_user_control_mode = ATTI set nav_position_timeout = 5 set nav_wp_radius = 100 set nav_max_speed = 300 set nav_max_climb_rate = 500 set nav_manual_speed = 500 set nav_manual_climb_rate = 200 set nav_landing_speed = 200 set nav_land_slowdown_minalt = 500 set nav_land_slowdown_maxalt = 2000 set nav_emerg_landing_speed = 500 set nav_min_rth_distance = 500 set nav_rth_climb_first = ON set nav_rth_tail_first = OFF set nav_rth_alt_mode = AT_LEAST set nav_rth_altitude = 1000 set nav_mc_bank_angle = 30 set nav_mc_hover_thr = 1350 set nav_mc_auto_disarm_delay = 2000 set nav_fw_cruise_thr = 1400 set nav_fw_min_thr = 1200 set nav_fw_max_thr = 1700 set nav_fw_bank_angle = 20 set nav_fw_climb_angle = 20 set nav_fw_dive_angle = 15 set nav_fw_pitch2thr = 10 set nav_fw_roll2pitch = 75 set nav_fw_loiter_radius = 5000 set nav_fw_launch_velocity = 300 set nav_fw_launch_accel = 1863 set nav_fw_launch_detect_time = 40 set nav_fw_launch_thr = 1700 set nav_fw_launch_motor_delay = 500 set nav_fw_launch_timeout = 5000 set nav_fw_launch_climb_angle = 10 set serialrx_provider = SPEK1024 set spektrum_sat_bind = 0 set telemetry_switch = OFF set telemetry_inversion = ON set frsky_default_lattitude = 0.000 set frsky_default_longitude = 0.000 set frsky_coordinates_format = 0 set frsky_unit = IMPERIAL set frsky_vfas_precision = 0 set frsky_vfas_cell_voltage = OFF set hott_alarm_sound_interval = 5 set smartport_uart_unidir = OFF set battery_capacity = 0 set vbat_scale = 110 set vbat_max_cell_voltage = 43 set vbat_min_cell_voltage = 33 set vbat_warning_cell_voltage = 35 set current_meter_scale = 400 set current_meter_offset = 0 set multiwii_current_meter_output = OFF set current_meter_type = ADC set align_gyro = DEFAULT set align_acc = DEFAULT set align_mag = DEFAULT set align_board_roll = 0 set align_board_pitch = 0 set align_board_yaw = 900 set gyro_lpf = 256HZ set moron_threshold = 32 set imu_dcm_kp = 2500 set imu_dcm_ki = 50 set imu_dcm_kp_mag = 10000 set imu_dcm_ki_mag = 0 set pos_hold_deadband = 20 set alt_hold_deadband = 50 set yaw_motor_direction = 1 set yaw_jump_prevention_limit = 200 set tri_unarmed_servo = ON set servo_lowpass_freq = 400 set servo_lowpass_enable = OFF set servo_center_pulse = 1500 set servo_pwm_rate = 50 set failsafe_delay = 10 set failsafe_recovery_delay = 117 set failsafe_off_delay = 200 set failsafe_throttle = 1000 set failsafe_kill_switch = OFF set failsafe_throttle_low_delay = 10 set failsafe_procedure = RTH set rx_min_usec = 885 set rx_max_usec = 2115 set acc_hardware = MPU6050 set baro_use_median_filter = ON set baro_hardware = MS5611 set mag_hardware = HMC5883 set blackbox_rate_num = 1 set blackbox_rate_denom = 4 set blackbox_device = SPIFLASH set magzero_x = 65 set magzero_y = 38 set magzero_z = -81 set acczero_x = 124 set acczero_y = 6 set acczero_z = -170 set ledstrip_visual_beeper = OFF set accgain_x = 4055 set accgain_y = 4059 set accgain_z = 4007 # rxfail rxfail 0 a rxfail 1 a rxfail 2 a rxfail 3 h rxfail 4 h rxfail 5 h rxfail 6 h rxfail 7 h rxfail 8 h rxfail 9 h rxfail 10 h rxfail 11 h rxfail 12 h rxfail 13 h rxfail 14 h rxfail 15 h rxfail 16 h rxfail 17 h # dump profile # profile profile 0 # aux aux 0 0 1 1550 2100 aux 1 1 0 900 2100 aux 2 20 0 1100 2100 aux 3 3 0 1900 2100 aux 4 9 0 1300 2100 aux 5 11 2 900 1150 aux 6 18 3 900 1150 aux 7 0 0 900 900 aux 8 0 0 900 900 aux 9 0 0 900 900 aux 10 0 0 900 900 aux 11 0 0 900 900 aux 12 0 0 900 900 aux 13 0 0 900 900 aux 14 0 0 900 900 aux 15 0 0 900 900 aux 16 0 0 900 900 aux 17 0 0 900 900 aux 18 0 0 900 900 aux 19 0 0 900 900 # adjrange adjrange 0 0 0 900 900 0 0 adjrange 1 0 0 900 900 0 0 adjrange 2 0 0 900 900 0 0 adjrange 3 0 0 900 900 0 0 adjrange 4 0 0 900 900 0 0 adjrange 5 0 0 900 900 0 0 adjrange 6 0 0 900 900 0 0 adjrange 7 0 0 900 900 0 0 adjrange 8 0 0 900 900 0 0 adjrange 9 0 0 900 900 0 0 adjrange 10 0 0 900 900 0 0 adjrange 11 0 0 900 900 0 0 # rxrange rxrange 0 1000 2000 rxrange 1 1000 2000 rxrange 2 1000 2000 rxrange 3 1023 2000 # servo servo 0 1000 2000 1500 90 90 100 -1 servo 1 1000 2000 1500 90 90 100 -1 servo 2 1000 2000 1500 90 90 100 -1 servo 3 1000 2000 1500 90 90 100 -1 servo 4 1000 2000 1500 90 90 100 -1 servo 5 1000 2000 1500 90 90 100 -1 servo 6 1000 2000 1500 90 90 100 -1 servo 7 1000 2000 1500 90 90 100 -1 set nav_alt_p = 50 set nav_alt_i = 0 set nav_alt_d = 0 set nav_vel_p = 100 set nav_vel_i = 50 set nav_vel_d = 10 set nav_pos_p = 65 set nav_pos_i = 120 set nav_pos_d = 10 set nav_posr_p = 180 set nav_posr_i = 15 set nav_posr_d = 100 set nav_navr_p = 10 set nav_navr_i = 5 set nav_navr_d = 8 set deadband = 5 set yaw_deadband = 5 set throttle_tilt_comp_str = 0 set flaperon_throw_offset = 250 set flaperon_throw_inverted = OFF set gimbal_mode = NORMAL set fw_iterm_throw_limit = 165 set mode_range_logic_operator = OR set default_rate_profile = 0 set mag_declination = 830 set mag_hold_rate_limit = 90 set p_pitch = 55 set i_pitch = 40 set d_pitch = 15 set p_roll = 55 set i_roll = 40 set d_roll = 15 set p_yaw = 90 set i_yaw = 45 set d_yaw = 20 set p_level = 20 set i_level = 15 set d_level = 75 set max_angle_inclination_rll = 300 set max_angle_inclination_pit = 300 set gyro_soft_lpf_hz = 60 set acc_soft_lpf_hz = 15 set dterm_lpf_hz = 40 set yaw_lpf_hz = 30 set yaw_p_limit = 300 set iterm_ignore_threshold = 200 set yaw_iterm_ignore_threshold = 50 set rate_accel_limit_roll_pitch = 0 set rate_accel_limit_yaw = 10000 # dump rates # rateprofile rateprofile 0 set rc_expo = 70 set rc_yaw_expo = 20 set thr_mid = 50 set thr_expo = 0 set roll_rate = 20 set pitch_rate = 20 set yaw_rate = 20 set tpa_rate = 10 set tpa_breakpoint = 1650
- Часть 1 — комплектующие
- Часть 2 — сборка
- Часть 3 — пересборка на SPRacingF3
- Часть 5 — выдержки из бортового журнала
- Фотогалерея
Что такое консоль (CLI) в Betaflight?

Что такое Betaflight CLI? CLI расшифровывается как command line interface (интерфейс командной строки), это режим настройки, который даёт вам прямой доступ ко всем параметрам прошивки. CLI — это очень мощный инструмент, но он может напугать технически менее подкованных пользователей. В этом руководстве мы расскажем, как и зачем использовать консоль Betaflight.
Зачем нужна консоль (CLI)?
Консоль (или командная строка) появилась еще во времена Beseflight, и до сих пор существует в CleanFlight, Betaflight, iNav, Butterflight и т.д.
Из-за большого количества параметров в этих прошивках, очень непросто сделать простой графический интерфейс для них всех.
Так что есть смысл в графическом интерфейсе отобразить только самые часто используемые, а остальное позволить менять через консоль.
Ещё одно преимущество командной строки в том, что при помощи неё можно легко и просто сделать резервную копию всех настроек в обычном текстовом файле, подробнее про это будет написано ниже.
Как использовать командную строку в Betaflight?
В Betaflight Configurator (как скачать) есть вкладка CLI, к ней появится доступ, как только вы присоедините полетный контроллер к конфигуратору.
Команды можно вводить в текстовом поле (в самом низу экрана), а нажатие клавиши «Enter» исполняет их.
После того, как вы поменяли параметры, нужно набрать команду «save» для сохранения настроек. Если вы выйдете из консоли без исполнения этой команды, то все сделанные изменения могут быть потеряны.
Для выхода из консоли, просто наберите «exit» и нажмите Enter, или кликните на другой закладке или отключите (disconnect) полетный контроллер и подключите заново.
Как проверить настройки в консоли?
Первые команды, которые лучше запомнить — это «dump» и «diff«.
Команда “dump” просто выведет все параметры и их значения. Как вы и подумали, список будет внушительный.
Если же вы хотите увидеть только те параметры, которые поменялись (текущие значения не равны значениям по умолчанию), тогда введите «diff«. Этот список прочесть значительно проще, особенно если вы хотите проверить ранее сделанные изменения.
Резервное копирование и восстановление настроек Betaflight через CLI
Очень хорошая привычка — делать резервную копию настроек Betaflight каждый раз перед внесением изменений, если что-то пойдет не так, что вы сможете откатить всё назад.
Чтобы сделать резервную копию введите «diff all» и скопируйте полученный результат в текстовый файл.
Чтобы восстановить, просто вставьте содержимое файла в консоль и нажмите enter. Не забудьте сохранить внесенные изменения перед закрытием консоли.
Полезные команды Betaflight CLI
Команд очень много, но некоторые из них очень полезны. Вот список команд, которые я использую очень часто и думаю, что вам стоит о них знать Дайте знать в комментариях что ещё полезного можно включить в этот список.
| Команда | описание |
|---|---|
| defaults | сбрасывает настройки контроллера и перезагружает его |
| dump | отображает все параметры |
| diff | показывает только измененные параметры (относительно значений по умолчанию). PID только для текущего профиля |
| diff all | показывает только измененные параметры (относительно значений по умолчанию). PID коэффициенты всех профилей |
| exit | выход без сохранения |
| get | показывает значение указанной переменной |
| help | помощь, показывает список доступных команд |
| save | сохранение настроек и перезагрузка контроллера |
| set | устанавливает указанное значение (название=значение или пустое поле, или * для списка) |
| status | состояние системы |
| version | версия прошивки |
Замечу, что разные прошивки (BetaFlight, Butterflight и iNav) и разные версии прошивок могут иметь разный набор команд. Список доступных команд можно получить набрав help в консоли или прочтя соответствующую статью в вики.
CLI: командная строка Betaflight — как сделать бекап и посмотреть настройки, а также команды
Каждый пилот, который использует прошивку от Betaflight, должен знать как делать бекап и восстановление настроек в программе-конфигураторе. Бекап — (Backup — англ, дублирование) это резервная копия, с помощью которой можно восстановить прошлые настройки.
Полную статью о функциях и настройках Betaflight, можете прочитать здесь: https://profpv.ru/betaflight-nastroyka/
Особенно важно делать бекапы у гоночных дронов, так как пилоты могут часто менять настройки в нем, например, регулировать PID. В случае неправильных настроек, можно легко и быстро восстановить работу квадрокоптера до момента изменения настроек и все исправить. Или вы что-нибудь сделали в настройках и дрон перестал хорошо летать, а вы не помните, что именно сделали.
Функции Betaflight Backup и Restore (бекап и восстановление)
Если вы уже пользовались какое-то время Betaflight Configurator, вы наверняка заметили кнопки «Backup» и «Restore» на главной странице настроек:

И вы наверняка пробовали их нажимать для сохранения архива настроек. Но правильным считается сохранение настроек (бекапа) через командую строку CLI.
Как использовать CLI?
Чтобы использовать командную строку CLI, вам необходимо подключиться к Betaflight Configurator — вставьте USB-кабель в полетный контроллер и подключите к компьютеру. Затем запустите Betaflight. Включите режим Эксперта — вверху справа около кнопки Connect есть небольшой переключатель.
После этого, слева внизу у вас появится вкладка CLI. Там вводится команда и нажимается Enter, чтобы записать и выполнить команду.
После того, как ввели и отправили команду, все действие необходимо сохранить, для этого напишите команду save и еще раз нажмите энтер. Полетный контроллер «съест» данные и перезагрузится. Для выхода из командой строки, введите команду exit.
Создание бекапа (резервной копии) в Betaflight через CLI (командную строку) — Dump и Diff
Команда Dump выводит на экран для сохранения абсолютно все настройки полетного контроллера и это довольно большой кусок текста.
Команда Diff введена в Betaflight относительно недавно, с версии 3.0 и выводит только те параметры, которые отличаются от настроек по умолчанию, то есть, только те, которые вы редактировали. Получается очень компактный кусок текста.
Всем пилотам рекомендуется использовать команду Diff.
Ну а теперь, давайте создадим резервную копию через командную строку CLI.
Создание резервной копии через командную строку не такое сложное, как вы думаете. Давайте начнем:
- Перейдите во вкладку CLI (если у вас нет этой вкладки, переведите ползунок в верхнем правом углу в режим эксперта)
- Введите команду «diff» (или diff all, если у вас несколько pid профилей) и нажмите enter на клавиатуре. Вам будет представлен большой массив текста со всеми настройками. Нажмите кнопку «Save to file«, чтобы сохранить резервную копию настроек:
Та же самая инструкция и для команды Dump, только отличие в том, что программа сохранит вообще все настройки квадроптера.
Как восстановить настройки в Betaflight из резервной копии
Резервные копии CLI можно открыть в стандартном текстовом редакторе:
Если вы делали бекап командой Dump, возможно, вам не нужно, чтобы восстанавливались абсолютно все настройки. Например, если вы обновили прошивку Betaflight до новой версии, изменения в алгоритме PID и программных фильтрах могут означать, что рекомендуется начинать с настроек PID по умолчанию и перенастраивать квадрокоптер.
С другой стороны, если вы хотите восстановить прошивку Betaflight до точной конфигурации, в которой она ранее работала, вам нужно просто выполнить полное восстановление всех настроек. Для этого убедитесь, что используете ту же самую версию Betaflight, в какой и делали бекап, затем вставьте текст из файла в командную строку. Нажмите Enter, чтобы выполнить все введенные команды. После этого введите «save», чтобы все сохранить:
Это действие автоматически перезагрузит полетный контроллер и перенаправит на главный экран. Просмотрите еще раз настройки и убедитесь, что все восстановилось.
Вот по этой причине и рекомендуется делать бекапы командой diff, а не dump, чтобы потом не сидеть и не выбирать что вам восстановить, а сразу было понятно, что вы редактировали.
Синтаксис
Регистр
Командная строка CLI не чувствительна к регистру, поэтому новичку будет достаточно легко.
Например, ничего не поменяется, если вы напишите команду большими буквами, а в другой раз — маленькими, команда будет выполняться одинаково!
Пример:
SET ROLLL_SRATE = 50, будет тоже самое, что и set roll_srate = 50.
Пробелы
В командной строке не важны пробелы после фраз, например:
- SET ROLLL_SRATE=50;
- SET ROLLL_SRATE = 50;
- SET ROLLL_SRATE = 50.
то есть, пробелы вокруг знака = ничего не значат, можете их вообще не использовать.
Команды CLI — командой строки
Ниже приведены команды, которые есть в CLI, а также описание, что означает эта команда. Если останутся вопросы, задавайте их в комментариях.
profile указатель, от 0 до 2 set установить определенное значение для параметра
| Команда | Описание |
|---|---|
| 1wire | использовать провод 1 для регулятора оборотов (здесь указывается нужный регулятор) |
| aux | отобразить/установить настройки aux |
| color | настройки цвета |
| defaults | сбросить настройки полетного контроллера и перезагрузить |
| dump | полный бекап настроек ПК в виде текстового файла |
| diff | сохраняет настройки, которые отличны от тех, что по умолчанию. Сохраняет также только текущий профиль PID |
| diff all | сохраняет настройки, которые отличны от тех, что по умолчанию. Сохраняет также все профили PID |
| exit | выход без сохранения |
| feature | отобразит что у вас включено из дополнительных возможностей, например: «Enabled: RX_SERIAL TELEMETRY OSD ANTI_GRAVITY DYNAMIC_FILTER» |
| get | покажет значения всех параметров |
| help | отобразить все команды |
| led | настройки светодиодов |
| map | покажет таблицу каналов, например, AETR1234 |
| mixer | Покажет тип вашего квадрокоптера |
| mode_color | настройка режимов светодиодов |
| motor | покажет к каким каналам привязаны моторы (для ремаппинга, например) |
| rateprofile | указатель, от 0 до 2 |
| rxrange | настройка каналов (Roll, Pitch, Yaw, Throttle) |
| rxfail | показать/настроить failsafe |
| save | сохранить настройки и перезагрузиться |
| status | показать статус системы |
| version | показать версию |
| serial | настройка serial-порта (последовательного) |
| servo | настройки сервоприводов |
| sd_info | информация о sd-карте |
| tasks | показать статистику |