When it comes to radio receiver (RX) and transmitter (TX) protocols, confusing acronyms are often used: PWM, PPM, SBUS, DSMX etc. In this post we will explain the differences of these RC TX and RX signal types.
What are TX protocols and RX protocols
These radio protocols can be confusing to beginners. We will try to explain the basics and differences of these radio communication protocols. We will also have a look at some of the technology, and see how it makes flying more reliable and safer.
These radio communication protocols used in drones, RC planes/wings quadcopters and other radio controlled multirotors can be divided into two groups:
- RX Protocols (communication between RX and FC), and
- TX Protocols (communication between TX and RX)
Some of the RX protocols are universal across different brands of RF equipment, but some can be exclusive to certain brands. Some of them include the following:
- PWM (universal)
- PPM (universal)
- PCM (universal)
- SBUS (Futaba, Frsky)
- IBUS (Flysky)
- XBUS (JR)
- MSP (Multiwii)
- SUMD (Graupner)
- SUMH (Graupner)
- CRSF – Crossfire (TBS)
- FPort (Frsky)
- SPI_RX (universal) – More detail in this article
While TX protocols are mostly different between brands. Some brands might offer multiple different protocols depends on the pairing radio receiver. Some of them include:
- D8 (Frsky)
- D16 (Frsky)
- LR12 (Frsky)
- DSM (Spektrum)
- DSM2 (Spektrum)
- DSMX (Spektrum)
- AFHDS (Flysky)
- AFHDS 2A (Flysky)
- A-FHSS (Hitec)
- FASST (Futaba)
- Hi-Sky (Deviation)
PWM – Pulse Width Modulation
This is the most common and basic radio control protocol. In the old days when there were only RC fixed wings planes, the receivers were used to control the servos or ESC directly with standard PWM signal, one channel for each servo. Until today the same technology is still being used in many models.
Multirotors require at least 4 to 5 channels (sometimes even more) and you will see the same numbers of servo leads connected between the receiver and flight controller.
PWM stands for pulse width modulation. It’s an analog signal where the length of the pulse specifies the servo output or throttle position. The length of the signal pulse normally varies between 1000µs and 2000µs (micro seconds), with 1000µs being the minimum & 2000µs the maximum.
PWM radio receiver is the most common and usually the cheapest option. However due to the messy wiring, hobbyists now prefer PPM or SBUS over PWM.
PPM – Pulse Position Modulation
PPM is also known as CPPM or PPMSUM. The advantage of PPM is that only one signal wire is needed for several channels (typically 8 channels max), instead of a number of individual wires. So you should only connect the ground, power and signal cable.
A PPM signal where basically a series of PWM signals sent one after another on the same wire, but the signal is modulated differently.
PPM is what they call “analog signal in time domain” (although it can be a bit controversial at times), channels are sent one after another and not at the same time. Therefore it’s not as accurate or jitter free as serial communications, but it’s more widely available and supported by many Flight controllers.
Check out this post for a more detail difference between PWM and PPM.
PCM – Pulse Code Modulation
PCM stands for pulse code modulation, it’s a data types similar to PPM. However PCM signal is digital signal (using ones and zeros) while PPM signal is analogue, which is the length of time the signal is on. PCM has the potential of signal error detection even error correction, but this still depends on the product you buy.
PCM is more reliable and less susceptible to interference, but additional conversion is required so the equipment tends to be more expensive.
Serial Receiver is a digital loss-less protocol that uses only 3 wires (signal, power, ground) for multiple channels. As the name suggests this type of receiver requires serial port on the flight controller. This includes SBUS, XBUS, MSP, IBUS, and SUMD.
SBUS (S.BUS, Serial BUS) – By Frsky, Futaba
SBUS is a type of serial communication protocols, used by Futaba and FrSky. It supports up to 18 channels using only one signal cable.
SBUS is an inverted UART communication signal. Many flight controllers can read UART input, but cannot accept inverted one (such as the Naze32 Rev5) and an inverted is required. However F3 FC’s and some FC such as Pixhawks has built-in dedicated signal inverter for this purpose.
CRSF is a new protocol developed by TBS. It’s similar to SBUS or other digital RX to FC protocols. The main advantages include faster update rates and two-way communication capabilities, allowing things like Telemetry to be injected into the communication stream with no additional ports required. This allows FC-tuning through your radio as well as hassle-free telemetry to your remote control via the Crossfire radio link.
IBUS – By Flysky
IBUS is the new flysky serial protocol. It’s a two way communication which means it can send and receive data: one port for servo data output and one port for sensors.
XBUS – By JR
XBUS is used by JR, which supports up to 14 channels in one signal wire. One of the advantages is the tiny time delay between each channel.
MSP (multiwii serial protocol)
Protocol that was created as part of the multiwii software. Basically it allows you to use MSP commands as the RC input and it supports 8 channels in one signal cable.
Graupner Hott SUMD
The Graupner SUMD is a serial protocol like Speksat and SBUS. The channels are encoded into one digital signal and have no noticeable latency. Advantages of SUMD are:
- Compared to SBUS, SUMD doesn’t require signal inverter
- Compared to PPM, SUMD has better resolution and no jitter while PPM has only 250 steps and always 4ms jitter
SUMH is a legacy Graupner protocol. Graupner have issued a firmware updates for many recivers that lets them use SUMD instead.
FPort is a new RX protocol developed by Frsky and Betaflight developers. It combines both the control signal and telemetry data into 1 single wire which makes it more compact and easier to manage.
It’s not inverted like SBUS and Smart Port so it should be compatible with F4 without hardware inverters.
F-Port is still at its very early stage. We will surely release more info about FPort, and how to set it up on our quad in the future as we hear more.
What Receiver Protocol and Should I use?
First of all, it depends on your radio transmitter. Personally I would prefer PPM or SBUS for multicopter in general because of the simple wiring. However for drone racing and freestyle I would choose SBUS due to it’s minimal lag.
Spektrum’s TX protocols: DSM2 and DSMX
“Spektrum” is often mentioned in radio related topics, which is basically a RC brand specialized in radio. So far, what we have been discussing above have been RX to FC protocols, but DSM2/DSMX are protocols between TX and RX (radio protocol) used by Spektrum equipment.
The RX to FC protocols (SBUS counterparts) for Spektrum DSM2 is called SPEKTRUM1024, for DSMX it’s called SPEKTRUM2048.
Spektrum DSM2 and DSMX
DSM2 signal is more resistant to noise, interference and other transmitters transmitting on the same frequency. It also finds a backup frequency at start-up in case the primary frequency fails. This lower the chance of losing signal greatly, however if both channels becomes unusable you may still lose the connection.
DSMX was based on and improved from DSM2, which also uses the same econding scheme. The difference is the DSMX signal is able to switch to a new frequency channel in case of cut out within a couple of milliseconds, so in theory you wouldn’t even notice the glitch.
DSM2 is still a popular technology, if you are away from sources of radio interference (such as WiFi, microwaves, and wireless security cameras), it should work just as well as DSMX. But DSMX is just more reliable.
A Spektrum Satellite is an additional antenna and receiver circuit that usually gets connected to the “main” receiver to improve link reliability by providing diversity reception.
Frsky’s TX Protocols
Depends on which Frsky RF modules and receivers, different TX protocol is required.
- D16: for X-series receivers, e.g. X4R-SB, XSR, X8R
- D8: for D- and V-series receivers, e.g. D4R-II, D8R-II+, V8FR-II, VD5M, etc
- LR12: for the long range receiver L9R
TX and RX Latency
We do not have the proper equipment to test TX and RX latency yet, but fortunately our friend Dronemesh on Youtube have been doing this type of testing for many different kind of TX and RX.
In a radio control system, the latency happens in multiple places. There is latency between your sticks and the RF module on the TX (before it’s transmitted through the air). And also there is latency between the receiver and your flight controller.
This is the testing result captured from one of the testing video:
- Flysky i6X – 13.7ms
- Turnigy Evolution – 14.6ms
- Crossfire (on X10) – 19.5ms
- Frsky Horus X10 – 31.5ms
- Frsky QX7 – 36.3ms
- Spektrum DX6i – 41.5ms
Of course, the lower latency is better, but I don’t think that’s all the reason in choosing a radio. You should also consider the reliability of the connection, the features of the radio and so on. But really, can 15ms extra latency affect someone’s flying? Maybe, maybe not.
Furthermore there are speculations that the latency of the Flysky radio system actually increase with range while that of Frsky is more consistent. Hopefully someone will test this out thoroughly and find out the truth :)
- March 2015 – Article created for RX protocols
- July 2017 – expanded list of TX protocols
- Feb 2018 – added section about latency