RPM Filter is a great boost to flight performance, it’s recommended to enable it on any FPV drone whenever possible. Originally you had to pay to use RPM filters on BLHeli_S ESC, but now it’s free thanks to BLHeli_M firmware by JazzMaverick.
In this tutorial I will show you how to download and flash your BLHeli_S ESC with BLHeli_M firmware that enables RPM filter / bidirectional DShot and 48KHz/96KHz.
What’s RPM Filter?
RPM filter is a feature in Betaflight that improves the flight performance of your drone but it requires “bi-directional DShot” to be enabled first on your ESC. At first it was only possible on BLHeli32 ESC, I can’t believe we can now also have this great feature on our tiny whoops and micro quads :) Just amazing!
24KHz, 48KHz and 96KHz are the ESC PWM Frequency, in a nutshell, it’s how often the ESC drives the motor. By default, PWM frequency is set to 24KHz, and by flashing BLHeli_M firmware, allows you to choose higher PWM frequency.
Apart from cooler motors, setting PWM Frequency to 48KHz or even 96KHz can also improve efficiency (mainly on micro quads, it’s more noticeable on the tiny whoops and toothpicks). The increase of flight time varies from setup to setup, but from what I’ve gathered so far, it’s between 10% to 30%. Some even claims to have gained 50% longer flight time!
By increasing PWM frequency, it reduces the braking force on the motors. It resolves issues with excessive motor braking that sometimes occurs on tiny motors, such as 06XX and 08XX, and lowers current draw. Bigger motors generally don’t have this problem that’s why we don’t see the same level of efficiency improvement on larger quadcopters. And that’s probably why we might see diminishing improvement on larger micro motors, such as 11XX and 12XX.
Between 48KHz and 96KHz, you have to experiement and see which one works better, your quad might actually perform worse when PWM frequency gets too high, so it’s definitely not “higher is better”. 48KHz is probably a safer option if you are unsure.
There is concern if 48KHz will affect damping effectiveness (active braking), let us know if you notice any difference in performance after enabling 48KHz.
There are two aftermarket firmware that allow you to run RPM filter and 48KHz/96KHz in BLHeli_S ESC:
- BLHeli_M (JazzMaverick)
With JESC you have to purchase a license for each ESC ($5 for 4), while BLHeli_M is completely free and this is what we are going to use in this tutorial. As far as i know there is little to no performance difference between the two firmware.
For safety, please remove propellers before proceeding.
Download and Flash BLHeli_M Firmware
Download BLHeli_M Configurator here: https://github.com/Asizon/blheli-configurator/releases
Unzip and install it on your computer.
The interface might look identical to the original BLHeli Configurator, but it offers additional options like PWM frequency and Commutation Enhancement.
Click the “Flash All” button at the bottom, and select 16.9 BLHeli_M Official firmware in Version. ESC code name should be selected automatically.
After flashing 16.9 to your BLHeli_S ESC, bi-directional DShot is enabled by default so you can enable RPM filter in Betaflight.
There are a few additional settings in BLHeli_M, and here’s my recommendations:
- Set PWM frequency to either 48KHz or 96KHz. Experiment which works better for your quad
- Set CE to Async-PWM
- Set ESC FF to OFF
And that’s it! You can now go flying :)
If somehow flashing fails and bricks your ESC, you can try “reviving” them by flashing old BLHeli-S firmware via C2 interface.
Old JazzMaverick Firmware (Obsolete)
The rest of the guide is the old way of flashing JazzMaverick’s firmware and it’s no longer required thanks to the BLHeli_M configurator.
Firstly find out the code name of your ESC. You can find out by connecting them to the BLHeli Configurator (how to). You can see your ESC code name in the title of each ESC, for example, mine is G-H-30 as shown in the screenshot below.
What does the code name mean?
- The first letter is the hardware configuration of the ESC
- The second letter, H for BB2 MCU and L for BB1 MCU
- The last numbers are the dead-time value
Now go to JazzMaverick’s firmware repository: https://github.com/JazzMaverick/BLHeli/tree/JazzMaverick-patch-1/BLHeli_S%20SiLabs
WARNING! Avoid newer BLHeli_S firmware versions from JazzMarerick after 16.73 as they might be unstable with RPM Filtering.
According to Betaflight Developers, the author made undesirable changes that reduce the rate at which RPM telemetry data is supplied. As a result the RPM filtering will not track the motor vibrations well, resulting in poor filtering performance and possibly hotter motors. (source)
At the moment, the 16.73 version is the only recommended version that properly supports RPM filtering.
However if you are using BLHeli_M configurator, it’s safe to flash version 16.9.
There are so many versions, which one? When I see “RC” in the description, I usually avoid as it’s release candidate (still in beta). Choose the newest one without RC. Within the folder, choose 48K one.
Find your firmware file following the name you found in BLHeli Configurator. Look, I found mine! (This file is not for you, this is only an example!)
Click on the link, will bring you to a new page full of numbers and letters. But don’t panic :)
Right click on the “Raw” button on the top right, and select “Save link as” to save the file on your computer. It should be a .hex file.
Now go back to BLHeli Configurator, press the “Flash All” button and press “Select File Manually“.
And choose the hex file you just downloaded, BLHeli Configurator will flash all four of your ESC’s with the new firmware.
Once done, you should notice the firmware number has been updated in the configurator.
Your BLHeli_S ESC should now support bidirectional DShot, and you can move on to Betaflight Configurator to finish the rest of the setup. Good luck!
- Jan 2020 – guide created to show how to flash JazzMaverick’s 16.73 BLHeli_S firmware
- May 2021 – updated guide to show how to flash BLHeli_M firmware