There is a lot of confusion out there about RC protocols.
Partly because the hobby changes so fast that it’s hard to keep up with everything.
It’s also partly because there are just so many of them. Quadcopters are made up of many different parts and all those parts have to communicate with each other.
A protocol is the “language” that the parts use to talk to each other.
But here’s the problem:
All the parts use different protocols. The protocol that the transmitter uses to communicate with the receiver is different than the protocol that the receiver uses to communicate with the flight controller which is different than the protocol that the flight controller uses to communicate with the ESC’s.
So some components, like the receiver and the flight controller, have to be bilingual – they “listen” in one language and “speak” in another language.
It’s like a big game of “telephone” where every person is whispering to the next person in a different language.
There are multiple protocols for each. Different transmitters use different protocols. There are lots of different protocols for ESC’s.
You end up with dozens of different protocols you need to keep track of.
And the more you get into this hobby, the more you want to stay on top of all this so that you can be sure you are using the best technology.
This post will give a broad overview of all the different protocols and how they fit into the communication system on your quadcopter. Along the way I’ll have links to specific protocols in case you want to get into the details of any particular one.
Quadcopter Communication System Overview
Below is a diagram of the 4 main parts of a quadcopter and some of the protocols used to communicate between each of the parts.
As you can see from the picture, there are 3 main communication links in a quadcopter. You have communication between:
- Transmitter and Receiver
- Receiver and Flight Controller
- Flight Controller and ESC’s
Each of these links has different requirements, which is why different protocols are used.
Transmitter (Tx) to Receiver (Rx) Protocols
Communication between Tx and Rx needs to be wireless. This narrows the types of protocols that can be used because with wireless communication the protocol has to be secure, it can’t interfere with other wireless communication, it has to work with the frequencies that federal agencies have specified for RC use, etc.
Communication between Tx and Rx also has to be multi-channel. Transmitters need multiple channels of data (throttle, yaw, pitch, roll, etc.). Somehow the information from your Tx sticks, switches and knobs need to be packaged together and sent to the quadcopter. Not every protocol is capable of transmitting multi-channel information.
Here is a list of common protocols used for the communication between Tx and Rx:
Receiver to Flight Controller Protocols
Unlike communication between Tx and Rx, communication between Rx and FC is wired communication. However, this link still needs to send multi-channel info.
It is desirable that the protocol have low latency. Latency is basically the time it takes the receiver to “translate” the signal from the transmitter into the signal that it is going to send to the flight controller. Less latency means your quadcopter will respond quicker to what you tell it to do.
Here is a list of some of the more popular Rx to FC protocols:
Flight Controller to ESC Protocols
Communication between the FC and ESC’s is wired as well.
Also, in general the only thing that the FC has to communicate to the ESC’s is the speed. The flight controller takes info from the receiver and converts it into the speed that each ESC needs to turn each motor.
The FC also has to communicate to the ESC’s much more often than the receiver has to communicate with the FC.
Because human reaction time – the time it takes your fingers to respond to what you see – is about a quarter of a second (250 milliseconds).
However, during that time the flight controller is constantly making corrections to the quadcopter based on feedback from the various sensors (accelerometers, gyros, etc.) on the quadcopter. How quickly a flight controller makes these corrections is called “looptime.”
Looptime for most quadcopters is in the range of 0.125 to 1 millisecond. That’s 250 to 2000 times faster than your reaction time at the sticks.
Here is a list of the protocols for FC to ESC that you are likely to encounter in this hobby (this list is based off of what’s available in Betaflight FC firmware).
- Oneshot (Oneshot42, Oneshot125)
- Dshot (Dshot150, Dshot300, Dshot600)
By my count, I’ve listed over 20 protocols above.
That’s a lot.
But if you break it down into the 3 communication channels that the components use, it makes it a lot simpler. You could get by in this hobby with only using 3 protocols.
So hopefully this gives you a good framework from which to start learning more about the individual protocols listed above. I hope to write more in-depth articles about many of the protocols above in the future and will add links as I do.
In the mean time if you want me to let you know when I make new posts, make sure to sign up with your email address (over there =>) to receive updates. Otherwise leave comments below and I’ll get back to you as soon as possible.