Betaflight RPM Filtering: Hardware Setup, Debugging, and Flight Performance Gains — 2026 Guide

Your quad wobbles on hard turns not because your PIDs are wrong, but because the gyro is seeing motor noise that doesn’t exist in reality. RPM filtering solves this by telling the flight controller exactly what frequency each motor is generating, so the notch filters can chase the real noise instead of guessing. Here’s how to set it up correctly and verify it’s working — skipping the theory and going straight to what matters.

Hardware Prerequisites: What You Actually Need

Before touching Betaflight, verify your hardware supports RPM filtering. Half the “RPM filtering not working” posts on forums come down to incompatible ESCs.

Step 1: Confirm BLHeli_32 or AM32 Firmware

RPM filtering requires telemetry-capable ESC firmware. Connect to your ESCs via the BLHeliSuite32 or AM32 configurator. Look for the firmware version in the bottom-right corner. You need BLHeli_32 revision 32.7 or higher, or any AM32 build from 2023 onward.

If your ESCs run BLHeli_S (not BLHeli_32), you have two paths: flash Bluejay firmware (free, supports bidirectional DShot) or replace the ESCs with BLHeli_32 units. Bluejay on BLHeli_S hardware works for 90% of pilots, but if you’re racing at the competitive level where every millisecond of latency matters, BLHeli_32 hardware gives measurably lower jitter.

Verification: Open the ESC configurator, read setup. The firmware field should show “BLHeli_32” with version ≥ 32.7, “AM32”, or “Bluejay” with version ≥ 0.19.

Step 2: Enable Bidirectional DShot in Betaflight

Navigate to the Configuration tab in Betaflight Configurator. Under “ESC/Motor Features,” set the ESC protocol to DShot300 or DShot600 (DShot300 is enough — DShot600 doesn’t improve RPM filtering accuracy, just eats more CPU). Toggle “Bidirectional DShot” to ON.

What happens if you skip this: The Motors tab will still spin motors, but Betaflight won’t receive RPM telemetry. Your notch filters stay static. Mid-throttle oscillations persist.

Save and reboot. Go to the Motors tab, plug in a battery, and spin motor 1 with the master slider at exactly 1000 (just barely spinning). Under “Motor 1,” the RPM field should read 100-300 RPM — not zero, not “Error.” If all four motors show RPM values, bidirectional DShot is working. If any show zero or “Error,” check your ESC firmware version and wiring (telemetry comes over the same signal wire — no extra connection needed for DShot).

Step 3: Configure the RPM Filter Slots

In the PID Tuning tab, scroll to the “RPM Filter” section. Set:
RPM Filter Slots: 2 (default). Two harmonic slots per motor is the sweet spot — 1 slot misses the second harmonic, 3 slots eats unnecessary CPU. If you’re running an F411 processor, use 1 slot.
RPM Filter Q: Start at 400 for the first flight. Lower values (250-350) notch more aggressively but can cut into useful gyro data. Higher values (500-700) are gentler. On a clean build with soft-mounted FC, 400-500 works for every quad I’ve tuned.
Minimum Frequency: Leave at 100 Hz. This prevents the RPM filter from trying to notch prop wash frequencies (<50 Hz), which need the dynamic notch filter instead.

Pitfall: If you set Q too low (below 250), the RPM filters become so narrow that they miss the actual motor noise band — you’ll still see oscillations and wonder why RPM filtering “doesn’t work.” I’ve seen pilots chase this for hours thinking their ESCs were faulty.

RPM Filter Parameter Comparison Table

Parameter Recommended Value Effect if Too High Effect if Too Low
RPM Filter Slots 2 (F4/F7), 1 (F411) CPU overload, slower loop time Second harmonic unfiltered
RPM Filter Q 400 (start), adjust per build Filters too wide, noise passes through Filters too narrow, misses noise band
Min Frequency 100 Hz Wastes filter slots on low-frequency propwash Leaves very low noise unfiltered (rarely an issue)
DShot Protocol DShot300 Higher CPU load, zero filtering benefit Telemetry errors below DShot150
Motor Poles 14 (most 5-inch motors) RPM reads ~4x too high RPM reads ~4x too low

Common Mistakes & What Most Pilots Get Wrong

Mistake 1: Enabling RPM filtering without verifying RPM telemetry in the Motors tab. The toggle in Configuration means nothing if the ESCs aren’t actually sending data back. I’ve seen builds where “Bidirectional DShot” was ON but the Motors tab showed Error on every motor — the pilot flew for weeks thinking RPM filtering was active when it was doing absolutely nothing. Fix: Always spin each motor individually in the Motors tab (battery plugged in, props off) and verify RPM ≠ 0.

Mistake 2: Setting RPM Filter Q based on someone else’s build. Your frame stiffness, motor bearing condition, and FC mounting all change the noise profile. A Q of 300 on a stiff racing frame might be perfect; the same Q on a flexy long-range frame with worn bearings will notch too aggressively and introduce latency in pitch/roll correction. Fix: Fly, record blackbox, check the FFT spectrogram. If the motor noise peaks are fully notched and the gyro trace is clean, your Q is right. If residual peaks remain at motor frequencies, lower Q by 50 and retest.

Mistake 3: Assuming RPM filtering replaces the dynamic notch filter. RPM filters handle narrowband motor noise that shifts with RPM. The dynamic notch handles broader structural resonances and propwash — these are entirely different frequency bands. Disabling the dynamic notch because “RPM filtering is enabled” produces quads that fly like they’re drunk below 30% throttle. Fix: Keep both enabled. RPM filter slots = 2, dynamic notch = ON, gyro notch filter 1 = 200 Hz center, gyro notch filter 2 = 300 Hz center.

Mistake 4: Running RPM filtering on an F411 processor with all features enabled. The STM32F411 at 8K/4K loop times with RPM filtering, dynamic notch, GPS, and OSD will hit 65%+ CPU load. Above 50%, the PID loop starts missing deadlines — you get micro-stutters that feel like tuning problems but are actually the processor crying. Fix: Drop to DShot300, reduce RPM filter slots to 1, disable accelerometer if you don’t use angle mode. Target <40% CPU in the bottom bar of Betaflight Configurator.

As we covered in our Betaflight PID Tuning From Scratch guide, RPM filtering is the foundation that makes aggressive PID values possible. Without clean gyro data, you’re tuning around noise — not flight dynamics.

If you’re diagnosing noise that persists after enabling RPM filtering, our FPV Drone Oscilloscope Diagnosis guide walks through tracing electrical interference from motor to OSD chip, and our FPV Drone Gyro Notch Filter Deep Dive explains when to lean on dynamic notch filtering versus RPM filtering.

Video Reference

⚠️ Regulatory Notice: The flight recommendations in this article should be followed in accordance with the latest 2026 drone regulations in your country or region. Always verify local laws regarding flight altitude, no-fly zones, remote ID requirements, and registration before flying. Regulations vary significantly between the FAA (US), EASA (EU), CAA (UK), CAAC (China), and other authorities.

RPM filtering demands clean power delivery — electrical noise on the ESC rail feeds directly into the gyro through the flight controller’s power supply. The uavmodel F7 Mini Stack includes a dedicated low-ESR capacitor onboard and filtered 5V/9V BEC outputs that keep sensor power rails silent, so RPM filtering works with real-world hardware noise rather than fighting power supply artifacts. Available in 20×20 and 30.5×30.5 mounting patterns.

Leave a Comment

Scroll to Top