The Evolution of ESC Communication Protocols
FPV drone ESCs (Electronic Speed Controllers) have evolved from simple PWM-driven devices to sophisticated microcontrollers running their own firmware with bidirectional communication. Choosing the right protocol affects motor response time, smoothness, noise characteristics, and even the ability to run advanced features like RPM filtering.
PWM: The Old Standard (Obsolete)
PWM (Pulse Width Modulation) sends a 1–2 ms pulse every 20 ms to signal the desired throttle position. It is analog, slow (50 Hz update rate), and provides no feedback from the ESC. If you are building a new quad today, do not use PWM. The exception is fixed-wing models with standard servos, where PWM remains the standard.
Oneshot125 and Oneshot42
Oneshot125 was the first upgrade from PWM. It sends a pulse between 125 µs and 250 µs, roughly 8 times faster than PWM. Oneshot42 reduces this further to 42–84 µs pulses. Both run at the PID loop rate, typically 1–4 kHz on older F3 and F4 flight controllers. While still functional, Oneshot protocols lack error detection and calibration can be inconsistent. They are now considered legacy.
Multishot
Multishot reduces the pulse range to just 5–25 µs, achieving update rates of up to 32 kHz. It was the last of the analog protocols before digital ESC communication took over. Multishot is faster than Oneshot42 but shares the same fundamental limitation: no checksum, no bidirectional communication, and no error detection. It is still used by some fixed-wing and long-range pilots who value simplicity.
DShot: The Digital Revolution

DShot (Digital Shot) changed everything. Instead of an analog pulse width, DShot sends a 16-bit digital frame containing 11 bits of throttle data, 1 telemetry request bit, and a 4-bit CRC checksum. The ESC can detect corrupted frames and reject them, eliminating the random motor twitches that plagued analog protocols. DShot comes in four speeds:
- DShot150: 150 kbps, 1067 steps of throttle resolution. Safe fallback for noisy electrical environments.
- DShot300: 300 kbps, 2048 steps. The most commonly used speed. Works reliably on practically every BLHeli_S and BLHeli_32 ESC.
- DShot600: 600 kbps, 2048 steps. Faster update rate for high-performance builds. Requires clean wiring and good signal integrity.
- DShot1200: 1200 kbps, 2048 steps. Cutting-edge speed for sub-3-inch racing quads. Not all ESCs support it reliably.
DShot300 is the recommended starting point for 99% of builds. It offers plenty of speed — a 300 kbps digital signal updates faster than your flight controller processes PID loops at 8 kHz — and has the widest compatibility.
Bidirectional DShot and RPM Filtering
Bidirectional DShot is the killer feature that makes DShot the clear winner over all analog protocols. While DShot normally sends data from the FC to the ESC only, Bidirectional DShot enables the ESC to send RPM telemetry back to the flight controller on every motor revolution. Betaflight uses this real-time RPM data for its RPM filter — a narrow notch filter that tracks the exact motor frequency and removes noise at that specific frequency.
The result is dramatically cleaner gyro signals. RPM filtering rejects motor noise so effectively that you can run lower overall filtering, which translates to less delay in the PID loop and a more responsive quad. Almost every competitive pilot runs Bidirectional DShot with RPM filtering enabled. To use it, flash your BLHeli_32 or AM32 ESCs with the latest firmware, enable Bidirectional DShot in the Betaflight Configuration tab, and set the RPM filter harmonics in the PID Tuning tab.
Protocol Decision Tree

Building a new 5-inch freestyle quad? DShot300 + Bidirectional DShot + RPM Filtering. Period.
Racing a sub-3-inch toothpick? DShot600 for the slightly faster update rate. Test DShot1200 only if your ESCs explicitly support it.
Refurbishing an older quad with BLHeli_S ESCs? Flash Bluejay firmware (open-source BLHeli_S alternative) to unlock Bidirectional DShot and RPM filtering on older hardware.
Fixed-wing FPV? DShot150 or Multishot. Bidirectional DShot offers less benefit on planes since RPM filtering is designed for multirotor motor noise patterns.
Which ESC protocol are you running? Have you noticed a difference after enabling RPM filtering? Let us know!
