In this article, we will delve into the latest advancements in electronic speed controller (ESC) technologies, focusing on the BLHeli_S firmware, hardware pulse-width modulation (PWM), and 32-bit microcontrollers (MCUs). Authored by Adriel Perkins, our exploration aims to demystify these innovations for everyday users.
BLHeli_S – Revolutionizing Firmware
BLHeli_S, an evolution of the BLHeli firmware, marks a significant leap forward in ESC technology. Originating from the BLHeli 14.5 base firmware, BLHeli_S enhances its predecessor by harnessing the capabilities of newly developed ESCs like the Aikon SEFM 30A. Here are the key enhancements introduced in BLHeli_S:
- Enhanced Throttle Response: BLHeli_S offers a smoother throttle response compared to earlier versions. This improvement is driven by the integration of hardware PWM, supported by two specific MCUs: the BusyBee1 at 24MHz and the BusyBee2 at 48MHz.
- Stable Synchronization: The firmware maintains excellent sync-holding characteristics akin to the foundational BLHeli software.
- Damped Light Mode: BLHeli_S continues to support the damped light mode, optimizing braking and reducing motor noise.
- Synchronous Motor PWM: The motor PWM is now synchronized with the MCU master clock and is generated via hardware, which significantly quiets motor noise.
- Refined Throttle Steps: The throttle resolution varies depending on the hardware configuration, including MCU clock speed and driver type, ranging from 512 to 2048 steps.
- High Motor Speed Capability: The BusyBee1 MCU can support motor speeds up to 350k eRPM, while the BusyBee2 is capable of reaching up to 500k eRPM.
- Versatile Signal Compatibility: BLHeli_S supports standard 1-2ms input signals, along with Oneshot125, Oneshot42, and Multishot. The ESC automatically detects the type of input signal received.
These advancements promise to transform the performance of multirotors, enhancing both efficiency and flight dynamics.
For those interested in further insights into ESC technology, check out our buyer’s guide: https://oscarliang.com/esc/.
Hardware Changes
The improvements in electronic speed controllers (ESCs) stem directly from advancements in the hardware they use. As highlighted by SSKaug, the new generation of ESCs incorporates two advanced microcontrollers (MCUs): the BusyBee1 (EFM8BB10F8) and the BusyBee2 (EFM8BB21F16). These MCUs differ significantly from the previous Silabs chips used in many ESCs, primarily because they utilize hardware pulse-width modulation (PWM) synchronized to the duty cycle, rather than software PWM.
The key advantage of employing dedicated hardware for generating PWM is the doubling of the speed at which ESCs relay values to the motors. Traditional BLHeli ESCs using software-generated PWM signal motors at a rate of 16 kHz. With hardware PWM, this rate increases to 36 kHz, allowing motors to receive input more rapidly and enhancing responsiveness. For instance, KISS ESCs, known for their hardware-generated PWM, are acclaimed for their exceptional smoothness and response.
Is 32-bit ESC better than 8-bit?
Currently, the Aikon SEFM 30A ESC is the only model under testing with the BLHeli_S firmware, but many more are expected to follow. Some of the top competitors to the Aikon during its release include:
- KISS 24A RE ESCs
- DYS XM20A and 30A ESCs
- XRotor 30A and 40A (40A may also be BlHeli_S capable, unconfirmed)
- SEPM32 ESC
- VGood Firefly ESC
Three of these models—the KISS 24A RE, SEPM32, and VGood Firefly—feature 32-bit processors capable of handling more processing and storage. The remaining ESCs typically use 8-bit processors.
While more processing power is usually advantageous, in the realm of ESCs, there’s currently no notable performance difference between 32-bit and 8-bit processors. In the future, as coding for these devices becomes more complex, 32-bit processors might become essential. From a programming standpoint, 32-bit ESCs can be coded in C++ due to their increased memory, whereas 8-bit ESCs require assembly language. This distinction only matters if you’re a programmer who is familiar only with C++ and not inclined to learn assembly.
Personally, I am thrilled about the advancements in BLHeli technology. Having used BLHeli for many years and experimented with other firmware like SimonK, it’s incredible to see how far ESC technology has evolved and the significant impact it has had on the flight characteristics of multirotors. I eagerly anticipate testing these new ESCs and comparing them against others in real-world scenarios. Keep an eye out for these exciting developments!
21 comments
Novice question on quadcopter esc. I noticed that quadcopter esc’s are cheaper than other esc’s. That makes me want to use them in a different way. I am trying to build a low cost underwater thruster to move a fishing line out about 100 yards then stop. I do not want to add a speed dial controller or wireless controller to limit cost. My plan is to use a dc timer and set a cut off time interval. Will a quadcopter esc fit the bill? Can I program the quadcopter esc to use a default speed on lack of wireless signal and just run at a selected speed. Can you recommend an esc and or programmable interface? This is the thruster.. hawk hobby 860rpm 16v hp 300watts on Amazon for 52.99. Thank you.
Hello,
I flashed my Hobbywing Xrotor 4in1 40a in connection with my Hobbywing F4 Flight Controller in BLHELI-Configurator on my imac and after flashing my 4 motors sounds clicking hard in staccato and both, BLHELI-Configurator and BLheli-Suite do not read my esc until now.
What can I do?
If you have a information, please tell me. Thank‘s.
Have a nice day,
Heinz
I´m having a problem of hot motors. I only tried them at hover and some flips but no fpv yet. Stock PIDs, all filters on, flip32 f4 fc, racerstar rs 30a lite s, dhsot600, 8khz/8khz, fc soft-mounted, screws not touching the windings. I tried going to dshot300 but motors still getting hot. Some told me to try multishot. Question is, esc´s where dhsot ready out of the box (cap removed from factory), do i have to flash them with a special firmware in order to get multishot working?
i have cicada 20a x2 esc and i need the blheli_s code firmware i have messed up bad
Are blheli_s escs going to be compatible with a fc designed for blheli protocal instead such as the lumenier lux
BLHeli is a firmware, it’s not a protocol :)
Yes any FC that is capable of outputing PWM or Oneshot or Multishot would work with bLHeli_S :)
How do I calibrate the Little Bee 30A ESC with BLHeli_S, in Betaflight/Cleanflight/BLHeliSuite? Thanks.
Hi There
I Have just received 4 XRotor 40A ESC (asian pacific) all the items passed “Anti-counterfeit Code” meaning that they are all genuine original.
When I was about to flush them with blheli I noticed that the PCB is different than the one seen in the blheli guide, on mine the MCU is F394 but it is turnd 90 degrees as well as the programming pinouts.
One other change is that the new ESC is using a new driver which is single IC is FD6288 where the old driver uses a 3 separate IC NCP5106B.
New Driver: FORTIOR FD6288 250v 3 phase HVIC.
Details:
Internal 200ns dead time.
link to the new driver:
fortiortech.com/en/produc…asp?id=133&i=3
I have contacted hobbywing and they have confirmed the the new circuit is genuine .
I have attached images of the new and old PCB.
I have ordered only 4 ESC, so if i fail to flush it with blheli I am left with only 3 ESC and no quad.
I couldn’t attache images, so I have opened a thread in the “diydrones” forum.
diydrones.com/forum/topics/xrotor-40a-changed-their-circuit-not-sure-if-i-can-flush-it-with
I couldn’t attache images, so I have opened a thread in the “rcgroups” forum.
rcgroups.com/forums/showthread.php?t=2725445&highlight=XROTOR#post35548743
Thanks
TechSgin
“C”, not “C++”….
What do you mean by XR40A “could” be compatible to blheli_s? i thought it needs to have a specific mpu like BusyBee1/2 ? Do you have any further informations on this? as it would be really great if i could try out blheli_s on my xr40a as people say its so smoooth :)
Greetings from Germany
You write: “Only if you’re a programmer and only know C++ not assembly and cannot take the time to learn the syntax.”
C++ is not just a different programming language compared to assembly, it’s more like the difference between drawing a cartoon film like about 100 years ago at the Walt Disney Company and producing the same film now with computers and animation software. In theory you can get the same result but drawing is probably at least 100 times slower.
Summary: C++ programmers will be able (at least in theory) to make huge changes in relative short time like hours compared to days with assembly.
That’s rubbish. A programmer profound to a certain MCU type does not need much more time. Otherwise no one would do so. Everything has its pros an cons. With assembler, programming a LCD user menu may be more painful, but programming hardware in real time environments is done quite fast, and most important: It is 1:1 exact, so 100% hardware predictable, and easy to change. Most inner core programs of medical devices, measurement equipment, and (as you can see here) ESC’s as well, are written in assembler, just to give a few examples. There is an ISO standard for life saving equipment that demands assembler code for core functionality. Stop yelling ‘it is old and obsolete’ just because you do not understand its purposes and benefits.
Anyone tried installing BLHeli_S on DYS XM20A ESCs? Is there any benefit? I want to try it on mine
They lack the required hardware (hardware PWM) to run blheli-s.
I don’t see any hex files for XM20A ESCs. Is that list just a running list of the best performing ESCs? Or is it a list of BLHeli_S compatible ESCs?
Their not running BLheli, but i really like the ESC32’s with its stm32, closed loop rpm mode and can-bus interface.
Don’t know why can-bus isn’t used more already for speed controller interface. I saw that the Kiss FC has room for a can chip, hope that others will follow.
You sure they’re 32bit? I’ve read this a few times now, but I’ve looked up the BusyBee MCU specs over at SiLabs, and they specifically call it an 8bit microcontroller (the EFM8 series the Aikon SEFM uses). The technical specs list an 8051 CPU, which is 8bit.
I think you’re correct. At least in the case of the DYS XS 20A, the MCU listed on Banggood is the Silabs EFM8BB2 which is 8-bit:
silabs.com/Support%20Documents/TechnicalDocs/EFM8BB2-DataSheet.pdf
Hi Adriel,
Why can’t we move the ESC processing to the flight controller? Back in the days, ESCs had to have logic because their input was PWM 1-2ms from an analog receiver, but in the multicopter era, all control signals come from an mcu. Putting mcu’s on all four ESCs cost money and makes for larger ESCs. And you have the added complexity of the interface between them, and us multicopter builders sit here on wonder how to get everything to talk to each other and keep in sync. If the mcu on the flight controller either provided PWM to the ESC FETs (or maybe the flight controller could also integrate gate drivers) it would bring complexity and and cost down. You would also know that “ESCs” (FETs…) are updated when the control algorithms had computed a new output value.
The only limitation I see is lack of I/O and hardware PWM. No mcu has (minimum) 12 of these unused. For example the all so popular STM32F103C8 has actually 12 hardware PWM channels and this is a low pin count mcu.
Are littlebee pros on this list ?
No. Littlebee Pro’s run regular BlHeli and use software generated PWM.