SBUS RC receivers on Pixhawk4 mini

Dear all,

I tried to install 4.1.0, 4.1.1 (by mission planner), and 4.1.2-dev (by waf command on ubuntu) to Pixhawk4 mini.
As a result, it seems that these versions cannot read the RC input and I get Radio FailSafe.
On the other hand, it worked fine with Copter-4.0.7 and Plane-4.1.3.

I have confirmed the same result with three Pixhawk4 mini, two of mine and one of my friend’s.
So I think it’s not a problem with Pixhawk4 mini hardware, but with the source code.
Does anyone know how to deal with this?

Thank you.

This is the current way of dealing with the problem.

Turn on the PH4-mini and the receiver first, then turn on the transmitter.
In this order, PH4-mini can read the SBUS signal without any problem.

If turn on the transmitter first, it can’t read SBUS.

I tested this with Copter-4.1.0,4.1.1, and 4.1.2.
Tested receivers are R7008SB, R3008SB, and TMR-04.
In all case, SBUS2 port are used.

Thank you.

1 Like

That RC receiver SBUS output is probably being wrongly autodetected.
Set RC_PROTOCOLS parameter to 8 to force SBUS only decoding

Thanks for the report, I’ve added this to the Copter-4.1 issues list.

2 Likes

@miw01 can you please try setting BRD_SER4_RTSCTS to 0 to disable the flow control pins on the SERIAL4 uart that is used for RC input on the Pixhawk4 mini.
Also please let me know which connector you are using for the receiver. ArduPilot supports all input RC protocols on both the PPM pin and the RCIN port, so I can’t tell which one you are using. My guess is you’re using the RCIN port. If you are not using the RCIN port then please set SERIAL4_PROTOCOL to 0 to disable RCIN detection on that port (then only PPM port will be used)

1 Like

Dear tridge,

I use “RC IN” port.

I just test that BRD_SER4_RTSCTS to 0.
When I power on PH4mini before Transmitter power on,
PH4mini can read SBUS signal.
But, when I power on PH4mini after Transmitter Power on,
PH4mini can not read SBUS signal.

Here’s the situation.
Please advise me.

Thank you.

1 Like

Dear Randy,

Thank you.

At least, my two PH4mini and one Hashiguchi-sensei’sPH4mini show same results.

Dear milcarlucas,

I tested to set RC_PROTOCOLS to 8,
however, the result was the same.

Thank you.

I have now reproduced the problem using an Archer R6 FPort2 receiver with a taranis. I’m working on diagnosing and fixing it
many thanks to everyone who gave feedback on this issue!

1 Like

I’ve done a fix for this issue here:

@rmackay9 is considering the fix for the next stable. I don’t know if it will go into 4.1.3 or not.
Meanwhile, there is an easy workaround. If you set the SERIAL4_OPTIONS parameter to the right value then the bug doesn’t occur. For inverted protocols (like SBUS or FPort) then you need to set SERIAL4_OPTIONS to 9. The default value on this board is 8.
The problem was caused by the value of 8, which does not include the invert option, being applied again after the RC protocol is detected. That caused the inversion to be disabled, which stopped RCIN decoding from working.

2 Likes

Thank you very much!

@miw01,

Here is a Copter-4.2.0-DEV binary for the PH4-mini with Tridge’s fix applied. If you get a chance to check whether this fixes the problem that would be great.

OK, I’ll try after tomorrow, 26.

Because of the bad weather, I haven’t been able to do any flight tests.

Both Copter-4.2.0-DEV and “SERIAL4_OPTIONS to 9” were successful in reading the SBUS signal.

1 Like

@miw01,

Great, thanks for the feedback. This fix is included in Copte-4.1.3-rc1 so it should go out in the stable release within a week assuming there are no problems with the beta testing.

Using cube orange with rfd900x, getting SBUS intense jitter (out of min/max ranges) which triggers throttle too high and yaw not centered errors. Figured it is related to this thread, I can create a new one if prefered.

1 Like

I think this is also related

I am running into the same issue using a Cube Orange running 4.2.1 with an Airbot Mini Carrier board and an S-Bus receiver. The only option I found to make it work is to start with the remote turned off. The rest of the solutions proposed here were not working in my case.

Any ideas?

If I am able to find the issue I will post it.

try changing the RC_PROTOCOLS to 3 to force SBUS rather than auto-detection.
Complete Parameter List — Copter documentation

Thanks!, I had a look again on this option and I changed it to value 24, activating SBUS and SBUS_NI bits. Activating only the SBUS bit was giving me the same problem (remote could not be on before powering the drone). I also changed the SERIAL4_OPTIONS to 9, but I do not know it had any effect. I wonder what could be the underlying reason for this issue.