11 апреля 2019

BetaFlight-4.0.0

Вышло очередное глобальное обновление прошивки BetaFlight. Это одно из самых масштабных обновлений. Далее будет перевод аннотации разработчиков.


Это заняло много времени, но теперь все здесь и оно содержит так много нового!

Когда мы выпустили версию 3.5 в августе прошлого года, число различных полетных контроллеров, поддерживаемых BetaFlight, достигло 150, и их поддержка становилась серьезной проблемой и отнимала у нас много времени. Стало понятно, что надо что-то делать. Мы работали над изменением архитектуры BetaFlight так, чтобы какое-то время можно было использовать одну и ту же прошивку для разных полетных контроллеров, и поэтому мы решили завершить эти изменения перед выпуском следующей версии и из-за этого фундаментального изменения следующая версия будет 4.0.

Когда мы приблизились к изначально запланированной дате выпуска BetaFlight 4.0, то поняли, что не совсем готовы, и решили взять еще три месяца, чтобы завершить начатую работу.

Итак, теперь функционал 'Unified Targets', так мы назвали новую технологию 'одна прошивка для нескольких полетных контроллеров', стал реальностью в BetaFlight 4.0. Еще предстоит проделать некоторую работу, чтобы добавить возможность прошивки 'Unified Targets' в BetaFlight-конфигуратор, но как только это будет сделано, мы сможем позволить производителям собирать прошивку для любых полетных контроллеров или RTF-продуктов прямо в конфигураторе.

Как и ожидалось от BetaFlight, мы сделали ряд новых и захватывающих улучшений летных характеристик, таких как фильтрация на основе RPM-данных с регуляторов, управление D-term с помощью D_min, и динамическое управление и D-term фильтрация на основе уровня газа.

И снова, как и ожидалось, мы добавили еще несколько новых функций, не связанных с улучшением полета, таких как контроль запуска, OSD-профили и поддержка приемников на SPI-шине, интегрированных на плату полетного контроллера.

Расширенный список новых функций будет ниже.

Чтобы получить максимальную отдачу от улучшения полетных характеристик, ознакомьтесь с этими советами по настройке.

Если вы обновляете более раннюю версию BetaFlight, прочитайте следующий раздел, содержащий список тех вещей, которые вам, возможно, придется изменить в вашей конфигурации.

Мы постарались сделать этот выпуск максимально свободным от ошибок. Если вы все же найдете ошибку, пожалуйста, сообщите нам об этом, создав здесь новый пост с описанием проблемы.

Если вы хотите поговорить о BetaFlight, задать вопросы по конфигурации или просто пообщаться с другими пилотами, вы можете это сделать в нашей Facebook-группе.

BetaFlight так же имеется на платформе Slack. Зарегистрируйтесь здесь, а затем присоединяйтесь к нам в Slack. Большинство разработчиков проводят там свое время, так что это отличное место, чтобы поговорить о том, с чем вы работаете в BetaFlight, или получить помощь по действительно сложным проблемам конфигурации.

Важная информация перед началом обновления

  • Ряд изменений и улучшений в этой версии прошивки так же требуют изменений в конфигураторе BetaFlight. Эти изменения были добавлены в конфигуратор BetaFlight 10.5.0 (будет выпущен в ближайшие дни, инструкции по установке здесь). Пожалуйста обновите конфигуратор BetaFlight до версии 10.5.0 (или более новой), когда она будет доступна, или используйте командную строку;
  • Если вы используете Blackbox Log Viewer, то будет выпущена обновленная версия 3.3.0 для BetaFlight 4.0 (инструкции по установке здесь). Пожалуйста, обновите программу до текущей версии, как только она станет доступна;
  • В BetaFlight 4.0 есть ряд улучшений, касающихся летных характеристик. Поэтому использование резервных копий настроек от старых версий BetaFlight, скорее всего, приведет ухудшению летных характеристик! Настройки по умолчанию в BetaFlight 4.0 должны подходить для большинства конфигураций оборудования, но пользователи, желающие улучшить летные характеристики своего квадрика, должны прочитать заметки по настройке для того, чтобы узнать все необходимое о настройке BetaFlight 4.0 (#6432, #6943, #7078, #7264, #7271, #7304, #7373, #7538);
  • Было исправлено применение мертвой зоны для параметра min_check. До исправления, мертвая зона по факту удваивалась. Чтобы сохранить тот же диапазон мертвой зоны для нулевого газа, вам необходимо удвоить значение мертвой зоны у параметра min_check (с отступом от 1000). Для тех пользователей, кто установил очень маленький диапазон мертвой зоны, это может привести к тому, что мертвая зона никогда не будет достигнута в исправленной версии прошивки, не позволяя выполнить арминг с сообщением 'THROTTLE', даже если стик газа будет стоять в нижнем положении. Если у вас случилась такая ситуация - увеличьте параметр min_check (#7463);
  • Появился новый OSD-элемент 'Stick Overlay', который показывает текущее положение стиков пульта поверх изображения с камеры. Чтобы его использовать, надо обновить шрифт в OSD до текущей версии (доступно в конфигураторе версии 10.5.0 или более новом) (#7476);
  • Функциональность OSD-элемента 'crash flip arrow' была расширена и теперь он активируется, когда квадрик не находится в режиме анти-черепахи, но дизармнут и наклонен больше, чем задано параметром small_angle. Это должно показать пилоту, что он не сможет выполнить арминг из текущего положения квадрика и требуется использовать режим анти-черепахи (#7250);
  • В рамках введения Unified Targets, существующая команда resource была дополнена двумя новыми командами для управления ресурсами: timer и dma. Так же, как команда resource может использоваться для назначения функций на выводы, команда timer может быть использована для назначения таймеров на выводы, и команда dma может быть использована для назначения DMA-потоков для подсистем и выводов (если им назначен таймер). Важно: поскольку DMA-потоки связаны с выводами, на которых есть таймер, назначение таймеров на выводы должно быть выполнено в первую очередь, до назначения dma для этих выводов (#5824, #6837, #7620);
  • Синтаксис команд resource, timer и dma выглядит однотипно и как часть этого команда resource list была переименована в resource show. Это делает команду схожей с новыми командами dma show и timer show (#7712);
  • Следующие параметры были переименованы, чтобы соответствовать своим функциям: p_level - angle_level_strength, i_level - horizon_level_strength, d_level - horizon_transition (#6673);
  • Конфигурация гироскопа была унифицирована. Разработчики перешли от описания каждой модели гироскопа к описанию общего класса для всех моделей гироскопов.Это означает, что в BetaFlight 4.0 для некоторых целей для сборки, использующихся для нескольких плат с разными моделями гироскопов, установленных с разной ориентацией, придется вручную задавать ориентацию гироскопов командами gyro_1_sensor_align (и/или gyro_2_sensor_align для плат со вторым гироскопом), чтобы ориентация гироскопа соответствовала его положению на плате. Смотрите примечание #6761 с разъяснениями и инструкции для конкретных полетных контроллеров. Это временное решение, конфигурация для каждого полетного контроллера будет исправлена в рамках Unified Targets (#5868);
  • К сожалению, исправления в функционале ядра прошивки привели к увеличению ее размера, вследствие чего стало недостаточно доступной памяти у некоторых полетных контроллеров на F3-процессоре. Как результат, некоторые функции пришлось удалить у ряда полетных контроллеров на F3-процессоре. Исправления затронули следующие полетные контроллеры: AIORACERF3, BETAFLIGHTF3, CHEBUZZF3, CRAZYBEEF3FR, FURYF3, FURYF3OSD, IMPULSERCF3, LUX_RACE, LUXV2_RACE, MIDELICF3, OMNIBUS, RACEBASE, RMDO, SIRINFPV, SPRACINGF3, SPRACINGF3MINI, SPRACINGF3NEO, STM32F3DISCOVERY (#6900, #6955, #7037, #7038, #7045, #7306, #7381, #7392, #7402, #7421, #7501, #7508, #7518, #7829, #7842);
  • В дополнение к написанному выше, следующие функции были удалены у всех полетных контроллеров на F3-процессоре, чтобы прошивка смогла поместиться в память: Smart FeedForward и поддержка прошивки / настройки регуляторов с SimonK-прошивкой (#7272, #7274, #7391);
  • Поддержка отображения статуса через цветные светодиоды была удалена из прошивки для полетных контроллеров на F3-процессоре, чтобы освободить больше места в памяти. Вместо этого, могут быть использованы профили светодиодных лент (за исключением профиля 'Status', который не поддерживается на F3) для установки фиксированного цвета светодиодов. Светодиодные профили так же доступны и для F4/F7, для выбора простой конфигурации светодиодов через OSD (#7485);
  • Поскольку вышеуказанных мер оказалось недостаточно для прекращения переполнения памяти на полетных контроллерах с F3-процессором, была введена многоуровневая система классификации этих полетных контроллеров для задания уровня усечения функционала. Это будет использовано для удаления еще большего количества функций для полетных контроллеров на F3-процессоре (#7429).
Основные изменения:

  • Возврат значений RPM с регуляторов в режиме реального времени, и режекторные фильтры на основе полученных данных (#7264, #7271);
  • Управление значением D-Term через D_min (#7373, #7538);
  • Динамические управление и D-term-фильтрация на основе значения по газу (#6943);
  • Контроль запуска (#6992);
  • Переключаемые OSD-профили (#6714);
  • Поддержка приемников Spektrum, подключенных через SPI-шину (#7210);
  • Unified Targets - унификация целей для сборки прошивки (#5824, #6837, #7620).
Прочие изменения:

  • Каскадные динамические вырезки (#7078);
  • Линеаризация тяги (#7304);
  • Интегрированный контроль yaw (#6432);
  • Переключаемые LED-профили (#7303);
  • Показ работы стиков на OSD (#7167);
  • Переключение профиля на основе количества банок аккумулятора (#7516);
  • Поддержка протокола Futaba S-FHSS на интегрированных чипах CC2500 (FrSky SPI) (#6865);
  • Режим EU LBTдля FrSky-приемников на SPI-шине (#7339);
  • Поддержка STM32F765-процессоров (#6669);
  • Настройка через HoTT-телеметрию (#6224).
Изменения после RC6:

Исправления:

  • Исправлена потенциальная проблема, когда в режиме анти-черепахи включен bidirectional DShot (#7929);
  • Добавлен отсутствующий текст помощи для команды vtx в консоли (#7934);
  • Исправлена проблема с предупреждением о высоте, когда оно должно быть отключено (#7937);
  • Исправлена проблема с полетными контроллерами на основе F446-процессора (#7942).
Обновления полетных контроллеров:

  • Добавлена цель для сборки RUSHCORE7 для версии 4.0 (#7930);
  • Добавлена цель для сборки FF_RACEPIT для версии 4.0 (#7931);
  • Добавлена цель для сборки KAKUTEF7MINI для версии 4.0 (#7932);
  • Добавлена цель для сборки FLYWOOF411 для версии 4.0 (#7933);
  • Обновлена цель для сборки OMNIBUSF4NANOV7 (#7939).
Изменения после RC5:

Исправления:

  • Исправлено определение гироскопов для плат с несколькими гироскопами (#7914);
  • Исправлены настройки с неработающими lowpass-значениями по умолчанию, если использовался BetaFlight Configurator версии 10.4 (#7918);
  • Исправлено CMS-меню через CRSF (#7919).
Обновления полетных контроллеров:

  • Обновлена конфигурация JHEF7DUAL для Betaflight 4.0 (#7906);
  • Обновлена конфигурация SYNERGYF4 для Betaflight 4.0 (#7913).
Изменения после RC4:

Исправления:

  • Исправлены несоответствия в отображении некоторых элементов OSD и послеполетной статистики (#7877);
  • Исправлено отображение модели процессора для полетников на STM32F446 (#7882);
  • Исправлен обсчет составляющих PID для расчета высоты в режиме GPS Rescue (#7884);
  • В консоли исправлен вывод команды 'timer' (#7885);
  • Исправлены значения по умолчанию и проверка параметров для lowpass-фильтра (#7888);
  • Добавлен debug- режим для функции absolute control (#7889);
  • Функция absolute control будет применяться и к оси yaw (#7890);
  • Исправлена частота работы пищалки (#7891);
  • Исправлена проверка отключения опции 'BOTH' в настройках гироскопов, если RPM-фильтр включен (#7895);
  • Исправлено определение ESCSERIAL (#7898);
  • По умолчанию отключена функция absolute control (#7901).
Обновления полетных контроллеров:

  • Обновлена конфигурация ELINF405 для Betaflight 4.0 (#7880);
  • Обновлена конфигурация ELINF722 для Betaflight 4.0 (#7887).
Изменения после RC3:

Исправления:

  • Удалены неиспользуемые заголовки в логах блэкбокса (#7851);
  • Исправлена компиляция с поддержкой двух гироскопов (#7864);
  • Исправлены ошибки функции absolute control (#7866);
  • Добавлено предотвращение проблем с таймерами с bidirectional DShot-телеметрией (#7865);
  • Исправлена проблема совместимости протокола SmartAudio при удалении поддержки 'SmartAudio Lite' (#7871).
Обновления полетных контроллеров:

  • Добавлен новый полетник OMNIBUSF4NANOV7 (#7872).
Изменения после RC2:

Улучшения безопасности:

  • Запрет арминга, если DShot-телеметрия включена, но недоступна (#7813).
Исправления:

  • Исправлено представление барометра для Unified Targets (#7723);
  • Отключение DShot-телеметрии, если протокол не DShot или ProShot (#7795);
  • Добавлена потерянная команда 'timer' в консоли (#7804);
  • Добавлен периодический опрос DShot-телеметрии, если она включена, но не работает (#7815);
  • Исправлена ошибка, приводящая к чрезмерному спуску в режиме GPS Rescue (#7816);
  • Добавлен раздел 'blackbox_device' в команды diff hardware/dump hardware (#7821);
  • Исправлена ошибка в работе DShot-протокола (#7824);
  • Добавлены параметры D_min, динамические фильтры, absolute control, и integrated yaw в заголовки данных блэкбокса (#7826, #7827, #7831);
  • Для 'iterm_relax' в debug-режиме изменено 'acError' на 'acCorrection' (#7847);
  • Исправлена ошибка обработки количества каналов в SUMD V3 (#7853).
Обновления полетных контроллеров:

  • Добавлена поддержка памяти M25 NOR для CLRACINGF7 (#7779);
  • Устранена проблема с UART3 на CLRACINGF7 (#7799);
  • Удалена часть функциональности у MIDELICF3, RMDO и SPRACINGF3 для того, чтобы прошивка поместилась в памяти (#7829);
  • Удалено еще больше возможностей у RMDO и SPRACINGF3 чтобы прошивка могла поместиться в памяти (#7842).
Изменения после RC1:

Исправления:

  • Добавлено исправление для пользовательских сборок только с SPI RX в качестве приемника (#6399);
  • Исправлены вводящие в заблуждение предупреждения в режиме GPS Rescue (#7730);
  • Исправлен вывод по команде dump секции beacon (#7747);
  • Добавлен модификатор bare для команд diff и dump (#7751);
  • Исправлен список опций таймеров для F7 (#7753);
  • Появилась возможность использовать dshot_burst с выводами под моторы без DMA (#7754);
  • Исправлен недостаточный нижний предел для датчика оборотов в Spektrum-телеметрии (#7757);
  • Исправлено зависание при перезагрузке для некоторых полетников на F7-процессоре (#7760).
Обновления полетных контроллеров:

  • Добавлен вывод управления камерой для ELINF405 (#7734);
  • Добавлена поддержка памяти WINBOND W25Q128 DTR (#7743).