It was only about a year ago when we were all getting excited about a new BLheli-S ESC firmware (the S is for special). But now the developers have been working on something extra special, called BLheli-32. This 32bit firmware introduction covers the important things you need to know about. BLheli32 will be supported from BetaFlight V3.2
- Runs on ARM 32bit MCU (much faster than 8bit MCU on BLheli-s, runs Dshot1200 now, but faster in future)
- Direct configuration of ESC from flight controller using Dshot commands.
- Programmable PWM frequency (up to 48Khz) - allows for much smoother motor operation
- Automatic Motor Timing - helps run your motor at maximum efficiency with robustness against desync. You can also manually fine tune the motor timing to get maximum power from your motor.
- Current and Voltage Limiting - helps prevents your ESC failure
- Bidirectional mode improvements
- Ability to set the motor brake force
- ESC Telemetry Support
- Maximum Motor Acceleration - can be set to prevent desync on some motors under high acceleration.
Some of these features are not fully implemented yet but are part of the initial release plan.
BLheli_32 is closed source :-(
I will not go into the debate, but ultimately this means that all BLheli-32 ESC's are going to be a little more expensive since manufacturers need to pay the developers a licensing fee. I was disappointed to see that the 32bit version is now closed source.
Steffen Skaug, the original developer of BLheli said that as the project grew, so did the workload. Blheli-32 was created from scratch and they decided to enable them to get some returns on all the effort they have put into the project, while also stopping clones. This will allow the BLheli developers to push ESC performance and the hobby to the next level.
You still need to use BLHeli suite
BLHeli suite v31+ will support the 32bit ESC, which means if you run MAC or Linux you might have some problems. To make it worse the BLheli configurator chrome app will not support BLheli32 right now.
The main reason for this is that when you flash new firmware, BLHeli suite connects to the internet to verify the ESC serial number to make sure it is an official ESC. The one upside of this is that the market will not be flooded with knockoff ESC's.
Why is 32bit better?
Apart from the extra computing power available to developers, the most significant advantage is the fact that the code can be written in
C. This makes it significantly easier to work on new code and features. The initial BLheli and BLheli-S firmware are
Assembly based. So I expect the 32-bit firmware to get significantly better as the project continues. Also since the developers are now getting a monetary reward for their efforts through licensing fees, there is more motivation to make it worth it.
Dshot vs Multishot - Speed is not everything
Just a quick mention to say that I don't think the main advantage of BLheli32 is the speed. The guys working on the RaceFlight project introduced the multishot protocol a while ago. Multishot is a much more simplified protocol, so it means that on today's 8bit MCU they can run at 32Khz, reducing overall latency. However, with Dshot you need to run BLheli32 to get the same update speeds. The main advantage of Dshot is the fact that it is a digital protocol so you can send commands to your ESC. This is where the versatility of Dshot will become apparent. For example, you can send a command to tell your motors to beep, and when to tell it to stop beeping, or tell your ESC to enter bi-directional mode while in flight (so you have full throttle resolution when you don't need bi-directional mode). I can't think of any other use cases but I am sure we will see some cool features in the future.
Where can I get my BLHeli-32 ESC?
I will be writing a separate article to list off of the official BLHeli32 ESC's soon. For now we are selling the Wraith32 Series ESC, which are the first production units to be sold.
I should mention that there are other 32bit ESC's on the market that supports Dshot such as the racer33. These run custom firmware that is not BLHeli32.
Apart from the performance improvements, I like the fact that they have added current protection support. This will only be supported with ESC's that have a current sensing resistor (like the wraith32). By using this feature, if the current draw gets above the value you set, the ESC will reduce the power to the ESC to prevent it overheating (like when the motor gets jammed on a crash). This in combination with the temperature monitoring on your ESC MCU will mean that its unlikely you will fry an ESC from overloading it! One thing I am not sure about is the calibration procedure of the current sensor.
Automatic Motor Timing
Automatic timing is great when you are not sure about what you are doing. With automatic timing, the ESC will ensure that your motors run as efficiently as possible. However, this will mean your motors are not running at max power, which is not ideal for FPV racing.
However, you can also manually set the timing between 1 and 31 to fine tune your ESC for your motor setup for maximum power. Usually, the medium setting will work fine for most motors. In the old BLheli-S firmware you can only choose between 5 values that correspond to 0/7.5/15/22.5/30 timing advance.
This setting lets you tell your ESC to limit the power sent to the motor within a given millisecond. This feature is useful if you are having desync issues with your motor under heavy acceleration (when your motor chirps and looses power when you increase throttle rapidly). You can set this between 0.1% to 25.5% per millisecond.
So if you set it to 15, this means that the power sent to the motor cannot increase by more than 15% per millisecond. If you have desync issues you should try to get this to be as low as possible to get the most power out of your motor.
As mentioned before ESC telemetry is on the plans for BLheli32. Aerosurfer noticed that on the wraith32 ESC, they have a UART port on them (still to be documented). But one advantage is that you can use the current sensor from the ESC for your flight controller, and if the ESC can send other info back to the FC, the flight control algorithm can get extra info about motor state such as RPM to improve performance and tuning.
So that the main things I think will be great about BLheli32, and the main downside is no more open source (but it is fair that they get paid for all the work). If you have any questions or comments let me know in the comments section!