Прошивки CleanFlight/BetaFlight для полетников
Кажется, разобрался - надо даташит на STM внимательное читать, блин. 😃
У каждого вывода STM-ки есть фиксированный перечень доступных функций, и usart_rx/usart_tx абы куда не перекинешь. .
Так на всех МК с которыми я работал )
Приветствую
Собираю квадр.
Конфигурация: контроллер OmniBus F4 Pro Corner, видео передатчик Tramp HV, регуляторы Wraith32, камера RunCam Split v1, приемник FrSky XSR, пульт Taranis QX7.
Подключение:
Uart 1
RX1 - к телеметрии регуляторов
TX1 - SoftSerial 1 - на T-pin Tramp (smart audio)
Uart 3
RX3 - SBUS приемник XSR (беру не инвертированный сигнал)
TX3 - SoftSerial 2 - SmartPort приемник XSR (беру не инвертированный сигнал)
Uart 6
RX6 - на TX RunCam Split
TX6 - на RX RunCam Split
Работают: показания тока и напряжения с ESC, SBUS, управление камерой, OSD.
Не работает: управление Tramp`ом с пульта через OSD (переключение каналов, мощности), из телеметрии на пульте вижу только показания F000, RSSI, RxBt, и A2.
Поиск датчиков на пульте пробовал в режиме ARM и DISARM.
Подскажите где копать?
И второй вопрос по команде в CLI: serial - Что зачат цифры между номером порта и скоростью?
на GitHub`е написано Function bitmask (see serialPortFunction_e in the source), а найти этот самый serialPortFunction_e у меня не получилось, поэтому serial настраивал по аналогии с чужими сетапами. Где взять таблицу соответствия устройства и этой самой маски?
Темы на rcgroups и rcgroups 2 читал, SmartPort по 2 пинам подключать не хочу.
Еще где-то читал (ссылку не помню), что S Audio и S port в Бетафлае 3.1 на двух разных софтсериал не дружат (но было это упоминание в одном месте и про другую плату, сейчас у меня установлена версия Betaflight / OMNIBUSF4SD (OBSD) 3.2.2). FrSky XSR прошивал последней версией не для Европы, так же как и пульт и передатчик в нем.
Настройки CLI:
resource SERIAL_TX 6 C06
resource SERIAL_TX 11 A09
resource SERIAL_TX 12 B10
resource SERIAL_RX 1 A10
resource SERIAL_RX 3 B11
resource SERIAL_RX 6 C07
resource INVERTER 3 C09
resource INVERTER 6 C08
# feature
Enabled: RX_SERIAL MOTOR_STOP SOFTSERIAL TELEMETRY RSSI_ADC LED_STRIP OSD ESC_SENSOR ANTI_GRAVITY DYNAMIC_FILTER
# serial
serial 20 1 115200 57600 0 115200
serial 0 1024 115200 57600 0 115200
serial 2 64 115200 57600 0 115200
serial 5 16384 115200 57600 0 115200
serial 30 2048 115200 57600 0 115200
serial 31 32 115200 57600 0 115200
set tlm_halfduplex = on
set tlm_inverted = on (пробовал менять на off на всякий случай- без результата)
# status
System Uptime: 24 seconds
Voltage: 0 * 0.1V (0S battery - NOT PRESENT)
CPU Clock=240MHz, GYRO=ICM20608G, ACC=ICM20608, BARO=BMP280
SD card: None inserted
Stack size: 2048, Stack address: 0x10010000
I2C Errors: 0, config size: 2084, max available config: 16384
CPU:5%, cycle time: 125, GYRO rate: 8000, RX rate: 111, System rate: 9
Arming disable flags: THROTTLE CLI
Не работает: управление Tramp`ом с пульта через OSD (переключение каналов, мощности)
Не работает смартаудио
из телеметрии на пульте вижу только показания F000, RSSI, RxBt, и A2.
Не работает с-порт телеметрии от полётника до приёмника - указанные параметры генерит сугубо сам приёмник.
Не работает смартаудио
Не работает с-порт телеметрии от полётника до приёмника - указанные параметры генерит сугубо сам приёмник.
То что они не работают это я понял, потому и спросил. А вот куда смотреть?
Пробовал отключить второй СофСериал, оставить только S Audio- не заработало.
Если чем-то поможет найти причину, могу выложить все настройки CLI.
Если передатчик tramp, то и выбирать надо не smartaudio, а tramp telemetry или как там его.
И второй вопрос по команде в CLI: serial - Что зачат цифры между номером порта и скоростью? на GitHub`е написано Function bitmask (see serialPortFunction_e in the source), а найти этот самый serialPortFunction_e у меня не получилось, поэтому serial настраивал по аналогии с чужими сетапами. Где взять таблицу соответствия устройства и этой самой маски
github.com/betaflight/betaflight/blob/…/serial.h#L…
Проще в конфигураторе настроить.
ЕМНИП, телеметрия не работает при подключенном конфигураторе.
Если передатчик tramp, то и выбирать надо не smartaudio, а tramp telemetry или как там его.
Его то же выбирал (забыл написать) как вариант.
При выборе tramp строка получается:
serial 30 8192 115200 57600 0 115200
при выборе SmartAudio меняется на
serial 30 2048 115200 57600 0 115200
при этом в OSD в меню VTX SmartAudio> STATX
выбрав tramp получаю значения (постоянные значения):
STATUS OFFL
Baudrate 4800
Sent 0
остальные 0
а выбрав Samart Audio получаю значения:
STATUS OFFL
Baudrate 4800 меняется до 4950 и обратно
Sent от 0 до 10
остальные 0
Поэтому и спрашивал про параметры команды Serial.
resource list что показывает?
ЕМНИП, телеметрия не работает при подключенном конфигураторе.
Пробовал и с отключенным- эффект тот же.
Пины для softserial верно настроены? Куда вообще подключены tramp и sport?
TX1 - SoftSerial 1 на PA09
TX3 - SoftSerial 2 на PB10
Tramp подключен от t-pin на контроллер J27 TX1
XSR подключен от Sport на контроллер J1 TX3
На PA11 и PB10 больше ничего не сконфигурировано?
resource list что показывает?
# resource list
Currently active IO resource assignments:
(reboot to update)
--------------------
A00: ADC_RSSI
A01: FREE
A02: MOTOR 1
A03: MOTOR 2
A04: MPU_CS
A05: SPI_SCK 1
A06: SPI_MISO 1
A07: SPI_MOSI 1
A08: FREE
A09: SERIAL_TX 11
A10: SERIAL_RX 1
A11: USB
A12: USB
A15: OSD_CS
B00: MOTOR 4
B01: MOTOR 3
B03: BARO_CS
B04: BEEPER
B05: LED 1
B06: LED_STRIP
B07: SDCARD_DETECT
B08: FREE
B09: FREE
B10: FREE
B11: SERIAL_RX 3
B12: SDCARD_CS
B13: SPI_SCK 2
B14: SPI_MISO 2
B15: SPI_MOSI 2
C00: FREE
C01: FREE
C02: FREE
C03: FREE
C04: MPU_EXTI
C05: FREE
C06: SERIAL_TX 6
C07: SERIAL_RX 6
C08: INVERTER 6
C09: INVERTER 3
C10: SPI_SCK 3
C11: SPI_MISO 3
C12: SPI_MOSI 3
D02: FREE
Currently active DMA:
--------------------
DMA1 Stream 0: LED_STRIP
DMA1 Stream 1: MOTOR 1
DMA1 Stream 2: MOTOR 3
DMA1 Stream 3: FREE
DMA1 Stream 4: FREE
DMA1 Stream 5: FREE
DMA1 Stream 6: MOTOR 2
DMA1 Stream 7: MOTOR 4
DMA2 Stream 0: FREE
DMA2 Stream 1: FREE
DMA2 Stream 2: FREE
DMA2 Stream 3: FREE
DMA2 Stream 4: ADC
DMA2 Stream 5: FREE
DMA2 Stream 6: FREE
DMA2 Stream 7: FREE
На PA11 и PB10 больше ничего не сконфигурировано?
Что то неувязочка вышла с resource list буду разбираться
PA11 не правильно написал softserial 1 на PA09
На B10 отсутствует SERIAL_TX 12, но это sport. Отчего tramp не работает - я хз.
На B10 отсутствует SERIAL_TX 12, но это sport. Отчего tramp не работает - я хз.
Почему команда <resource> показывает:
resource SERIAL_TX 12 B10
а команда <resource list> :
B10: FREE
Попробовал вернуть
resource SERIAL_TX 3 B10 как было изначально.
команда <resource> показывает:
resource SERIAL_TX 3 B10
а команда <resource list> :
всё равно
B10: FREE
отключил XSR от контроллера без изменений
ЕМНИП, телеметрия не работает при подключенном конфигураторе.
С чего бы? Всё прекрасно работает - по крайней мере, через хардварный UART у меня.
Конфигурация: контроллер OmniBus F4 Pro Corner, видео передатчик Tramp HV, регуляторы Wraith32, камера RunCam Split v1, приемник FrSky XSR, пульт Taranis QX7.
Подключение:
Uart 1
RX1 - к телеметрии регуляторов
TX1 - SoftSerial 1 - на T-pin Tramp (smart audio)
Uart 3
RX3 - SBUS приемник XSR (беру не инвертированный сигнал)
TX3 - SoftSerial 2 - SmartPort приемник XSR (беру не инвертированный сигнал)
Uart 6
RX6 - на TX RunCam Split
TX6 - на RX RunCam Split
Почему не заработала эта схема так и не разобрался.
Так же остались вопросы почему команды <resource list> и <resource> после перезагрузки контроллера показывают разные значения. По документации после перегрузки должны быть одинаковыми 😵
После экспериментов 😃 было выяснено, что смена местами как вместе так и подключение по одному к TX1 и TX3, как через СофтСериал, так и напрямую ни S Port ни S Audio не заработали.❗
В результате поисков наткнулся на Tramp HV incompatibility issue with F4 hardware UARTs
В итоге эксперименты и чтение как наших, так и импортных ресурсов утомили и было сделано следующее:
- Smart Audio (Tramp Audio) подключено через SoftSerial 1 на pin MOTOR 5
- Smart Port подключен через SoftSerial 2 на pin LED_STRIP
Smart Audio (Tramp Audio) через SoftSerial так же работает на pin LED_STRIP- проверил.
Если кому-то понадобятся мои настройки:
feature SOFTSERIAL
feature TELEMETRY
feature ESC_SENSOR
feature LED_STRIP
resource MOTOR 1 A02
resource MOTOR 2 A03
resource MOTOR 3 B01
resource MOTOR 4 B00
resource MOTOR 5 none
# MOTOR 5 - A01 default value
resource LED_STRIP 1 none
# LED_STRIP 1 - B06 default value
resource SERIAL_TX 11 A01
# Smart Audio on SoftSerial 1 to pin MOTOR 5
# resource SERIAL_TX 1 NONE
# resource SERIAL_TX 11 A09
resource SERIAL_TX 12 B06
# Smart Port on SoftSerial 2 to pin LED_STRIP
# resource SERIAL_TX 3 NONE
# resource SERIAL_TX 12 B10
set sbus_inversion = OFF
set cpu_overclock = ON
set serialrx_provider = SBUS
set current_meter = ESC
set battery_meter = ESC
set tlm_halfduplex = on
set tlm_inverted = on
serial 0 1024 115200 57600 0 115200
serial 2 64 115200 57600 0 115200
serial 5 16384 115200 57600 0 115200
serial 30 8192 115200 57600 0 115200
serial 31 32 115200 57600 0 115200
В общем УРА!!! Можно собирать на раму 😃
телеметрия не работает при подключенном конфигураторе.
Подтверждаю при включенном конфигураторе у меня телеметрия не работает, состояние ARM или DISARM значения не имеет.
Вот видео в тему для экономии юартов и проводов:
Вот видео в тему для экономии юартов и проводов:
Он пока сырой как болото весной - телеметрия лагает жутко, данных на экранах BF LUA вообще хрен дождёшься.
Я уже писал в соседней теме, что полагаю весьма странной идеей - пихать управление, телеметрию, LUA и RSSI в ПОЛУДУПЛЕКСНЫЙ (однопроводный) протокол. Это ж как участок “реверсивного движения” при ремонте дороги - “пробки” обеспечены по определению. Кой смысл было упираться в однопроводный протокол вместо двухпроводного асинхронного (например, вывод SBUS в качестве TX и SPort в качестве RX) - мне непонятною
Кой смысл было упираться в однопроводный протокол вместо двухпроводного асинхронного (например, вывод SBUS в качестве TX и SPort в качестве RX)
допилят все. в этом плане бетафлайт молорики.
допилят все.
Чем раньше сообразят перейти на дуплекс - тем скорее допилят. 😃 Я правда никак не могу понять смысла “упёртости” в 1-проводку, это ж “сам себе злобный Буратино”. 😃
Разработчик в слаке ответил, что на днях уже будет улучшение в протоколе.
Чем раньше сообразят перейти на дуплекс - тем скорее допилят. 😃 Я правда никак не могу понять смысла “упёртости” в 1-проводку, это ж “сам себе злобный Буратино”. 😃
на каждом полетнике уже есть СБАС. Или ППМ.
И их “однопроводные” можно использовать.
если сожрать “живой” уарт - нафиг оно все нужно?
Что-то вы дюже загадочное написали 😁
1)
если сожрать “живой” уарт - нафиг оно все нужно?
SBUS - это и так “живой” UART, причём аппаратный, а не софтовый - на некоторых полётниках этот же UART “продублирован” отдельными RX и TX (на F4, как правило, разница этих “пятаков” в наличии инвертора на пятаке SBUS) И, хотя занят там только RX, порт оказывается занят целиком. Так что для FPort можно было бы использовать тот же “SBUSовский” UART “по полной”, раз уж FPort в том числе заменяет SBUS.
2) По поводу использования SBUS+SPort - я больше имел в виду приёмник (XSR), где изначально не было предусмотренно асинхронного выходного порта.
3)
И их “однопроводные” можно использовать.
Убогость “однопроводности” и проблемы, вылезающие из этой убогости, я уже описал выше - после того как натолкнулся на них на практике.