Dual Rx input insanity - Herelink and RFD900x SBUS passthrough

Cube Black
RFD900x passing through SBUS on standard RCIN
Herelink on Serial 5 (from X9E)

SERIAL5_BAUD - 57
SERIAL5_OPTIONS - 8
SERIAL5_PROTOCOL - 23

SBUS on serial 5 is being inverted externally

Am unable to use a failsafe setting on the aircraft or it looses its mind and gets into a failsafe loop.

FS_THR_ENABLE - 1 results in the start of the loop, FS_THR_VALUE has nil effect.

If I leave the herelink off, and powerup the secondary transmitter, it works and RC input is seen, however aircraft still remains in failsafe.

If anyone wants a new ringtone, feel free to rip it :smiley:

@rmackay9 @siddharth

DualRX migraine.param (18.1 KB)

1 Like

Further to this, Both Rx’s are configured for no pulses.

If I boot up with both Tx turned on, FS_THR_ENABLE - 0, it works semi as expected. However, mission planner does not show any inputs from the second tx other than occasional flashing between the two. I can change flight modes with the herelink, and confirm connection, but mission planner shows nothing.

With both Rx’s set to no pulses, If I force arm the aircraft (no motors) and take off, then turn all the Txs off I have no failsafe and it’ll continue in any mode left in.

1 Like

options value 8 won’t work on a CubeBlack as it is a STM32F427 which doesn’t support pin swapping.

what pin is it connected on? Will need to be the RX pin

To narrow things down:

  • check that the receivers work independently (connect one at a time and test)
  • once confirmed separately then connect both and try physically disconnecting one at a time and check the other takes over. If this works and TX switch off doesn’t work then the receiver is not setup for no pulses properly
2 Likes

Ahh, I thought could swap but not invert. Good to know.

Its on the middle pin of the CONS connector, I struggled to find pinout for what was rx/tx on serial 5.

Will try physically disconnecting tonight and troubleshoot, I can definitely control the aircraft using both.

middle pin is RX:

Have been playing with this on oscilloscope, issue looks to be the RFD900Xs SBUS no pulse output doesnt work as intended…

Issue still exists, I can get all behaving, and have hand over working fine with failsafe disabled through FS_THR_ENABLE.

Failsafe works fine with a single Rx plugged into RCIN, however using the CONS connector and nothing in RCIN results in the loop of failsafes as per video. I have confirmed there are no pulses coming out of the Rx on the CONS connector.

@tridge If I plug the SBUS from Herelink into RCIN, univerted, all behaves normally. If I invert it and plug it back into CONS I get the failsafe insanity again.

Appears to be a bug in the way failsafe is detected with an inverted input?

Have you tried without inversion on serial 5, just for the purpose of process of elimination. Where are the instructions for dual RX? This is the first I’ve read about having two receivers connected and my brain hurts trying to guess how this works.

Serial 5 requires inversion -

https://ardupilot.org/copter/docs/common-multiple-rx.html

Is anyone able to replicate this behaviour?

As an idea I switched SBUS inputs, just to see if the behaviour changes, it doesnt. There is a bug with inverted SBUS failsafe.

Do you have a dataflash log with the inverted input in use?

1 Like

RCIN is a mess, as expected. This is a boot with both Txs on, then the one on CON turned off (starting failsafe loop) then RCIN turned off as well. Then RCIN turned on again, starting the failsafe loop again.

It doesn’t appear to be a failsafe problem. It’s an RC problem. The RC input is bouncing around, which is constantly tripping the failsafe on and off. The failsafe is just the outwardly visible symptom of the RC being all wonky. Now, is the RC problem due to your hardware or AP’s handling of it? Way over my head.

If the SBUS works directly into the RC In, but goes bonkers when it’s inverted and hooked up Serial 5, my first suspect would be what you’re using to invert it. How sure are you that device is working properly.

@tridge when you created this feature in September (https://github.com/ArduPilot/ardupilot/pull/12152), what configuration did you test it with?

Have tried 3 different SBUS inverters now, 3rd one using totally different hardware, identical behaviour. All look like normal SBUS on an oscilloscope. I have a orange cube here, might use that to troubleshoot and remove the external inverter from the loop.

Orange cube test not much use, doesnt appear possible to use CONS as a serial port anymore??

Tested with a Cube orange in a standard non ADS-B carrier board. No external SBUS inversion. Plug into console port, identical config as cube black above, with inversion onboard.

Exactly the same behaviour, works fine, until there is a failsafe on whatever input is on console pins.

@tridge thoughts ?

Tried same setup on Serial 2 - Same behaviour. Note how I can change mode, yet still failsafe loop.

The failsafe is “looping” because that’s what it sees the input doing. The failsafe sees the signal is constantly going out and back, so the failsafe is going on and off. If you’re sure the signal coming into it is good, which it sounds like you are, then I’d say AP isn’t receiving or handling it consistently which @tridge will need to address.