Q: The Filter Toggle That Turned a Wobbly Quad Into Butter: RPM Filtering in Betaflight

Updated 4 min read

Quick Answer

RPM filtering in Betaflight uses real-time motor speed data from your ESCs to surgically remove motor vibration noise from the gyroscope signal. It requires bidirectional DShot and a compatible ESC (Bluejay, BLHeli_32, or AM32). Once enabled, most quads fly dramatically smoother with no extra tuning.

The Build That Stopped Wobbling

We had a customer's 5-inch freestyle build on the bench last month that vibrated so badly the FPV feed looked like a washing machine. Blackbox logs showed motor noise peaks at 220Hz that the dynamic notch was chasing but never catching. We swapped props, checked motor balance, even tried a different frame. The fix? A single toggle in Betaflight: bidirectional DShot, which activates RPM filtering. Thirty seconds later the same blackbox showed a flat gyro trace. The quad hovered like it was on rails.

RPM filtering is the biggest flight quality improvement in Betaflight since dynamic notch filtering. We enable it on every build that leaves our workshop. Yet we see customer builds come in every week where it is disabled or misconfigured, usually because people tried it and got desync from incompatible ESC firmware.

What RPM Filtering Actually Does

Your gyro picks up two types of noise: random vibration and motor noise, a predictable frequency that shifts with throttle. Before RPM filtering, Betaflight used a broad dynamic notch filter to guess where motor noise sat. It worked, but was slow to react and ate into useful signal.

RPM filtering removes the guesswork. Your ESCs report exact motor RPM back to the flight controller via bidirectional DShot. Betaflight then creates narrow notch filters at the precise motor noise frequency and its first two harmonics. The result: motor noise is removed with surgical precision, and your PID controller gets a cleaner signal.

We covered general filter behaviour in our Betaflight filters guide, but RPM filtering is different because it uses real motor data rather than FFT estimation.

Prerequisites: What You Need First

1. DShot protocol. You must run DShot300 or DShot600. See our DShot vs Multishot comparison for why.

2. Compatible ESC firmware. Three options support bidirectional DShot:

  • Bluejay (BLHeli_S ESCs) - free, open source, works on most 4-in-1 boards
  • BLHeli_32 - built into higher-end ESCs like the Foxeer Reaper F4 128K
  • AM32 - open source, on modern ESCs like the MicoAir AM32 55A

Not sure what firmware your ESC runs? Our ESC firmware flashing guide covers it.

3. Correct motor pole count. Betaflight needs to know how many magnetic poles your motors have to convert eRPM into actual RPM. Most 5-inch FPV motors have 14 poles (7 pole pairs). Count the magnets inside the motor bell to be sure. Set this in Configuration under Motor Poles.

Step-by-Step Setup

Step 1. Open Betaflight Configurator, go to Configuration.

Step 2. Under ESC/Motor Features, set Motor Protocol to DShot300 (or DShot600 for racing builds).

Step 3. Enable Bidirectional DShot.

Step 4. Set Motor Poles (typically 14 for 5-inch, 12 for 3-inch whoops).

Step 5. Save and Reboot.

Step 6. Go to Motors tab. Spin each motor slowly and check that RPM values appear and look realistic. Zeros mean your ESC firmware does not support bidirectional DShot.

Betaflight automatically enables RPM filtering when bidirectional DShot is on. Verify in PID Tuning: RPM Filter Harmonics should show 3, minimum frequency around 100Hz. These defaults work on every build we have tested.

Common Problems We See on the Bench

All motors show 0 RPM: ESC firmware does not support bidirectional DShot. Flash Bluejay or AM32. The SpeedyBee F405 V5 stack uses OX32 firmware, which supports bidirectional DShot natively on its 32-bit ESC.

One motor shows 0 RPM: Bad solder joint or damaged ESC pad on that motor. Re-flow the joints.

Motor desync after enabling: Usually DShot600 on long motor wires. Drop to DShot300. If it persists, set dshot_burst = OFF in CLI. We see this on older BLHeli_S ESCs with marginal hardware.

No improvement: Motor poles are wrong. A 14-pole motor set to 12 puts notch filters at the wrong frequency.

FAQ

Q: Does RPM filtering work on whoops and micro builds?

A: Yes. Several ESCs in our ESC collection support Bluejay and AM32 at 20x20mm mounting. The benefit on whoops is smaller but still noticeable on 2-inch and larger builds.

Q: Can I use RPM filtering with analogue video?

A: Absolutely. RPM filtering improves gyroscope signal quality, which affects flight performance, not video. For video jello, see our vibration checklist.

Q: Do I need to retune PIDs after enabling it?

A: Usually no. You may find you can raise gains slightly because the cleaner gyro signal lets the controller respond more aggressively without oscillation.

Q: RPM filtering versus dynamic notch?

A: Dynamic notch uses FFT analysis of the gyro signal to estimate motor noise frequency. RPM filtering uses actual motor speed data from the ESCs, so it is faster and more precise. With RPM filtering on, Betaflight reduces dynamic notch to a single backup filter.