Прошивки CleanFlight/BetaFlight для полетников

R2Dmitry

У кого-нибудь есть ссылка на статью с подробным и разжеванным описанием новшеств 3.3, в особенности фильтра?
Я нашел пока что “прошейте вот этот бинарник и воткните вот этот дамп в консоль”.

С одной стороны Джошуа рассказывает, что это фильтр для 32кгц и это не для F3, а с другой его на F3 суют на тайнивупы.

tuskan
R2Dmitry:

это фильтр для 32кгц

так а при включении 32 даже ф4 на 50% загружен без арма.

Сергей_Уж
R2Dmitry:

С одной стороны Джошуа рассказывает, что это фильтр для 32кгц и это не для F3, а с другой его на F3 суют на тайнивупы.

Учу внука летать на тинивупе F3 проц, кальман. Уже отлетал 60 батареек, не успеваю заряжать, летает без претензий как по маслу. В ветке 100мм давал страницу прошивки и настройки. Ну естественно не 32. Могу дать короткое видео полета если есть необходимость, но в принципе полет как полет , ровно и плавно при стаже полетов 3 дня.

R2Dmitry

Вот я это и имел ввиду, когда говорил про “вот прошивка и дамп”. Я не просто прошиться хочу, а понимать, как настраивать 😃
Более того, вышла RC версия 3.3.0, доступная из конфигуратора, и в ней, я слышал, поменяли названия параметров.

Сергей_Уж
R2Dmitry:

я слышал, поменяли названия параметров

Точнее вместо кальмана поменяли фильтры на по результатам похожие на кальмана, но меньше грузят проц и чуть выше задержка и Kalyn Doerr прямо пишет “Don’t use the BQRC2 filter guys. Stick with the FKF”. Теперь вместо FKF идет связка Biquad RC+FIR2 filter
Вроде от кальмана совсем не отказались после оптимизации он должен появиться на версии 3.4. Kalyn Doerr уже написал в слеке что на полетнике ( helio spring fc ) он уже испытал динамические фильтры в оптимизированной версии FKF, когда прошивка сама определяет какие частоты убивать ( P is used in the dynamic kalman but not the FKF ) и при этом загрузка проца была очень маленькая FKF это одна из разновидностей фильтра, Kalyn пишет что в итоге это будет “The dynamic Kalman is a full Kalman”
Вот статус его экспериментальной версии с динамическим фильтром, проц загрузка всего 9 проц
# status
System Uptime: 30 seconds
Voltage: 0 * 0.1V (0S battery - NOT PRESENT)
CPU Clock=168MHz, Vref=3.30V, Core temp=43degC, GYRO=GYRO_IMUF9001, ACC=ACC_IMUF9001
Stack size: 2048, Stack address: 0x10010000
I2C Errors: 0, config size: 2209, max available config: 16384
CPU:9%, cycle time: 66, GYRO rate: 15151, RX rate: 49, System rate: 9
Arming disable flags: RXLOSS CALIB CLI MSP

PS Хочу дописать что в фильтрах особо не разбираюсь, пишу то что читаю, о работе фильтра кальмана сужу по цитате
Фильтр Калмана использует вероятностную модель динамики цели, задающую тип вероятного движения объекта, что позволяет снизить воздействие шума и получить хорошие оценки положения объекта в настоящий, будущий или прошедший момент времени

acpid

что-то все смешалось в королевстве. Хотелось бы подитожить.

  1. По дефолту оставляем BIQUAd, не PT1?
  2. Плюс к нему задаем gyro_filter_q и gyro_filter под свой сетап?
  3. debug_mode = NOTCH или gyro_raw?
  4. Что за gyro_stage2 на видео? Нет его в RC 3.3
MFer

Ребят, просто поймите принцип работы с фильтрами.
Вот тут почитайте. Дальше все одинаково, просто названия меняются и код.
Исходные данные с гиро и конечный результат на моторах - фундаментальные моменты.

Сергей_Уж

А в это время выложили
Betaflight v3.3.0 Release Candidate 2
github.com/betaflight/betaflight/releases
Изменения внизу страницы

В слеке дали еще одну ссылку на видео поясняющую в упрощенном виде принцип работы фильтра ( на английском )
(Плохой градусник меряет температуру с большими отклонениями, а фильтр сужает данные и приближает их к реальным )

acpid
MFer:

Ребят, просто поймите принцип работы с фильтрами.
Вот тут почитайте. Дальше все одинаково, просто названия меняются и код.
Исходные данные с гиро и конечный результат на моторах - фундаментальные моменты.

все прочитано и в меру возможностей осмыслено. Непонятно что сейчас есть что в RC.

MFer
acpid:

все прочитано и в меру возможностей осмыслено. Непонятно что сейчас есть что в RC.

да, я уже понял, что поторопился со своим постом ))

Сергей_Уж
acpid:

все прочитано и в меру возможностей осмыслено. Непонятно что сейчас есть что в RC.

Чтобы сильно не мучатся и не заморачиваться в ветке слека Kalyn Doerr, fujin выложил dump настроек. Прописал в CLI и подправил что нужно и вся любовь.
Я еще не настраивал, мой квадрик собирается, может кто то уже настроил и поделится.
set gyro_stage2_filter_type = FKF это есть в прошивке Kalyn, RC2 от бетафлая чуть отличается.
Чтобы активировть FKF фильтр дана инструкция
set gyro_use_32khz = ON
set cpu_overclock = ON
set gyro_stage2_filter_type = FKF
set gyro_kalman_q = 400
set gyro_kalman_r = 88

В этой прошивке ( Betaflight v3.3.0 Release Candidate 2 ) если найду методику выложу пошагово.

Если есть желание вот ссылка на RC1 от Kalyn Doerr , тут все понятно
2018_02_17_bf_3.3.0_RC1_fast_kalman_fixed
www.dropbox.com/sh/…/AADAoL8M3HmFQGkIWCTQeJAka?dl=…

Я сторонник этой прошивки, повторяю слова автора Kalyn Doerr прямо пишет “Don’t use the BQRC2 filter guys. Stick with the FKF”.

MFer
MFer:

да, я уже понял, что поторопился со своим постом ))

а вот мое маленькое детективное расследование.

Итак есть FKF (fast kalman filter) - это то, что предложил Колян. И это то, что использовалось в BF 3.3 в ночных прошивках вплоть с 493 по 521-ю.

А есть BiQuad+FiR (B+F) - это оптимизированный девами беты FKF для того, чтоб его можно было использовать и на F3 полетниках (он вносит бОльшую задержку, но при этом он меньше жрет ресурсов и F4-проц не надо оверклочить даже на 32/16 с dshot1200, но это не точно 😃). Этот фильтр применен в найтли билдах, начиная с 522-го. И он же применен в BF3.3 RC1 и RC2 - официальных предрелизах BF.
Как им пользоваться в RC1:
Просто включить gyro_kalman_q и gyro_kalman_r - цифири (соотношение) рассчитать по вашему срезу шумов (с отключенными всеми нотч-фильтрами, включая dterm notch). Калькулятор выкладывали выше. Причем важно именно соотношение, т.е. Q = 100 R = 10 - это то же самое, что Q = 1000 R = 100.
В RC2 - эти строки убрали и заменили их на gyro_stage2_lowpass_hz - который мы просто выставляем чуть ниже нашего пика шумов. Т.е. упростили настройку для валенков ))
gyro_lowpass_type при всем при этом вы ставите какой вам кажется более нужным, это все не связано - рекомендуется PT1, как и раньше, для чистых сетапов, или BIQUAD для гнутых пропов 😉

Но Колян продолжает делать и свои FKF прошивки - так сказать для хардкорщиков )))
Они обсуждаются тут - www.rcgroups.com/forums/showthread.php?3009636-BF-…
Последний релиз лежит тут - www.dropbox.com/sh/…/AADAoL8M3HmFQGkIWCTQeJAka?dl=…
Включается FKF через параметр: set gyro_stage2_filter_type = FKF
gyro_kalman_q и gyro_kalman_r считаются также.
При этом на 32к нужно оверклочить F4 проц. И не летать летом )))

ЗЫ: поправляйте, если я загоняю где-то 😉

Сергей_Уж

Все правильно, я только что прошился попробовать на прошивку Коляна , есть гнутые гвозди на которые напоролся. Да прошивка дает выбрать FKF фильтр и дает сохранить. Вот это уже из моего CLI
set gyro_stage2_filter_type = FKF но в названиях фильтров исчезло имя кальман как тут
set gyro_kalman_q = 400
set gyro_kalman_r = 88
# get gyro_kalman
Invalid name
нужно почитать, появилась команда, которая позволяет перейти к рейсфлаевским рейтам, котрые соответствуют реальным скоростям вращения, в бетафлае это синтетика сделано для удобства и единобразия когда когда тов разных профилях были разные значения рейтов.
rates_type = BETAFLIGHT
Allowed values: BETAFLIGHT, RACEFLIGHT
И вижу в статусе поего полетника частота проца уже не разогнана для 32 кгц ( KAKUTEF4V2 )

# status
System Uptime: 15 seconds
Voltage: 1 * 0.1V (0S battery - NOT PRESENT)
CPU Clock=168MHz, Vref=3.31V, Core temp=48degC, GYRO=ICM20689, ACC=ICM20689, BARO=BMP280
Stack size: 2048, Stack address: 0x10010000
I2C Errors: 1, config size: 2251, max available config: 16384
CPU:36%, cycle time: 31, GYRO rate: 32258, RX rate: 49, System rate: 9
Arming disable flags: RXLOSS CLI MSP

хадкор закончился

Сергей_Уж

Ну вот и прояснилось, он мне ответил (rs2k )
Sorry, that’s my bad. It should be :

set gyro_filter_q = ?
set gyro_filter_r = ?
that was a miscommunication between myself and @apoc and I just put the wrong info in there.

Теперь понятно, сейчас настрою

MFer

Можно было get gyro в cli набрать 😉

Сергей_Уж

Вроде настроил, грабли были. Ниже выложу diff
Вот такие вещи которые были раньше, как “set max7456_clock = HALF” подвешивают систему ( это было чтобы ОСД не гасло ). Если включить “set cpu_overclock = ON” нагрузка маленькая, но проц на максимальной частоте и возможен перегрев, тоже не включал, поставил в off ( так по умолчанию ). Очень сильно грузят систему Динамические фильтры, тоже отключил, нагрузка у меня упала на 35 где то процентов.
Сейчас установлена 32 16 мультишот 32000 как рекомендуют, нагрузка проца 42 процента, это допустимо. Вот финал

# diff

# version
# Betaflight / KAKUTEF4V2 (KTV2) 3.3.0 Feb 17 2018 / 00:23:23 (c5e2ce406) MSP API: 1.37

# name

# resources

# mixer

# servo

# servo mix


# feature
feature AIRMODE

# beeper

# map

# serial

# led

# color

# mode_color

# aux

# adjrange

# rxrange

# vtx

# rxfail

# master
set gyro_notch1_hz = 0
set gyro_notch2_hz = 0
set gyro_filter_q = 400
set gyro_filter_r = 88
set gyro_stage2_filter_type = FKF
set moron_threshold = 128
set gyro_use_32khz = ON
set acc_hardware = NONE
set mag_hardware = NONE
set baro_hardware = NONE
set min_check = 1020
set rc_interp = MANUAL
set rc_interp_ch = RPYT
set rc_interp_int = 14
set min_throttle = 1050
set use_unsynced_pwm = ON
set motor_pwm_protocol = MULTISHOT
set motor_pwm_rate = 32000
set deadband = 5
set yaw_deadband = 5
set pid_process_denom = 2
set debug_mode = FFT

# profile
profile 0

set dterm_lowpass = 80
set dterm_notch_hz = 0
set p_pitch = 61
set i_pitch = 55
set d_pitch = 20
set p_roll = 46
set i_roll = 45
set d_roll = 20
set p_yaw = 60
set i_yaw = 55
set d_yaw = 10

# rateprofile
rateprofile 0


# 

# status
System Uptime: 328 seconds
Voltage: 1 * 0.1V (0S battery - NOT PRESENT)
CPU Clock=168MHz, Vref=3.32V, Core temp=49degC, GYRO=ICM20689
Stack size: 2048, Stack address: 0x10010000
I2C Errors: 0, config size: 2251, max available config: 16384
CPU:42%, cycle time: 38, GYRO rate: 26315, RX rate: 49, System rate: 9
Arming disable flags: RXLOSS CLI MSP

Вроде в RC2 есть возможность overclock свой выставить, сейчас или есть или нет. Когда есть это 240, проц будет греться. Нужно будет попробовать.

Сергей_Уж

В прошивке появилась новая запись, опять поменяли названия параметров и добавили новые, отдельные настройки. При переносе данных из дампа или diff новые параметры или не пропишутся или будут конфликтовать и подвешивать конфигуратор ( я смог это проделать )
Теперь натройки и названия рейтов выглядят так и ниже пояснения с сайта прошивки ( чтобы долго не заморачиваться с точками и запятыми прогнал через переводчик
set rates_type = BETAFLIGHT
set roll_rc_rate = 100
set pitch_rc_rate = 100
set yaw_rc_rate = 100
set roll_expo = 0
set pitch_expo = 0
set yaw_expo = 0
set roll_srate = 70
set pitch_srate = 70
set yaw_srate = 70
• Изменен способ настройки рейтов (# 4973). Betaflight теперь поддерживает независимые настройки скорости для рола / питча / рыскания. При обновлении с более старой версии прошивки обязательно преобразуйте свои настройки в новые параметры следующим образом: 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».
При выборе rate_type = raceflight. Изменения такие, «rc_rate_» - это скорость RaceFlight (уменьшенная в 10 раз), <ось> _expo - это RaceFlight ‘expo’, а <ось> _srate это RaceFlight ‘acro +’; Короче абракадабра для тех кому не лень все это прочитать 😁

mil-lion

Вот не понимаю разработчиков которые меняют названия параметров 😦 неужели нельзя было сразу правильно называть.
Но вообще-то правилом хорошего тона для программистов является совместимость с предыдущими версиями. Старые названия оставляем, добавляем новые. Через версию старые убираем. Но наверное чтобы код был компактней они это правило не соблюдают. 😦

Сергей_Уж

Появилось хорошее видео ( англ ) по настройке фильтров в новой прошивке. Целая методика что и как 😃

И Колян подправил на форуме настройки изменив названия фильтров
set gyro_use_32khz = ON
set cpu_overclock = ON
set gyro_stage2_filter_type = FKF
set gyro_filter_q = 400
set gyro_filter_r = 88

Ratverg

Что-то как-то бетафлайт трясёт последнее время, то одно прикрутят, то другое открутят, даже прошивать не хочется… Как-то наверное подожду релиза.