1st October 2022
There are several types of ESC protocol and ESC firmware available for quadcopter. In this article we will give a little history and explain the technical differences. Most importantly I want to try and clear up some of the confusion beginners experience from such a wide selection.
When I started in the hobby, connecting an ESC to a flight controller was pretty straight-forward. But now there are much more to consider: ESC settings, protocols, firmware etc. All these options can be confusing and overwhelming for someone just starting out in this hobby.
ESC firmware is the software that runs on every ESC. It determines what ESC settings you can change, which protocols are supported, and what configuration interface can be used. The firmware that an ESC is allowed to use depends on the hardware.
Here is a list of the different ESC firmware available for mini quad:
Two of the earliest options for open source ESC firmware were SimonK and BLHeli, and these firmware were used on the majority of ESC’s until around 2015. Since then BLHeli has taken over the market due its more user-friendly interface and consistent development.
As ESC technology continues to evolve, newer BLHeli firmware is being written specifically for the advances in hardware.
In 2016, BLHeli_S was released as an upgrade to the BLHeli firmware for the BusyBee processors (BB1 & BB2 chips).
In 2017, the 3rd generation BLHeli, BLHeli_32, was created to take full advantage of the additional processing power available from 32-bit processors we are beginning to see on newer ESC’s.
Nowadays, all ESC’s come with firmware pre-installed, most commonly BLHeli_S or BLHeli_32 depending on the hardware. Anyway this should be clearly stated in the product description.
BLHeli_S and BLHeli_32 ESC’s are what I personally would recommend these days. They have the best performance and cutting edge features, and still being updated on a regular basis.
For BLHeli_S ESC, you can optionally flash Bluejay firmware to unlock certain features that are only available on BLHeli_32 ESC, such as bi-directional DShot and custom startup sound. It truly brings the performance to the level of the more expensive BLHeli_32 ESC.
ESC Protocols are the “languages” that the flight controller and ESC use to communicate, for example, how fast the motor should be spinning.
Here are all the ESC protocols currently available for a Betaflight FPV drone, and their respective signal width – the time it takes to send one data packet (click the links for more info):
- Standard PWM (1000us – 2000us)
- Oneshot125 (125us – 250us)
- Oneshot 42 (42us – 84us)
- Multishot (5us – 25us)
- Dshot150 (106.8us)
- Dshot300 (53.4us)
- Dshot600 (26.7us)
- DShot1200 (13.4us)
Before 2015, there was only one ESC protocol, standard PWM, but as hardware was getting better, faster protocols became possible: Oneshot125, Oneshot42 and Multishot. These protocols are all analog signals similar to standard PWM, but much faster (less delay). These protocols are synced to the PID loop in the flight controller to reduce jitters, improve performance and reduce delay between stick inputs and the reaction of the craft.
DShot is the latest ESC protocol which is a digital signal. It’s the future of ESC protocol in my opinion because of its better reliability and performance, and the ability of sending not only motor speed, but specific commands to the ESC’s. directional DShot is also possible, which means the ESC and FC can have a two-way communication, the ESC can send motor RPM data back to the FC, it made RPM filtering and other advanced PID features like dynamic idle possible.
Between DShot300/600/1200, the faster protocol is better at latency, but is not always better as it’s actually more prone to corrupted packets. It’s suggested by Betaflight that we should select a suitable DShot speed based on the PID Loop Frequency.
- 2K PID Loop Frequency, use DShot150
- 4K PID Loop Frequency, use DShot300
- 8K PID Loop Frequency, use DShot600
And realistically, the latency of the different DShot is in micro seconds, IMO the impact on performance is probably not meaningful, if so I would love to see some proof. And the increased chance of packet corruption might have a bigger impact.
I hope this guide gave you an overview of all the ESC software and protocols. Please don’t hesitate to leave me a question or comment.