RC Radio Receiver Protocols: PWM, PPM, SBus, DSM2, DSMX, SUMD

When it comes to radio receiver (RX) protocols, acronyms are often used: PWM, PPM, SBUS, DSMX etc. In this post we will explore the differences of these RC radio receiver types.

These radio receiver protocols can be confusing to beginners, but often times we don’t need to bother with most of them. Still, It’s good to know the basic differences between these radio communication protocols, so you don’t buy the wrong one. We will also have a look at some of the technology, and see how it makes flying more reliable and safer.

The “protocols” we are referring to here are the communication between RX and flight controller.

  • PWM
  • PPM
  • PCM
  • SBUS
  • IBUS
  • XBUS
  • MSP
  • SUMD
  • SUMH

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-receiver-flight controller-connection

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.

ppm-receiver-flight controller-connection-one-wire

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 Protocols

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.

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

Graupner SumH

SUMH is a legacy Graupner protocol. Graupner have issued a firmware updates for many recivers that lets them use SUMD instead.

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.

What is Spektrum, 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.

Popular TX to RX (wireless) protocols includes

  • FrSky
  • FASST
  • DSM
  • DSM2
  • DSMX
  • A-FHSS
  • Hi-Sky
  • FlySky

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.

Update (01/11/2016) – Spektrum radio protocol was recently hacked which raised concern.

Spektrum Satellite

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.

Article first created in March 2015, last updated in Nov 2016.

38 thoughts on “RC Radio Receiver Protocols: PWM, PPM, SBus, DSM2, DSMX, SUMD

  1. Alberto

    Hello Oscar.

    Firstly, thanks for your posts.
    I would like to know if any SBUS receiver would works in any compatible SBUS transmitter.
    As an example, I am wondering if SBUS receiver could be linked to my Radioling AT9S.

    Thanks in advance.
    Regards.

    Reply
    1. Oscar Post author

      SBUS is a receiver to FC protocol, it has nothing to do with the TX.
      It depends on which SBUS receiver you are talking about.

      Reply
  2. Wim

    Dear Oscar,

    I just want to double check. Is Futaba Sbus compatible with FrSky Sbus?
    I mean can I use Futaba sensors on a FrSky receiver? And vise versa?

    With kind regards,
    Wim

    Reply
  3. james

    will my flysky th9x work with AR8010T 2.4GHz 8-Channel Air Integrated Telemetry Receiver by Spektrum that is DSMX/DSM2 transmitter capable

    Reply
  4. Alex Zarenin

    Hi Oscar,
    In my recent projects i have been using DSM2 satellite receiver without the “main” receiver. Satllite receiver outputs nice digital codes for each channel using standard UART protocol. I tested several satellite receivers – the only difference I found was the “framing” code – the special code that they put at the start and end of the channel packet. Some details of the protocol are available in my DIYDrones post diydrones.com/profiles/blogs/orange-rx-satellite-receiver-and-lemon-rx-uart-enabled-receiver.
    Regards,
    –Alex

    Reply
  5. sameer

    can we use the quadcopptr by bluetooth module……how we connect the bluetooth module +arduiono+kk 2.1.5 board together ,so that i control the quadcopptr …..plzhelp

    Reply
  6. Christof

    Thank you for this. Excellent overview. Finally I found a good explantion that answered my questions.
    Best
    Christof

    Reply
  7. Richard Schmidt

    HI Oscar9 cap radio with a spektrum DMSX DM* transmitter module installed. In the aircraft I have a Spectrum AR 600 receiver. I cannot get the Fail Safe to operate properly. Everything else works. Once everything is bound, I turn off the transmitter and the motor in the aircraft goes to high throttle instead of low throttle?
    I called Horizon and they told me that this arrangement won’t work… I have flown this many times before…
    Richard

    Reply
  8. jorge herrera

    Hello Sir ; Is the Graupner MC- 32 Pro transmitter compatible with Spectrum Airmod moduls , in order to use MC-32 radio with Spectrum DSM2 transmition protocol . I know they are with weatronic and IFS protocols . Best regards . Jorge Herrera.

    Reply
  9. James

    Hi, I think your explanation is slightly misleading. You are using a non-standard definition of the term “serial”. In serial communication, in contrast with parallel communication, multiple signals are multiplexed (or encoded) into a single stream. In this sense, both PPM and PCM are serial, while PWM is parallel. The difference is that PPM is analog serial and PCM is digital serial. As such, serial is not necessarily lossless (by which I think you mean “with error checking”). Error checking is the responsibility of the individual protocol, i.e. SBUS, XBUS, etc.

    Reply
    1. Oscar Post author

      thanks for the feedback James.
      This was written a few years back, my writing was terrible. I will update this as soon as i can.

      Reply
    2. Randall M.

      Hello,

      I am an electrical engineer with college degree. There is nothing wrong with his explanation of serial and to say its “non-standard” makes no sense as there is no standard.

      Oscar wrote: “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. ”

      A serial bus with only on wire to carry the serial data stream is called half duplex. Full duplex is the bus type that used to be provided on computers (remember the DB9 connector with a Tx and Rx pin). Serial simply means the data arrives in a stream. Parallel means the data bits are broken into parts and sent simultaneously.

      The other day I looked at the pinout for the Pixhawk on the arducopter website and I seem to recall that the uart bus had Txd and RxD pins or full duplex.

      Reply
  10. Mark Duren

    Hi Oscar,
    I have an old (1995?) Futaba 9cap TX that will transmit in either PCM or PPM select ably from the menu. There were PCM systems going back to the mid 80s (Futaba J series -just fyi) They didn’t catch on for one reason that the RXs were much more expensive and the PCM system had a non-selectable fail safe that would cause considerable delay, similar to the Specktrum reboots on their early systems.
    As is apparent , I have been around RC for a while but the new protocols are a bit confusing. Thanks for lifting most of that. The one area that is still confusing to me is where the protocols are used and when they can be used. The old Futaba CAP9 mentioned earlier has a FrSky telemetry module installed (DFT) that allows me to convert the PPM signal from the TX to ACCST. That connects to the RX (D8R-2+). What are the protocol output choice from the RX?

    Thanks for taking the time to help us understand.
    Mark

    Reply
  11. Danny

    Hi Oscar,
    This is the first time I’ve built the Quadcopter and I want to control my quad via the PC. I searched in Google alot but I can’t find the good way to control. I’ve download the multiwii joystick firmware and used the gamepad to control via RF UART SI4463 (I use one module RF which is connected with PC via USB-TTL CP2102 to make the transimmter, the other one is connected with UART bus in Crius board). In GUI MultiWii, the sensors data was sent to PC through COM port (2 modules RF is working correctly), but I pressed the button from gamepad to control and I saw nothing happened in my quad – motors is not armed. I don’t know What I missed?. I’ve thought that using other arduino board to active the throtte pin in crius but nothing worked. Could you give me any advice for this case? Thanks a lot…

    Reply
  12. Huberer

    Hi Oscar,

    this is a great blog.
    Quote: S-Bus needs an Inverter for Naze32
    Do you mean just a Signal converter (high -> low AND low -> high) i.e. a simple Transistor and 2 resistors? or a Inverter gate?

    Thanks for your great answers
    Peter

    Reply
  13. Odino

    Hi Oscar: I have a orange 3ch S-bus long antenna and I have a Dx6 Spektrum radio for my quav 250: the rx have a problem after a crash and I would like replace it: I use the S-bus for use one shot on my esc kiss12A and find a alternative rx with S-bus DSM2/DSMX to my DX6 but not Orange rx: you can give me a tip for a rx S-bus of good quality DSM2 / DSMX Spektrum compatible? thanks and greetings: Odino from ‘Italy.

    Reply
  14. Oscar Jr.

    Hi Oscar,
    thanks for sharing this valuable information. I’ve just missed a word about Tx/Rx based on SLT protocol (Tactic).

    Reply
  15. Vito

    Hi Oscar,
    I’m not sure if this is where I might post questions, but I’ll try.
    I really have no idea what I’m working with. It’s a Graupner MC-20 with a HoTT GR-24L and a HoTT GR-12L receivers and both a Pixhawk px4 and a Vector FC +OSD.
    My Problem is that I can get the receivers to bind, but there is no signal to the FC boards to calibrate the system.
    My problem could be with the transmitter settings, the FC board setting or something else.
    I have tried to get answers from the FC board, the radio manufacture and the usergroup forums. I still don’t have any answers to get the system working. Maybe you can help.

    Reply
  16. Martin C

    Hi Oscar,

    I have an Atom CC3D connected to an R9D receiver via an SBUS connection. I would like to use an AR9020 receiver instead so I can use my DX9 radio…. does the AR9020’s srxl port act like an sbus port or will I need to get a PWM harness to connect the two?

    Reply
  17. michael

    Hi Oscar Im building a blackout mini h quad and I’m using a spektrum dx8 transmitter with Ar8000 spektrum Rx.
    Can I us the ppm setup on the naze acro 32 flight controller or do I have to connnect all those wires the connect the RX to the flight controller?

    Reply
    1. Oscar Post author

      I am not familiar with Spektrum devices… just a quick google on Ar8000 spektrum Rx, it tells me that you will need a PPM encoder use connect PPM to Naze32…

      Reply
  18. Jim s

    Hi Oscar,
    I’m putting together my first 250 quad from scratch and have a naze full mullet board and a fly sky th9 x radio and 8 ch reciever the same as you have pictured on the top of this section. I don’t know much about ppm or Pwm as a matter of fact I didn’t know I had an Ibus until reading your blog. I’m using clean flight to configure the board. I could have bought a ready to fly quad and spent less than I have so far but wouldn’t have learned anything. My question to you is will my fly sky radio and reciever work with the naze 32 and how would I wire it to the naze.

    Reply
    1. Oscar Post author

      yes it will, i think the flysky th9 RX only works on PWM, connector +/- on the Naze to any + and – on the RX, and RC pins on the Naze to the signal pins on the RX, you only connect as many channel as you need up to 8…. choose “parallel PWM” in receiver mode.

      Reply
  19. David

    Hi Oscar
    I’m new to multicoptors but have been flying rc planes for years. In building my first I’m going to use the naze32 flight controller. in reading the spec. sheet it is compatible with cppm and herein is my question.
    I have lot’s of 72 mhz radio equipment. IF using my JR SA600 72mhz radio which is a “ppm” is the reciever going to give the naze32 the proper input ?

    I don’t even know if I’m wording my question properly… But I hope you can understand it somewhat.

    Thanks for the help. I’m trying not to have to invest in a new 2.4g system.

    Reply
    1. Oscar Post author

      Hi David
      so is your receiver able to output in CPPM (aka PPM) mode?
      Naze32 can only take CPPM / PWM without any additional converters.

      Reply
  20. gabriel

    Hi Oscar
    I am new in multicopters.
    Don´t know if it is a stupid question, but i have the flame whell f450 with naza m v2, i am trying to control the naza m v2 with arduino, can i use a pwm signal in entrances x1,x2,x3,x4?

    Reply
    1. Oscar Post author

      Hi, probably… but why don’t you follow the traditional method of controlling, ie using a radio transmitter and receiver? It would be easier and safer if you are new.

      Reply
  21. Anthony

    Hi Oscar so I’m new to all this I learned on the Alias and jjrcx6 tarantula but I wanted to build one so I built the rotor ones by flitest actually pretty fun to build also for what they recommend for electronics from rtf quads. My question I got a Graupner mz18 and I’m trying to figure out if this will even work since I see that Graupner used sumd and the electronics are dsm2 and dsmx. Can it be done or do I have to use the Graupner reciver. Basically trying to bind that lemon 6 channel to radio and use rtf quads flight controller any help would be awesome got 4 days to see if I like radio or send it back for a spektrum cause I know that works with rtf quads stuff sorry for long post

    Reply
  22. Ethan La Moure

    Hi Oscar

    I have four 18a Kiss ESC’s that I want to install and run oneshot with. I have the modded (with Deviation 4.0.1) Devo 10 radio and both the Walkera rx1002 and the rx601 receivers. I’m using PWM currently with an OpenPilot CC3D evo FC with an 8 pin receiver port, flexi port, main port, usb hid port and usb vcp ports. I have the option in OpenPilot to choose PWM, PWMsync or Oneshot125. Can I do this with my current PWM tx/rx and CC3D FC? Do I need a PPM signal to utilize the oneshot programming?. If so can I use a converter of some sort in conjunction with my tx/rx and the CC3D? I also have a an unused Flip32 in the drawer.

    Thanks for your time and for providing a wealth of experience and information for us all.

    Easy – E

    Reply
    1. Alf Skaar

      Hi Oscar
      Vortex Setup Devo 10 (Deviation) and RX703A PPM and Fail Safe is on CH5

      see for more info
      rcgroups.com/forums/showpost.php?p=31893045&postcount=1718

      Alf

      Reply
  23. Alesandro

    hy everybody i’d like to try the oneshot on my escs flashed with blhely suite, but on my cc3d board i have a pwm rx so i can’t to enable the oneshot. my answer is: using a ppm encoder can i use my pwm rx on my board in s bus port? . if it’s possible i can use in the wizard panel the ppm reciver option wich enable the oneshot flashed escs. release 15 of open pilot gcs.
    thanks.

    Reply
  24. Tom

    Good evening Oscar,

    This is my first comment on your blog.
    Quite new to multicopters, I am the happy owner of a DJI F450 with Naza V2 since last September and I recently decided to build a 250 racer. This is what brought me to your blog earlier this week.
    I’ve got to say it is truly a GOLD MINE who ever is interested in this hobby (like me) and I can hardly leave this website. Thank you very much for all this information you share with us. Everything is clearly explained and well documented so it helps a lot to understand how RC and multicopters work. Quite amazingly, RC protocols were still unclear for me and today I had still a lot of questions in my head but no answer. Guess what today’s post is about? Bam!, RC protocols. You’re genius man, you can read my mind.
    OK, I have a few questions here:
    Is it right to say that PCM and PWM are the same thing?
    About Serial protocols, you say that the Naze32 “can read UART input, but cannot accept inverted one” which is required for S Bus. So I guess the Naze32 should not be compatible with S Bus? That is not what you say in your post “Choose flight controller for quadcopter and hexacopter”. Am I missing something?

    Thanks again for sharing your knowledge with us,
    Tom.

    Reply
    1. Oscar Post author

      Hi Tom
      haha, maybe I can read your mind :D
      Actually PCM is another types of radio signal, which i forgot to mentioned. I have added the info now.
      It’s a “very close friend” of PPM, but it’s digital coded and supposedly more reliable. It’s been around more than a decade now in RC hobby, But I still haven’t seen anyone use it yet around me.
      Yes you can use SBUS with Naze32, but you just need a SBUS-PPM converter, or a SBUS inverter (Hope i am still catching up with the latest technology development on this one ! :D )

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

Are you Robot? *

I don't look at blog comments very often (maybe once or twice a week), so if you have any questions related to multirotor please post it on this forum IntoFPV.com... You're likely to get a response from me faster on there.