02 марта 2018

BetaFlight 3.3.0

Состоялся релиз прошивки BetaFlight-3.3.0! Относительно прошлого релиза, изменений очень-очень много!



Добро пожаловать в версию 3.3 BetaFlight!

В этой версии нет никаких революционно новых возможностей, но мы упорно трудились, чтобы сделать ваши полеты еще лучше, сделать прошивку проще и безопаснее для новых пилотов, пришедших в это хобби. Мы подправили некоторые шероховатости и добавили функцию Runaway Takeoff Prevention, которая позволяет оставаться в безопасности в такие хитрые моменты, когда ваш квадрик не настроен так, как вы думаете. Мы улучшили возможности управления квадриком, сделав настройку с передатчиков Spektrum и добавив протокол FrSky FPort, который позволяет использовать только один провод для сигнала управления и телеметрии.

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

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

Для поддержки всего функционала новой прошивки используйте последнюю версию конфигуратора BetaFlight (10.2.0 на момент выпуска), доступную здесь.

Удачных полетов!

Важная информация при обновлении.
  • В этом выпуске представлен алгоритм Runaway Takeoff Prevention (#4935). Эта функция может предотвратить неконтролируемое кувыркание ('тасманский дьявол'), когда квадрик армится с неправильно настроенным порядком моторов или пропеллерами, поставленными с вращением не в ту сторону. Квадрик дизармится, если обнаружена такая проблема. Приведет к дизарму и тот случай, если газ быстро увеличился, а пропеллер открутился. Если дизарм срабатывает сразу после арминга, используйте следующие параметры для настройки функции: runaway_takeoff_threshold, runaway_takeoff_activate_delay, runaway_takeoff_deactivate_delay, runaway_takeoff_deactivate_throttle_percent. И пожалуйста, сообщите получившуюся свою рабочую конфигурацию;
  • Ориентация компаса AK8963 была изменена, чтобы соответствовать ориентации, когда компас встроен в микросхему MPU9250. Если вы используете внешний компас AK8963, проверьте ориентацию вашего компаса, чтобы она была правильной. Если это не так, используйте параметр aling_mag для настройки правильной ориентации компаса.
  • Добавлено несколько дополнительных причин для запрета арминга. Из-за того, что подсчет звуковых сигналов индикации причины запрета арминга довольно сложный, метод индикации причины невозможности арминга был изменен. Подробнее можно посмотреть запись в wiki.
  • Арминг становиться невозможным, если полетный контроллер подключен к конфигуратору BetaFlight. Это было добавлено для того, чтобы пользователи не могли случайно заармить квадрик при тестировании приемника / режимов работы тумблеров, если аккумулятор подключен. Чтобы включить арминг для тестирования, перейдите на вкладку 'Motors' и включите переключатель 'Motor test mode' (СНАЧАЛА СНИМИТЕ ПРОПЕЛЛЕРЫ);
  • Параметр sbus_inversion был изменен на serialrx_inverted, и способ, которым он применяется, был изменен следующим образом: теперь он применяется для всех RX-протоколов, а не только к S.BUS, и вместо переключения UART в нормальное состояние опцией off и инвертированное опцией on, 'off' теперь означает, что для порта установлено значение по умолчанию для выбранного протокола (то есть, инвертировано для S.BUS, но не инвертировано для SUMD), а 'on'  означает, что порт инвертирован, относительно значения по умолчанию (то есть, не инвертированный S.BUS, инвертированный SUMD);
  • Изменен способ настройки расходов (#4973). Теперь BetaFlight поддерживает независимые настройки расходов для осей roll/pitch/yaw. При обновлении с более старой версии прошивки, обязательно преобразуйте свои настройки в новые параметры следующим образом: параметр rc_rate разделяется на roll_rc_rate и pitch_rc_rate, rc_rate_yaw заменяется на yaw_rc_rate, параметр rc_expo разделяется на roll_expo и pitch_expo, и rc_expo_yaw заменяется на yaw_expo. Это изменение так же позволяет использовать расходы прошивки RaceFlight. Сначала установите параметр rates_type = raceflight. После этого, параметры 'rc_rate_' - это 'rate' в RaceFlight (уменьшенные в 10 раз), _expo - это 'expo' в RaceFlight, и _srate - это 'acro+' в RaceFlight;
  • Режим DISABLE 3D теперь называется DISABLE / SWITCH 3D (#5179). В настройках по умолчанию он работает, как и раньше. С параметром 3d_switched_mode = on, режим 'switched 3d mode' включен: с переключателем 3D-режима в значении on, стик газа идет от минимального значения (min) до максимального (max), что совпадает с тем же, когда параметр 3d_switched_mode = off. Если переключатель 3D-режима отключен, стик газа работает в реверсе на весь ход стика. Это позволяет пилоту летать в 3D-режиме, используя полный ход стика как в нормальном, так в инверсном полете, а изменение направления вращения моторов происходит при использовании тумблера во время переворота.
  • Функция disarm_kill_switch, которая разрешала (переключаемо) включать дизарм только при низком уровне газа, была удалена. Нет необходимости в ее использовании и возникает риск наступления момента, когда дизарм невозможен в чрезвычайной ситуации.
Основные изменения:
  • Добавлена поддержка FrSky FPort-протокола (#4158);
  • Добавлено управление видео-передатчиком с пультов Spektrum (#4434);
  • Добавлена CMS-настройка через телеметрию Spektrum (#4545);
  • Добавлен FrSkyX-протокол для приемника на SPI-шине (#4683);
  • Добавлен быстрый фильтр Biquad RC+FIR2 (оптимизированная версия фильтров Калмана #4890) (#4965);
  • Добавлена функция Runaway Takeoff Prevention (anti-taz) (#4935).
Прочие изменения:
  • Добавлено меню настройки питания в CMS (#3724);
  • Добавлена поддержка FlySky приемника на SPI-шине (#4060);
  • Добавлено использование TIM_UP и DMAR для всех каналов с таймером с DShot (#4073, #4843, #4852);
  • Добавлена функция включения 3D-режима с тумблера (#4227);
  • Добавлена активация маяка через команды DShot в функцию BEEPER_RX_LOST_LANDING (#4231);
  • Добавлена общая поддержка протоколов управления устройствами RunCam (#4251);
  • Добавлена более разумная конфигурация OSD по умолчанию (#4260);
  • Добавлена поддержка и отображение даты и времени (#4289);
  • Добавлена MSP-команда для отключения арминга (#4320);
  • Добавлена поддержка реального значения RSSI для приемников Spektrum через SRXL Rx и расчетного RSSI для всех внешних и встроенных сателлитов (#4347);
  • Экран OSD послеполетной статистики будет появляться, только если он включен (#4428);
  • На OSD добавлено остаточное время полета, рассчитанное на основе потребленного тока (#4487, #4543, #4618);
  • Добавлена настройка значения RSSI через MSP (#4507);
  • Улучшена частота обновления SmartAudio (#4532);
  • Обновлен расчет PID при использовании фактического deltaT (#4556);
  • Добавлена составляющая 'И' в логику работы функций в настройках режимов (#4722);
  • Добавлена поддержка TCM для F7 (#4757);
  • Добавлена поддержка дальномера Benewake TFmini/TF02 (#4793);
  • Добавлена возможность выбора расходов RaceFlight (#4973);
  • Добавлен KN-протокол (NRF24) через модуль, подключенный через SPI-шину (#4994);
  • Добавлен статус видео-передатчика через телеметрию Spektrum (#5081);
  • Добавлен драйвер PINIOBOX BOX для PINIO - маппера вывода общего назначения (#5110).
Новые полетные контроллеры:
  • Добавлен EachiWhoop (#4060);
  • Добавлен XRACERF4 (#4255);
  • Добавлен MATEKF411RX (#4937).
  • Добавлен FPVM_BETAFLIGHTF7 (#5307).

Изменения относительно RC3:

Улучшения безопасности:
  • Расширена логика деактивации и удалены неиспользуемые параметры в функции Runaway Takeoff Prevention (#5337).
Исправления:
  • Возвращен индекс изменения мощности видео-передатчика в функцию vtx_common (#5313);
  • Изменена обработка данных с приемника для обеспечения периодического вызова функции updateArmingStatus() (#5327);
  • Исправлена ошибка с отрицательной температурой процессора (#5336);
  • В консоли добавлен отсутствующий параметр osd_stat_rtc_date_time (#5339);
  • Удалено условие pidUpdateCountDown() из fc_core (#5343).
Обновления полетных контроллеров:
  • Добавлен пин управления настройками камеры в DALRCF405 (#5294);
  • Добавлен новый полетник  FPVM_BETAFLIGHTF7 (#5307);
  • Включен DMAR и перекинут LED_STRIP для FF_PIKOBLX (#5334).

Изменения относительно RC2:

Улучшения безопасности:
  • Добавлена ​​проверка скорости работы гироскопов перед активацией функции Runaway Takeoff Prevention для улучшения тестирования на стенде (# 5236);
  • Функция gyro_overflow_detect изменена так, что будет использовать отфильтрованные данные гироскопа для второй попытки, вместо данных, полученных напрямую с гироскопа (# 5284).
Исправления:
  • В PINIOBOX раздельные значения boxId и permanentId (#5208);
  • Исправлена проблема с перекрытием других элементов названием квадрика на OSD (#5222);
  • Переопределены флаги срабатывания запрета арминга, чтобы дать функции Runaway Takeoff больший приоритет (#5239);
  • Увеличена производительность Spektrum CMS через телеметрию (#5242);
  • Удалены дубликаты проверки gyro_lpf из msp.c (#5247);
  • Изменено crash-flip сообщение на OSD, чтобы отслеживать фактическое состояние, а не состояние переключателя (#5253);
  • Оптимизирована работа цветных светодиодов (#5266);
  • Предупреждения на OSD сдвинуты вправо (#5268);
  • Работа FPort-протокола стала более эффективной (#5269);
  • Исправлено некорректное наименование для гироскопа ICM20608G (#5278);
  • Изменен скрипт линковки, чтобы гарантировать, что SRAM2 на STMF7XX не используется и не является частью секции 'RAM' компоновщика (#5280);
  • Исправлено непреднамеренное предупреждение о 'затухании' сигнала в режиме обработки Spektrum RSSI (#5282);
  • Заблокировано снижение мощности VTX при дизарме, если сработала функция failsafe (#5290);
  • Исправлен режим 3D_on_switch (#5291);
  • Заблокировано управление RunCam-камерой, если установлен флаг ARMING_DISABLED_RUNAWAY_TAKEOFF is set (#5296);
  • Заблокированы команды стиков, если установлен флаг ARMING_DISABLED_RUNAWAY_TAKEOFF is set (#5299);
Обновления полетных контроллеров:
  • Исправлен порядок моторов для KISSCC в соответствии с инструкцией (QUADX1234) (#5217);
  • Вместо ADC1 будет использоваться ADC3 в полетнике SPRACINGF4EVO (#5281);
  • Добавлено определение MAX7456_SPI_CLOCK и MAX7456_RESTORE_CLK для KAKUTEF4 (#5288);
  • Добавлен фильтр Калмана для YupiF4 (#5246).

Изменения относительно RC1:

Улучшения безопасности:
  • Перезапуск функции Runaway Takeoff Prevention после срабатывания функции crash-flip (#5205).
Исправления:
  • Фильтр Biquad RC+FIR2: Разрешает пользователю напрямую указывать частоту отсечки в Герцах (#5144); 
  • Отключение функции Runaway Takeoff, если режим crash-flip активен (#5176); 
  • Адаптация стартового экрана CMS для Spektrum iX12 (#5181); 
  • Исправлен порядок SPI RX протоколов (#5195); 
  • Функция Runaway Takeoff Prevention - временное отключение по время проверки конфигурации (#5172); 
  • motorDevInit IOConfigGPIOAF вместо IOConfigGPIO (#5198); 
  • Фильтр Biquad RC+FIR2: Возврат настроек через DEFINE (#5216); 
  • Исправлены нарушения в группе параметров motorDevConfig_t, увеличение версии EEPROM конфигурации до выхода релиза 3.3.0 (#5178); 
  • Унифицированные переключатели BOX3DDISABLE и BOX3DONASWITCH (#5179); 
  • Настраиваемый оверклокинг для F405 и F411 (#5210).
Обновления полетных контроллеров:
  • Исправлено количество UART-портов для TINYBEEF3 (#5170); 
  • Добавлен фильтр Biquad RC + FIR2 для F3-полетников (#5175); 
  • Отключен Dshot DMAR для CLRACINGF4 (#5180); 
  • Включен ESCSERIAL для MOTOLABF4-полетников (#5191); 
  • Исправлена ошибка со светодиодами у AlienFlight F3 V1 (#5202).

    13 комментариев :

    1. В 3.3 RC2 больше не будет значений Q/R а будет задаваться частота, и скорее всего FKF тоже в будущем не будет, как и dynamic kalman....
      Подробнее можно почитать тут: https://github.com/betaflight/betaflight/pull/4965

      ОтветитьУдалить
      Ответы
      1. Да уже в исходниках выпилили Q/R на BQ+FIR2, осталось только на Калмане. И Калман больше не включается на F4, только на F3.

        Удалить
      2. Сейчас складывается интересная ситуация, Вы уже писали о половниках на f3+f4 процессорах, собственно R2S ушел из проекта BF по причине того, что основной проблемой он видит большую загрузку процессора, что не позволяет использовать в частности динамический кальман и кроме того система на двух процессорах не дороже F7, при больших вычислительных мощностях (хотя мне показалось, что он обиделся, что его быстрый кальман заменили на BQ+FIR2. Как ни странно сам он не смог математически доказать преимущества кальмана, а разработчики BF стоят на том, что будут рекомендовать к использованию то, что они хорошо понимают как именно это работает). R2S готов к поддержке любых полетников, но только с системой IMU-F на двух процессорах. Кстати вот так выглядит загрузка такого типа полетника:
        https://www.rcgroups.com/forums/showpost.php?p=39178794&postcount=688

        Удалить
    2. извиняюсь не R2S а RS2K :)

      ОтветитьУдалить
    3. Получается можно поставить NRF24 и гонять по KN-протоколу без приемника?
      Как, интересно, у модуля NRF24 с дальностью работы и стабильностью...

      ОтветитьУдалить
      Ответы
      1. Только если NRF24 будет уже на плате полетника распаян. Не самому же его вешать на SPI-шину:) А так да, возможно такое. По дальности NRF24 - это только для мелочи разве что.

        Удалить
    4. Поясните нубу) Фильтры Калмана выпилили и заменили на BQ+FIR2 из-за того что они более быстрые и не менее эффективные. Но чем они отличаются от динамических фильтров в версии 3.2? Динамические фильтры заменены BQ+FIR2 или это отдельные фильтры? Их надо как-то дополнительно настраивать и включать?

      ОтветитьУдалить
      Ответы
      1. Да, фильтры отдельные. Лучше всего видно все на диаграмме:
        https://vk.com/mcheli?w=wall3915505_305%2Fall

        Удалить
      2. Спасибо! Стало более понятно. Но и возникли дополнительные вопросы) По схеме видно что это последовательный алгоритм обработки сигнала. В версии 3.2 советовали обнулять и статические фильтры и LPF фильтры чтобы работали динамические. Теперь получается фильтр BQ+FIR2 относится к классу LPF. Получается надо задействовать и обычный LP фильтр? Или он может работать отдельно и другой не нужен?

        И вообще зачем столько фильтров, я думал динамических будет предостаточно)

        Удалить
      3. Немного пообщался на RCGROUPS с ctzsnooze (уникальный человек, который о фильтрах знает все) из его рассказа я вынес следующее:
        gyro_lpf - аппаратный фильтр нижних частот, при значении OFF настроен на 250 Гц.
        gyro_lowpass - фильтр нижних частот, обычно ставится на 90 Гц, имеет типы PT1, биквадратный (более интенсивный).
        gyro_notch - полосовые фильтры (настраиваются на резонансные частоты моторов), их в бетафлае 2 штуки.
        gyro_notch (динамический) - то же что и gyro_notch но центральная частота высчитывается каждые четыре цикла по максимальному шуму моторов.
        gyro_stage2_lowpass - самый интересный фильтр, тот же фильтр нижних частот, в настоящее время это быстрый фильтр кальмана или BQRC+FIR2, до сих пор ходят споры что лучше, но математически доказано, что в данной статической реализации кальман не имеет преимуществ кроме того что он имеет более крутую характеристику и поэтому можно поставить более высокую частоту. Прежде всего эти фильтры эффективно отрезают высокочастотные помехи для гироскопов в режиме 32 кГц.
        dterm_lowpass - фильтр нижних частот для D - составляющей сигнала на моторы, уменьшает шум и снижает перегрев моторов.
        Общая концепция фильтров такова: чем больше включено фильтров - больше задержка, квад менее отзывчив на управление либо имеем пропвош, ниже частота среза фильтров или шире полоса половых фильтров - больше задержки....
        Без чего квад не взлетит: gyro_lpf, gyro_lowpass (тут кстати PT1 можно выключить и оставить gyro_stage2_lowpass на той же частоте, но делать это надо осторожно), dterm_lowpass (можно спалить моторы). Остальное добавляется по вкусу (температуре моторов)
        Начальная настройка такова: gyro_lpf=OFF, gyro_lowpass PT1 = 90, gyro_stage2_lowpass =200, dterm_lowpass PT1=100, все, обязательно опробовать в полете на нагрев моторов, если горячие можно dterm_lowpass переключить на биквадрат, понизить до 80 Гц, затем gyro_stage2_lowpass опустить до 160 Гц. Но если с начальными настройками все хорошо, то можно gyro_stage2_lowpass повышать до 250 Гц, это улучшит управляемость. Но в любом случае контролируйте моторы. Я сам лично все это пробовал в режиме 32/32/32 на матек F405.
        Как говориться удачных полетов! :)
        (PS я тут на рцдизайн в личной обиде на модераторов (странные они ребята), надеюсь Вы не против если иногда буду писать в Ваш блог?)

        Удалить
    5. И еще, если кто не знает, D setpoint weght - увеличивая это значение больше 1 квад более интенсивней входит в маневры, это дает ощущение большей остроты от управления. По умолчанию он сейчас вроде 0.

      ОтветитьУдалить
      Ответы
      1. Добрый человек, распишите все это в хорошей статье подробно по каждому параметру - цены такой информации не будет! А то все носятся с этими фильтрами, хватают информацию из видео Джошуа, с форума, с ВК. Но все равно вопросов много, как и в каких диапазонах крутить параметры - непонятно, ибо не сразу поймешь что за что отвечает и как оно между собой связано.

        Удалить
    6. К сожалению мне не где публиковаться да и нет особого желания и достаточной глубины понимания процессов в отличии от действительно крутых людей типа ctzsnooze (это просто ходячая энциклопедия). Моя полётная практика всего около полугода. В отношении фильтров да, в инете полна ахинея, даже у мэтров рцдизайна, Джошуа практик и в своих видео он дает больше практического применения и не объясняет базовых принципов (да это и никто не объясняет) это создает ваккум знаний и слепую веру например в магию быстрого кальмана. Все что мне пока было о чем сказать я написал в посте выше, остальное пока требует осмысления практики. А Ваш блог очень интересен, с удовольствием его читаю.

      ОтветитьУдалить