Setting up RPM filters in Betaflight is simple, you just need to make sure your FC (flight controller) and ESC (electronics speed controller) firmware are up to date. If you find the official guide overwhelming, this concise tutorial should prove helpful. RPM filter is designed to reduce motor noise, leading to improved flight performance. Many pilots consider the RPM filter the best filtering option in Betaflight, so it’s definitely worth exploring.
Looking for new ESCs that support RPM filtering? Check out my product recommendations: https://oscarliang.com/esc/#ESC-Recommendations
What is RPM filter?
Notch filters are highly effective at eliminating noise, resulting in less signal delay compared to low-pass filters with the same level of attenuation. You can learn more about filters in our Betaflight Filter 101 course.
The challenge lies in tracking the peak frequency of the noise. While the dynamic filter does this relatively well, it only tracks one frequency. Since the motors in a drone can spin at different RPMs (rotations per minute), they create noise at varying frequencies.
Betaflight’s RPM filter is a powerful tool that enables your drone’s flight controller to track the rotational speeds (RPM) of your motors through bidirectional DShot, and set a collection of notch filters right on that frequency and their harmonics. This feature helps eliminate vibrations caused by motors and propellers, ultimately enhancing flight performance.
Update ESC Firmware
REMOVE ALL PROPELLERS BEFORE PROCEEDING.
Update your BLHeli_32 ESC to the latest version (version 32.7 or newer), which allows “bidirectional DShot,” a necessary feature for the RPM filter. Here is how update BLHeli_32: https://oscarliang.com/connect-flash-blheli-32-esc/
For BLHeli_S ESCs, flash the Bluejay firmware to use RPM filters: https://oscarliang.com/bluejay-blheli-s/
Update your FC to the latest Betaflight version (4.1 or newer), see this tutorial on how to update Betaflight: https://oscarliang.com/flash-update-betaflight/
In the Configuration Tab, note your PID Loop Frequency. You can choose between 4KHz or 8KHz based on your preference and CPU load (ensure it’s no higher than 75% according to Betaflight Developers’ recommendations). F4 flight controllers typically allow for 4KHz, while F7 and H7 support 8KHz. If your FC uses the BMI270 gyro, you can only set it to 3.2KHz regardless the processor.
Go to the Motors Tab.
For 3.2KHz and 4KHz PID Loop Frequency, select DShot300 ESC Protocol. while for 8KHz, select DShot600.
For BLHeli_S ESC Users, options depend on the ESC processor: Use 4KHz or 3.2K (BMI270) looptime and DShot300 for “H” type ESCs (BB2 processor). Use 2K or 1.6K (BMI270) looptime and DShot150 for “L” type ESCs (BB1 processor).
Enable “Bidirectional DShot” and set the appropriate Motor poles.
To determine Motor Poles, count the magnets in the motor bell. General guidelines:
- 14 poles in 22XX, 23XX, 24XX motors
- 12 poles in 08XX, 11XX, 12XX, 13XX, 14XX, 16XX motors
Counting yourself is best to avoid surprises. If you put the wrong number in, filtering is not going to work properly (it won’t report the correct RPM).
In the Motors Tab, DShot Error might read “E:100%”, which is normal.
After connecting the battery, this should drop to 0%. If not, something is wrong—try a slower looptime if running 8K/8K.
If it reads “E: 0.00%”, now test the motors by gently raising the sliders to ensure they work properly.
In the PID Tuning tab, under Filter Settings, “Gyro RPM Filter” should be enabled automatically after enabling “Bi-directional Dshot”, but you should double check.
By default, the RPM filter targets 3 harmonics for each motor on each axis, totaling 36 notch filters. Adjusting the “Harmonics Number” may improve noise filtering performance or minimize latency, but three is typically sufficient.
After your flight controller reboots, enter “tasks” in the CLI.
Check if the “Gyro/PID rate/hz” value is close to your looptime (e.g., around 4000 for 4K/4K). If the difference is greater than 1% (±40), it’s considered unstable and you should lower the looptime and recheck.
Now, test-fly your quadcopter. It should perform well, but further tweaking of filtering settings can enhance its performance. I have a guide that goes into detail how to tune RPM filter: https://oscarliang.com/pid-filter-tuning-blackbox/#Filters-Tuning
By simply enabling RPM filter without doing anything else might make your quad fly smoother and keep motors cooler. But you should take advantage of the noise rejection from the RPM filter, to reduce the need for low-pass filters. This should result in better flight performance with less propwash.
Upon enabling the RPM filter, Betaflight automatically reduces the Dynamic Notch Filter (Notch count reduced from 3 to 1, Q factor narrowed from 300 to 500). Test your quad to see how it responds to this change.
If the motors remain cool, consider reducing Gyro and D Term filtering.
We will be using the two sliders on top of the filter tab (Gyro Filter Multiplier and D term Filter Multiplier). These sliders automatically adjust the filter values beneath them as you move them left or right.
First, try disabling the Gyro Lowpass 1 filter (but never disable Gyro Lowpass 2 for anti-aliasing purposes). If motors run cool, proceed. If not, re-enable Gyro Lowpass 1.
Next, gradually move both sliders to the right for less filtering, testing your quad after each adjustment. Check motor temperature and determine if you can reduce filtering further. Keep in mind that even with cool motors, insufficient filtering can negatively impact your quad’s performance—motor temperature is not the only factor!
This is just scratching the surface; for a deeper dive, check out my tutorial on how to properly tune filters using Blackbox: https://oscarliang.com/pid-filter-tuning-blackbox/#Filters-Tuning
Verifying RPM Filter is Running on Your Quad
To check if RPM Filter is active on your quad, go to the Motors tab in Betaflight and spin up your motor. Beneath the Throttle number, you should see an “R number,” which represents the real-time RPM of the motor.
If the R number is not present, then the RPM Filter is not active on your quad.
In conclusion, setting up RPM filter in Betaflight significantly improves your quad’s flight performance by reducing motor noise and vibrations. By following this tutorial, you can confidently enable and optimize RPM filters, allowing you to enjoy smoother flights and better overall drone performance. Happy flying!
- May 2019 – RPM Introduction published
- Jan 2020 – Setup tutorial added
- Sep 2022 – Updated “Remove Filtering” based on changes in Betaflight 4.3
- Apr 2023 – Updated Guide for BF4.4