SpeedyBeeF405-mini RC inputs disconnect when "MAVlink" connects

I’ve been building a 250g qaud using the SpeedyBee F405 Mini stack. I have my TX16s with EdgeTX connected via ELRS. Everything was working fine until I added MLRS as an SIK radio replacement to one of the unused serial ports.

On the Ardupilot page of the SpeedyBee mini, it shows the SERIAL3 not being used for anything. I had hoped to use it for wireless MAVlink connected to my laptop for mission configuration.

The problem arises when MLRS connects to the laptop (when I connect the ‘dongle’ via USB to the laptop). The RCIN input from my TX16s drops and a “Radio Failsafe - Disarming” triggers. The MLRS dongle works perfectly and I can connect mission planner wirelessly. I still receive telemetry over ELRS on my TX16s, but the RC inputs are not processed by the flight controller anymore. If i then disconnect the MLRS dongle, the radio failsafe is cleared and RC inputs are being processed by the FC again.

It seems that these links conflict somehow. I have tried reflashing and resetting all params and only trying the SERIAL3 protocol setting, but nothing has helped. The limitations page of the FC did not indicate that this shouldn’t be possible (at least as far as I can tell).

I’m not the best with troubleshooting problems in Ardupilot, so any help is appreciated!
Thanks!

In the meantime I have tried to disable telemetry on the ELRS link, but to no avail. The thought process was that there can only be one consumer of this data, and MAVlink over the SERIAL3 and the telemetry over ELRS are in conflict over it.

I solved it!

It turns out that the documentation to use mLRS as an SIK radio replacement is not complete, at least in this situation. The docs define a couple of settings that need to be set on the mLRS radios, but I also needed to change “rx_snd_rcchannel” to 0.

This is the configuration I ended up with, for the Tx and Rx side of my mLRS setup:

mLRS parameters

ConfigId:0
Bind Phrase = mlrs.0
Mode = 19 Hz [2]
RF Band = 868 MHz [2]
RF Ortho = off [0]
Tx Power = 10 mW [2]
Tx Diversity = antenna1 1
Tx Ch Source = none [0]
Tx Ch Order = AETR [0]
Tx In Mode = sbus [0]
Tx Ser Dest = serial [0]
Tx Ser Baudrate = 115200 [4]
Tx Snd RadioStat = 1 Hz [1]
Tx Buzzer = - (unavailable)
Tx Cli LineEnd = CR [0]
Rx Power = 10 mW [2]
Rx Diversity = antenna1 1
Rx Ch Order = AETR [0]
Rx Out Mode = - (unavailable)
Rx FailSafe Mode = no sig [0]
Rx Ser Baudrate = 57600 [3]
Rx Ser Link Mode = mavlink [1]
Rx Snd RadioStat = ardu_1 [1]
Rx Snd RcChannel = off [0]
Rx Buzzer = - (unavailable)
Rx Out Rssi Ch = off [0]
Rx Out LQ Ch = off [0]
Rx FS Ch1 = 0 %
Rx FS Ch2 = 0 %
Rx FS Ch3 = 0 %
Rx FS Ch4 = 0 %
Rx FS Ch5 = 0 %
Rx FS Ch6 = 0 %
Rx FS Ch7 = 0 %
Rx FS Ch8 = 0 %
Rx FS Ch9 = 0 %
Rx FS Ch10 = 0 %
Rx FS Ch11 = 0 %
Rx FS Ch12 = 0 %
Rx FS Ch13 = 0 % [1]
Rx FS Ch14 = 0 % [1]
Rx FS Ch15 = 0 % [1]
Rx FS Ch16 = 0 % [1]

It seems that this setting is needed to make the mLRS protocol not send RC channels to the FC. When these are sent to the FC (at least in my case) they are overwritten and the RC inputs from ELRS are ignored.

Hopefully anybody will find these posts if they encounter the same problem. Maybe @olliw42 can update the documentation on the github, if he agrees with my findings :wink:

1 Like