BLHELI is a firmware for ESC's. BLHELI_32 is the newer and improved version (generation 3 of the BLHELI firmware - after BLHELI and BLHELI_S) utilizing 32 bit processors on the ESC. The main job of ESC firmware is to control the speed of your motor and thus the timing for switching the motors phases. In this article we will discuss major differences between the new BLHELI_32 and the predecessor BLHELI_S.

So how do those firmwares differ in functionality?

One of the main factors is the protocols the ESC supports in order for the flight controller to communicate with it. Nowadays this communication is mostly digital and in many cases it is one form of Dshot.

Dshot comes in multiple variants: 150, 300, 600, 1200. The difference between Dshot versions is the amount of time it takes for one data packet to be sent from the flight controller to the ESC. This means, the higher the Dshot number the faster you can transmit data from your flight controller to your ESC, the more responsive your quadcopter is. If you can actually feel the difference between, for example, Dshot 600 and Dshot 1200 is up to your pilot skills and how used you are to one or the other.


The difference from Dshot 600 to Dshot 1200 if a factor of about 2, meaning the time it takes to send one data packet on Dshot 1200 only takes have the time that it takes on Dshot 600. On Dshot 600 it takes 26.7us to send one data packet, on Dshot 1200 it only takes 13.4us.

Dshot 1200 is only available on ESC's with BLHELI_32 firmware - so this is the first major difference.


The second major difference is, that BLHELI_32 has telemetry, meaning it can send data back to the flight controller. The ESC can sent metrics like RPM, temperature and current draw back to the flight controller. This enables you to show all those information in your OSD.


Further BLHELI_32 may be configured with Dshot commands directly from the flight controller. It also allows current limiting, meaning the current output per ESC may be limited to a certain value.

Open source

Another major difference is that, BLHELI_32 is no longer open source. BLHELI and BLHELI_S were written in assembly language and were open source. The new BLHELI_32 is a complete rewrite in C and ESC manufacturers have to pay a licensing fee to the BLHELI developers in order to use the firmware.