The communication protocol between your flight controller and ESCs directly affects how responsive and reliable your drone feels. Understanding ESC protocols like DShot, OneShot, and PWM helps you choose the right settings for your build. This guide explains each protocol, its advantages, and when to use it.
Table of Contents
- Protocol Evolution
- Standard PWM
- OneShot125 and OneShot42
- DShot: The Digital Revolution
- Comparison Table
- Which Protocol to Use
- Frequently Asked Questions
- Conclusion
Protocol Evolution
ESC protocols have evolved from slow analog signals to fast digital communication:
- Standard PWM (2000s): 50 Hz analog signal from RC hobby servos
- OneShot125 (2015): Faster analog, 8x speed improvement
- DShot (2016+): Fully digital, noise-immune, with error checking
- Bidirectional DShot (2019+): ESC sends RPM data back to flight controller
Standard PWM
Standard PWM (Pulse Width Modulation) was the original ESC protocol borrowed from RC servo control:
- Signal: 1000-2000 microsecond pulse at 50-490 Hz
- Speed: 1-2 ms latency per update
- Noise immunity: Poor — analog signal susceptible to electrical noise
- Calibration: Required for each ESC
- Use case: Legacy builds, GPS drones with ArduPilot, non-FPV applications
OneShot125 and OneShot42
OneShot protocols shortened the PWM pulse to reduce latency:
- OneShot125: 125-250 microsecond pulse. 8x faster than standard PWM
- OneShot42: 42-84 microsecond pulse. Further reduction
- Still analog: Subject to noise and calibration issues
- Use case: Transitional protocol, mostly replaced by DShot
DShot: The Digital Revolution
DShot (Digital Shot) replaced analog pulses with a digital bit stream:
- DShot150: 150 kbit/s — slowest DShot, compatible with older ESCs
- DShot300: 300 kbit/s — good balance of compatibility and speed
- DShot600: 600 kbit/s — standard for modern builds
- DShot1200: 1200 kbit/s — fastest, requires quality wiring
Key advantages of DShot:
- No calibration needed: Digital values are absolute, not relative
- CRC error checking: Corrupted commands are rejected, preventing motor glitches
- Noise immune: Digital signal ignores analog electrical noise
- Bidirectional: With BDShot, ESCs report real-time RPM back to the flight controller for RPM filtering
Comparison Table
| Protocol | Type | Speed | Error Check | Calibration |
|---|---|---|---|---|
| PWM | Analog | 50-490 Hz | No | Required |
| OneShot125 | Analog | ~4 KHz | No | Required |
| DShot300 | Digital | ~9.6 KHz | CRC | None |
| DShot600 | Digital | ~18.2 KHz | CRC | None |
Which Protocol to Use
- DShot600: Default recommendation for all new builds. Use unless you have a specific reason not to
- DShot300: If DShot600 causes issues (long ESC signal wires, noisy environment), step down to DShot300
- Bidirectional DShot: Enable if your ESC firmware supports it for RPM-based motor filtering in Betaflight
- PWM: Only for ArduPilot-based GPS drones and legacy ESCs that do not support DShot
Frequently Asked Questions
How do I know if my ESC supports DShot?
Almost all modern ESCs running BLHeli_32 or BLHeli_S firmware support DShot. Check the ESC product page or flash the latest firmware using BLHeliSuite.
What is RPM filtering and why does it need bidirectional DShot?
RPM filtering uses real-time motor speed data to dynamically notch out motor vibration frequencies. This requires bidirectional DShot so the ESC can report RPM back to the flight controller. It dramatically improves flight smoothness.
Can I mix protocols on different motors?
No, all four ESCs must use the same protocol. The flight controller sends identical protocol signals to all motor outputs.
Conclusion
DShot600 with bidirectional communication is the gold standard for modern drone builds. It eliminates calibration hassles, provides error checking, and enables advanced features like RPM filtering. Unless you are working with legacy hardware, there is no reason to use analog protocols in 2026.
Build your drone with quality ESCs from our drone parts collection.
Add comment