There have been a lot of discussion on using SBUS over PPM for radio receiver. Here we will have a look at the differences and the advantages of SBUS over PPM.
Why SBUS is better than PPM?
PPM and SBUS are both receiver protocols. PPM (aka CPPM) is an old, analogue signal. SBUS is a newer, digital signal.
In a nutshell, SBUS has the advantages of
- SBUS is faster than PPM and PWM
- Different Error Handling
- Smoother, better resolution RC inputs
PPM have 27ms of delay (delay is defined by the signal width), and SBUS only have 9ms of delay.
In Cleanflight/Betaflight, to prevent signal frame glitching, 3-point averaging is used and therefore the signal delay is tripled (by adding 3 past signals and divide it by 3). So the real delay for PPM is 81ms, and for SBUS this is only 27ms.
About 50ms improvement compared to PPM might not sound like a lot, but it definitely helps! For example for looptime of 1000, each control loop takes 1ms to complete. By going SBUS your quad can react to your stick command 50 control loops earlier. Less delay in RC input will make your quad much more responsive.
Let’s say if your quad was flying at 100Km/hr (62 MPH) which is 27.8m/s, in 50ms of delay, your quad can travel 1.39 meters. That is about 4.5 feet! Wow :D
As mentioned, PPM is analog signal and it more vulnerable to noise, jitter and interference. The flight controller won’t be able to tell if there is an error in the data, because it’s still a valid value (0% to 100%). To prevent that, 3-point moving average is used (taking average of 3 consecutive values). Thus it causes even more delay.
Digital signal such as SBUS has built-in error checking and correction.
X4R-SB vs D4R-II
The most common RX choices for PPM is the Frsky D4R-II, and for SBUS is the X4R-SB.
|D4R-II||CPPM||8 PPM or 4 PWM||81ms|
|X4R-SB||SBUS||16 SBUS + 3 PWM||27ms|
D4R-II is widely supported by most flight controllers without any additional converter or adapter for both signal or telemetry.
The X4R-SB might require signal inverter for some flight controllers like Naze32 Rev5, or a SBUS-to-PPM converter on the KK2. For using SBUS and Smart Port (S.Port) on Naze32, check out this tutorial.
However on the X4R-SB, it allows you to use the 3 additional PWM channels while running the 16 channels SBUS. So you can hook them up maybe to your servos, gimbals, loud buzzer etc where only accept PWM input. With PPM enabled on the D4R-II, you lose the PWM outputs.
Both RX are similar in price and range (both are marketed range of 1.5Km), binding process and failsafe setup are the same.
Get your Frsky X4R-SB Receiver.
Using X4R-SB (SBUS) on CC3D, Sparky, SPRacing, Dodo, Tornado
For all these flight controllers (CC3D, Sparky, SPRacing, Dodo, Tornado), setup is very simple. All you need is a direct connection between FC and RX pretty much like PPM.
With CC3D, just configure the Main Port as SBUS and you have a direct connection with 3 wires only.
Using X4R-SB (SBUS) on Naze32
Because Naze32 Rev5 or earlier boards don’t support the inverted SBUS signal, you need to get an inverter like this. Or you can DIY one yourself. The signal wire goes to RC4 pin, and you then need to configure UART2 for Serial RX in Cleanflight.
You might ask if the inverter can introduce some delay and contradict with the latency reduction benefit. I have not personally look into this but I read somewhere the latency is neglectable, since the inverter is just a fast switching NFET which runs at the speed of micro seconds.
No Inverter on Naze32 – X4R-SB Hack
Latest firmware for X4R-SB
Binding without the jumper retains the original behaviour, i.e. PWM channels 1-3 and SBUS on output 4.
Binding with jumper turns output 1 into CPPM channels 1-8, outputs 2 & 3 become PWM channels 9 & 10, and output 4 is still SBUS.
Essentially this firmware turns the X4R-SB into a 8+2 or 16+3 channel RX.
This post is not trying to convince anyone to use SBUS over PPM, maybe PPM performs well enough for certain people, and SBUS might make no difference at all. But that is certainly some interesting fact and I can’t wait to test it myself.