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

ale_p

по вольтметру измения напряжения при отклонения стика нет, хз чё там с ним, тоесть у меня даже не в номинале резистора или наличии кондера дело

SkyPlayer

Есть вот такой микро-омнибас, прошит BF 3.2.2.
На полётнике не разведён UART1 - только UART2 (RX2 и TX2) и UART3 (только RX3 - в виде входа SBUS).
На TX2 висит S.Port-телеметрия к XSR-E, работает нормально.

Захотелось прицепить SmartAudio-управление передатчиком AKK X5. Паять МГТФ к неразведённой ноге STM-ки дюже “ювелирно”, поэтому решил попросту ремапнуть TX1 на разведённый и неиспользуемый RX2. Для эксперимента начал проверять “перенос” S.Port-телеметрии на TX1. Исходная карта такая:

# resource
resource BEEPER 1 C15
resource MOTOR 1 A02
resource MOTOR 2 A03
resource MOTOR 3 B09
resource MOTOR 4 B08
resource MOTOR 5 B07
resource MOTOR 6 B06
resource PPM 1 B04
resource LED_STRIP 1 A08
resource SERIAL_TX 1 A09
resource SERIAL_TX 2 A14
resource SERIAL_TX 3 B10
resource SERIAL_RX 1 A10
resource SERIAL_RX 2 A15
resource SERIAL_RX 3 B11
resource LED 1 B03
resource TRANSPONDER 1 A08
resource SPI_SCK 1 A05
resource SPI_SCK 2 B13
resource SPI_MISO 1 A06
resource SPI_MISO 2 B14
resource SPI_MOSI 1 A07
resource SPI_MOSI 2 B15
resource ESCSERIAL 1 B04
resource ADC_BATT 1 A00
resource ADC_CURR 1 A01
resource BARO_CS 1 A13

После ремапинга UART-ы выглядят так:

resource SERIAL_TX 1 A14
resource SERIAL_TX 2 A15
resource SERIAL_TX 3 B10
resource SERIAL_RX 1 A10
resource SERIAL_RX 2 A09
resource SERIAL_RX 3 B11

Далее во вкладке Ports переключаю S.Port c UART2 на UART1, сохраняю-перезагружаю - и телеметрия НЕ РАБОТАЕТ. Возвращаю ресурсы и S.Port “на исходные” - все работает.

Возникает вопрос - что я делаю не так? 😃

P.S. Вот тут решалась аналогичная проблема для F4 - но через softSerial. У меня F3 - проблем с инверсией быть не должно да и портов хватает, так что без softSerial, вроде, можно и обойтись?

P.P.S. В моём сетапе пин LED не используется - может, попробовать ремапнуть TX1 на него?

We-BEER

решил ремапнуть TX1 (A09) на RX2 (A15), почему после ремапа TX1 стало A14, а не A15?

SkyPlayer
We-BEER:

почему после ремапа TX1 стало A14, а не A15?

Я же написал

SkyPlayer:

На TX2 висит S.Port-телеметрия к XSR-E, работает нормально.

SkyPlayer:

Для эксперимента начал проверять “перенос” S.Port-телеметрии на TX1.

PaulM

Я всегда думал, что переносить UARTы куда попало нельзя. Можно лишь назначать на те пины, которые предусмотрены в даташите stm32. Я так себе UART4 выделил на BlueJay F4, выводы которого по даташиту попадали на выводы моторов 1 и 2. Просто сдвинул моторы на выходы 3-6, а 1 и 2 назначил на TX/RX UART4. Только прошивку еще пришлось немного поменять, добавив UART4 по аналогии с контроллерами, на которых он есть. Но потом эти изменения уже сделали и в штатной прошивке.

SkyPlayer

Кажется, разобрался - надо даташит на STM внимательное читать, блин. 😃
У каждого вывода STM-ки есть фиксированный перечень доступных функций, и usart_rx/usart_tx абы куда не перекинешь. Попробую сделать через softserial (как я понял, ему любая нога с функцмоналом i/o подходит) и led-пин. Если не прокатит - придётся заниматься “интимом насекомых” - паять МГТФ к ноге.

Кариёзный_монстр
SkyPlayer:

Кажется, разобрался - надо даташит на 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
SkyPlayer
Михаил_Ка:

Не работает: управление Tramp`ом с пульта через OSD (переключение каналов, мощности)

Не работает смартаудио

Михаил_Ка:

из телеметрии на пульте вижу только показания F000, RSSI, RxBt, и A2.

Не работает с-порт телеметрии от полётника до приёмника - указанные параметры генерит сугубо сам приёмник.

Михаил_Ка
SkyPlayer:

Не работает смартаудио

SkyPlayer:

Не работает с-порт телеметрии от полётника до приёмника - указанные параметры генерит сугубо сам приёмник.

То что они не работают это я понял, потому и спросил. А вот куда смотреть?
Пробовал отключить второй СофСериал, оставить только S Audio- не заработало.

Если чем-то поможет найти причину, могу выложить все настройки CLI.

lunohod

Если передатчик 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…

Проще в конфигураторе настроить.

ЕМНИП, телеметрия не работает при подключенном конфигураторе.

Михаил_Ка
lunohod:

Если передатчик 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.

Михаил_Ка
lunohod:

ЕМНИП, телеметрия не работает при подключенном конфигураторе.

Пробовал и с отключенным- эффект тот же.

lunohod:

Пины для softserial верно настроены? Куда вообще подключены tramp и sport?

TX1 - SoftSerial 1 на PA09
TX3 - SoftSerial 2 на PB10

Tramp подключен от t-pin на контроллер J27 TX1
XSR подключен от Sport на контроллер J1 TX3

Михаил_Ка
lunohod:

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
lunohod:

На PA11 и PB10 больше ничего не сконфигурировано?

Что то неувязочка вышла с resource list буду разбираться
PA11 не правильно написал softserial 1 на PA09

Михаил_Ка
lunohod:

На 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 от контроллера без изменений

SkyPlayer
lunohod:

ЕМНИП, телеметрия не работает при подключенном конфигураторе.

С чего бы? Всё прекрасно работает - по крайней мере, через хардварный 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

В итоге эксперименты и чтение как наших, так и импортных ресурсов утомили и было сделано следующее:

  1. Smart Audio (Tramp Audio) подключено через SoftSerial 1 на pin MOTOR 5
  2. 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

В общем УРА!!! Можно собирать на раму 😃

SkyPlayer:

телеметрия не работает при подключенном конфигураторе.

Подтверждаю при включенном конфигураторе у меня телеметрия не работает, состояние ARM или DISARM значения не имеет.