Up to the previous article, we explained the drive methods. For an ESC to rotate a motor accurately, how it receives commands from the FC is also important. In this article, we compare the major protocols—PWM, OneShot, DShot, and DroneCAN—from the perspectives of response performance, noise immunity, telemetry features, and implementation cost.
Why Protocol Selection Matters
The FC calculates motor output based on the results of attitude estimation and sends commands to the ESC. The delay from when this command reaches the ESC until the motor responds determines the latency of the entire control loop.
In racing drones, the control loop runs at 8kHz or higher, so protocol delay becomes an issue in the tens of microseconds. In industrial drones, motor health monitoring and log analysis using telemetry (RPM, temperature, current) are required. Protocol selection affects all of these.
PWM—The Most Classical Protocol
This is an analog-style protocol derived from radio-controlled models. It represents throttle commands with a pulse width of 1 to 2ms, defined as 1ms = minimum output and 2ms = maximum output.
The transmission rate is typically 50Hz, with a maximum of around 490Hz. At 50Hz, the update cycle is 20ms.
The advantage is high compatibility. Almost all ESCs support it, making it useful when compatibility with older aircraft or receivers must be ensured.
The disadvantages are low update rates and low resolution. At 50Hz, updates are too slow for the control loop, failing to keep up with high-speed maneuvers. Also, even with 12-bit resolution for a 1ms width, there is a limit to the signal-to-noise ratio, and if electrical noise is added to the pulse width, the command value shifts.
In modern drone design, PWM is almost never used directly for ESC control. The transition to successor protocols is complete.
OneShot125 and OneShot42—Speeding Up PWM
OneShot125 shortens the pulse width to one-eighth of PWM (125–250µs) and increases the maximum rate to approximately 8kHz. Because pulses can be transmitted in synchronization with the FC's control loop cycle, the processing of the FC and ESC can be tightly coupled.
OneShot42 further shortens the pulse width (41.67–83.33µs), resulting in an even higher maximum rate.
These use the same analog signal format as PWM, so the noise immunity issue has not been resolved. The possibility remains that high-frequency noise could fluctuate the pulse width.
MultiShot is an even faster version of the OneShot series (5–25µs), achieving rates of several tens of kHz, but the noise immunity issue remains the same.
These protocols have lost their practical significance with the advent of DShot and are now considered legacy.
DShot—The Standard for Digital Protocols
DShot is a digital protocol that fundamentally solved the problems of PWM-based systems. Developed by the Betaflight community in 2015, it is the de facto standard in the current drone industry.
The signal format is a 16-bit digital packet. It consists of an 11-bit throttle value (0-2047), a 1-bit telemetry request flag, and a 4-bit CRC (Cyclic Redundancy Check). The CRC allows the receiver to detect data corruption.
Variants include DShot150, DShot300, DShot600, and DShot1200 depending on speed, with the numbers representing the bitrate (kbps). DShot600 is the most commonly used and has sufficient bandwidth for an 8kHz control loop.
Advantages:
- No command value deviation due to noise because it is a digital signal
- Corrupted packets can be detected and discarded using CRC
- Can return RPM to the FC when combined with telemetry functions (Bidirectional DShot, described later)
- High resolution of 11 bits (2048 steps)
Disadvantages:
- Unidirectional (standard is command only)
- Requires an independent signal line for each ESC
- 4 signal lines for 4 motors
Bidirectional DShot is an extended specification that enables RPM telemetry from the ESC to the FC over the same signal line. The FC can use this RPM information to track the Harmonic Notch Filter explained in the previous series. It is supported by both ArduPilot and Betaflight and has become a standard configuration in modern practical aircraft.
DroneCAN: A CAN-based Industrial Standard
DroneCAN is a protocol that uses the CAN bus and is particularly suitable for large and industrial aircraft. The advantages of differential signaling introduced in the first part of this series are utilized here.
At the signal level, the CAN differential signal design is fundamentally resistant to electrical noise. In the wiring harnesses of large aircraft where battery currents of tens to hundreds of amperes flow, single-ended DShot signals are prone to picking up induced noise, making the advantages of DroneCAN stand out.
In terms of bus configuration, multiple ESCs can be connected to a single CAN bus. Even for aircraft with 8 or 12 motors instead of 4, the wiring only consists of two CAN H/L pair lines and power. This significantly simplifies the wiring compared to the DShot method, which requires a signal line for each motor.
Telemetry is bidirectional by default, allowing the FC to periodically acquire RPM, voltage, current, temperature, error counts, and more. It has strengths in health monitoring, preventive maintenance, and log analysis for industrial aircraft.
Disadvantages:
- CAN-compatible ESCs are more expensive and have fewer options than DShot-compatible ESCs
- Requires CAN transceiver, termination resistor, and wiring design
- Implementation cost of the software stack (DroneCAN library)
- Response latency is theoretically slightly higher than DShot600 (not an issue in practice)
ArduPilot officially supports DroneCAN, as does PX4. Its adoption is increasing in industrial drones, large multicopters, and eVTOL development.
Summary of Protocol Comparisons
We will organize the decision criteria for protocol selection.
In terms of update rate, they speed up in the order of PWM (50–490Hz), OneShot series (several kHz), DShot (synchronized with control loop, 8kHz or higher possible), and DroneCAN (approx. 1kHz is the practical upper limit).
In terms of noise immunity, they rank in the order of PWM ≈ OneShot (analog and weak), DShot (digital and strong), and DroneCAN (differential signaling and strongest).
In terms of telemetry features, they range from PWM/OneShot (none), DShot standard (none), Bidirectional DShot (RPM only), to DroneCAN (multiple items such as RPM, current, voltage, and temperature).
In terms of wiring simplicity, DShot (signal lines for each motor) and DroneCAN (single bus, only two wires). DroneCAN is overwhelmingly advantageous for aircraft with a large number of ESCs.
Optimal Solutions by Application
For racing and FPV drones, DShot600 + Bidirectional DShot is the standard solution. It achieves both low latency and lightweight implementation.
For industrial and large drones, DroneCAN is optimal. It provides the perfect combination of noise immunity, telemetry, and wiring simplicity.
For hobby and educational use, DShot300 or DShot600 is practical. They are highly compatible with Betaflight and ArduPilot, and are easy to configure.
When developing a proprietary FC, we recommend considering support for both DShot (basic implementation) and DroneCAN (for industrial deployment) at the design stage in anticipation of future scalability.
Summary
The evolution from PWM to DShot and DroneCAN can be organized as a shift from analog to digital, and from single-ended to differential signaling. There is almost no reason to use PWM in modern drone design; DShot600 + Bidirectional is the de facto standard for racing, and DroneCAN is the de facto standard for industrial applications. Next time, we will explain the details of ESC power system design—input capacitors, gate drivers, and dead-time control.
