Blheli Suite

Document rev 16.x Operation manual for BLHeliS SiLabs Rev16.x BLHeliS firmware is the next generation code, following the base BLHeli code. The hardware PWM also allows you to control very high speed motors (up to 500k eRPM with some hardware). With the older BLHeli firmware and software PWM, the maximum speed signals can be sent to the motor was 16Khz.

We have official BLHeli_32 confirmation from BLHeli Developers. Let’s find out what it is about, what advantages it brings, and what changes there are moving forward.

BLHeli is an ESC firmware, and BLHeli_32 is the 3rd generation after BLHeli and BLHeli_S.

BLHeli_32 is written for ESC‘s that utilize 32-bit MCU (STM32F0 Cortex-M0 at 48MHz), unlike BLHeli and BLHeli_S ESC’s that runs on 8-bit processors. BLHeli_32 does not work with 8bit Atmel or Silabs ESC’s.

Check out this article to learn about ESC firmware.

The 32bit processor on BLHeli_32 ESC has faster clock speed than the 8bit processors in BLHeli_S ESC’s. But BLHeli_S has already set the bar high for performance, it would be interesting to see how much better BLHeli_32 is than BLHeli_S.

With the increased in processing power, faster input signals with lower latency and higher update rate would be possible in BLHeli_32, such as Dshot1200 or even faster protocols! (Read about DShot)

The most exciting news about the 32-bit platform is the possibility of future functionality and features that simply wasn’t possible on 8bit ESC’s, including

  • programmable PWM frequency of up to 48KHz
  • Auto-timing for higher efficiency and realiability
  • Current limiting (with built-in current sensor on ESC)
  • Adjustable “Brake on Stop” force
  • Improve direction change in Bidirectional mode
  • ESC Telemetry
  • Configuring from FC using DShot commands

48KHz PWM frequency and Auto motor timing have been reported to improve flight performance noticeably.

Note that these features are just ideas from the developer (aka sskaug) at the moment and haven’t all been implemented yet. Some of these sound familiar from the KISS 24A ESC’s. Anyway we should discover more about the new possibility as development continues.

The previous BLHeli and BLHeli_S are open source, however the developers have decided to close source the new 32bit firmware. Their names might maintain the same prefix, but we were told BLHeli_32 has been created from scratch. (BLHeli and _S are both Assembly based while BLHeli_32 is C based) ESC manufacturers will have to pay BLHeli developers a licence fee directly to use their 32bit firmware, therefore expect some increase in ESC price.

When asked why the project has become close-source, sskaug replied:

From starting as a personal project to make my mCPX helicopter brushless, BLHeli as come a long way. Some of the major milestones were when we decided to pursue the multirotor segment as well, still as a hobby project, where people flashed various (non BLHeli) ESCs with BLHeli FW. Still moderate activity and efforts. But then at some point, probably starting with the Littlebee, manufacturers started making dedicated ESCs for BLHeli FW. Which I think was a major step forward for the community, as now we have a plethora of very good ESCs for multicopters. Then there was a new milestone where we decided to pursue BLHeli_S, as smoothness of BLHeli was still inferior to other ESCs in the market. And by this time we had close to 20 manufacturers doing BLHeli_S! Supporting which is actually a significant workload.

So then came the next milestone – what was next? ARM 32bit MCUs were a pretty obvious choice, as they are flooding the market from various manufacturers and are getting quite cheap. But at least for me, I was at a point where I did not want to undertake the workload I knew would come without some returns. So this is where we are now, closed source with a modest fee for some returns on the work we actually do. While still supporting many manufacturers and keeping the generally low cost profile of BLHeli.

Hopefully BLHeli_32 will also serve the community well, and bring ESC performance and the hobby as a whole even some more steps forward.

Suite

One thing remains the same is using BLHeliSuite for flashing and configuring ESC’s, which is known to be incompatible with Mac and Linux but only Windows. BLHeli Configurator Chrome App was created to tackle this issue by third party developer Andrey Mironov,. But we found out that it won’t support BLHeli_32 since it’s close-source.

Here is how to connect to BLHeliSuite32 via FC passthrough.

BLHeliSuite will require an internet connection in order to flash/update firmware and configure settings, that probably means you can’t do it at the field easily. The serial number of the ESC has to be validated at the manufacturers, this is to prevent clones or illegal use of their firmware.

Suite

Here is a full list of ESC’s for mini quad, you can look up which ones support BLHeli_32 firmware.

I compiled the specification of all ESC’s for mini quad in this spreadsheet so you can compare them more closely.

Blheli 32 Suite Download For Windows

In order to run BLHeli_32 firmware, the ESC must be designed specifically for the firmware. That means 32bit ESC’s that already existed before the firmware was released might not work with BLHeli_32. Also note that some 32-bit ESC’s might only run their own factory firmware, so make sure you check before purchasing.

Blheli Suite Mac

SimonK is most widely recognized ESC firmware in multicopter world. But there is a second option, in many ways much better than SimonK firmware. It is called BLHeli. It supports many different ESC, including both Atmel and SiLabs based. Plus, it has a cool software that allows you to configure you ESC without programming card. Just connect your ESC via serial-to-USB interface and you are ready to go.

AfroESC were supposed to be state of the art controllers, SimonK out of the box, easy to flash thank to special USB interface/programmer. And ready to accept different software, BLHeli included. There is only one huge “but”. You can buy them, you can buy Afro USB Linker (Turnigy USB Linker is exactly the same), but nobody will tell you how to do it. Number of articles is very limited, and the only useful I’ve found is this one. So, here we go, now there will be a second one!

How to flash BLHeli to AfroESC

What you will need:

  • AfroESC (obvious)
  • Afro USB Linker / Programmer
  • Windows machine with drivers (keep reading)
  • LiPo battery, the same you use on your drone

Afro / Turnigy USB Linker (USB to UART CP2102) Windows driver can be downloaded from this site. Here I have additional, quite important remark: BLHeli Suite works inside virtual machines (tested on VirtualBox with Windows 7 32bit). So, Mac and Linux users: virtualization software can be used to program your ESC. If you have Windows license, start your virtual Windows machine, connect Afro / Turnigy USB Linker and create a filter to pass it through to Windows. Like that:

When everyting is prepared:

Blheli Suite Zip

Blheli

Blhelisuite

  1. Start BLHeliSuite and select correct interface (ATMEL SK Bootloader (Afro/Turingy USB Linker)
  2. Temporary remove middle wire from ESC connector (+5V) and connect it into Afro USB Linker
  3. Connect USB Linker to your PC, install driver and so on
  4. Select correct COM interface in BLHeliSuite. In my case it was COM3. It will be called “Silicon Labs CP210x USB to UART Bridge” so that should not be a problem
  5. Click “Connect”.Window will appear saying that you have to power ESC up. Do it by connecting battery.
  6. Software will tell you, that there is not BLHeli on ESC (what is good sign in our case) or that it failed to connect completely. If so, recheck driver and wiring and go back to step 1
  7. Click “Flash BLHeli”
  8. Select correct firmware. In my case it was Afro 20A Multi (Multi is for multirotor)
  9. Click “OK”, and confirm with “Yes” on next screen
  10. Aproximately 30 seconds later your ESC will be programmed with BLHeli firmware and you will be able to brag about it! Of course, you should program all ESC in your multirotor with the same firmware and the same settings. But that is simple