Betaflight RPM Filtering Setup: Bidirectional DShot, Dynamic Notch, and Motor Noise Reduction — 2026

Your motors generate noise at a frequency proportional to their RPM. Every wobble in the bell, every slightly mismatched magnet, every micro-imbalance in the prop — it all shows up as noise in the gyro signal. Traditional low-pass filters treat that noise with a blunt instrument: they cut everything above a fixed frequency, including real stick inputs near that boundary. RPM filtering is a scalpel that cuts only at the exact noise frequencies your motors are producing, in real time, leaving the rest of the signal untouched.

The result on a well-tuned build is night and day: no propwash oscillations, no mid-throttle jitter, and motors that run 5-10°C cooler because the PID loop isn’t fighting phantom noise.

Prerequisites and ESC Preparation

RPM filtering requires bidirectional DShot — your ESC must send RPM telemetry back to the flight controller. This only works on BLHeli_32 (all versions) and BLHeli_S with JESC or Bluejay firmware. If you’re still running stock BLHeli_S firmware from 2020, this is your sign to flash Bluejay.

Step 1: Flash Bluejay on BLHeli_S ESCs

Download the Bluejay configurator from esc-configurator.com. Connect a LiPo (props off) and plug in via USB. Select your ESC target — most modern BLHeli_S ESCs are “S-H-50” or “S-H-90” depending on dead-time. Flash the latest release (0.21 or newer). Verify the flash by reading settings — PWM frequency should read 24kHz minimum (48kHz is quieter, costs about 2% efficiency). Set startup power to 0.50 (default 0.75 often causes desync on 2306+ motors).

What happens if you get this wrong: flashing the wrong dead-time target (H vs L) causes the ESC to misread zero-crossing events. The motors will stutter at idle and desync under any load above 30% throttle. If the motor chirps 3 times but won’t spin, you flashed the wrong target — reflash immediately.

Step 2: Enable bidirectional DShot in Betaflight

In the Motors tab, set ESC/Motor protocol to DShot300 or DShot600. DShot300 is sufficient for RPM filtering (the telemetry bandwidth is the same) and has slightly lower CPU load on F4 processors. Check the “Bidirectional DShot” checkbox. Save and reboot.

Verification: go to the Motors tab, plug in a LiPo, and spin each motor individually using the sliders. The “RPM” column should show a live RPM value. If it reads 0 or “Error,” the telemetry wire isn’t connected or the ESC firmware doesn’t support bidirectional DShot. Common failure point: on some 4-in-1 ESCs, the telemetry pin on the connector is mapped to a non-standard UART. Check your ESC’s pinout diagram.

RPM Filter Configuration

Dynamic Notch Filter

The dynamic notch tracks the motor RPM peak and applies a narrow-band filter that follows it. In the PID Tuning tab, under Filter Settings:

Setting Recommended Value Effect if Too Low Effect if Too High
Dynamic Notch Range LOW Skips 2nd/3rd harmonic noise No downside — use LOW
Dynamic Notch Width 0 (Auto) Notch too narrow misses harmonics Wider notch cuts into signal
Dynamic Notch Q 200 Notch too broad, eats responsiveness Notch too narrow, misses noise sidebands
Dynamic Notch Min Hz 80 Misses low-RPM noise (idle jitter) Wastes CPU on sub-80Hz filtering
Dynamic Notch Max Hz 500 Misses noise from 8S/9S builds Cuts into 500Hz+ control bandwidth

The dynamic notch Q value of 200 is Betaflight’s default and works on 90% of builds. If your gyro spectrogram shows a tall skinny noise peak at motor RPM, lower Q to 100 to widen the notch. If the noise peak is wide (indicating multiple motors with slightly different harmonics), raise Q to 300.

Static Notch (Gyro Notch Filter 1 and 2)

With RPM filtering active, you can disable both static notch filters on the Gyro. Go to the Filters tab and set Gyro Notch Filter 1 and 2 to “0 Hz” (off). The dynamic RPM notch handles what these used to cover.

Exception: if your frame has a structural resonance — a frequency where the entire frame physically rings like a bell — you need a static notch at that frequency. Find it by arming with props on, holding the quad firmly, and watching the gyro spectrogram in Betaflight Configurator. A sharp spike at 180-300Hz that doesn’t change with motor RPM is a frame resonance, not motor noise. Set one static notch at that exact frequency with Q=400.

Gyro Lowpass Filters

With RPM filtering handling motor noise, you can relax the gyro lowpass significantly:

Filter Without RPM Filtering With RPM Filtering Rationale
Gyro LPF1 Type PT1 PT1 Lower latency than PT2/PT3
Gyro LPF1 Cutoff 250Hz 350Hz RPM filter handles motor noise band
Gyro LPF2 Type PT2 PT1 PT2 unnecessary with RPM
Gyro LPF2 Cutoff 500Hz 600Hz Opens control bandwidth
D-Term LPF1 Cutoff 150Hz 200Hz D-term noise reduced by RPM
D-Term LPF2 Cutoff 250Hz 300Hz Same reasoning

These settings give you roughly 2-3ms lower total filter delay compared to the traditional (non-RPM) filter stack. That’s the difference between a quad that feels “connected” and one that feels “rubbery” during quick stick movements.

CPU Load Check

RPM filtering + bidirectional DShot adds CPU load. On F4 processors, check the CPU load in the bottom bar of Betaflight Configurator — it must stay under 40% with armed motors. If you’re above 40%, reduce PID loop frequency from 8kHz to 4kHz (the flight performance difference is invisible, and RPM data arrives at ~2-3kHz anyway). F7/H7 processors will stay under 15% with everything enabled.

Common Mistakes & What Most Pilots Get Wrong

1. Enabling RPM filtering without flashing ESC firmware first. The checkbox in Betaflight doesn’t magically add telemetry support to stock BLHeli_S firmware. You’ll get constant “RPM Filter” error flags in the OSD and the dynamic notch will sit at its minimum frequency hunting for data that never arrives. Flash Bluejay or JESC before you check the box.

2. Running DShot1200 with RPM filtering on an F4. DShot1200 spews telemetry packets at 1500Hz per motor. An F4 processor trying to handle 6000 incoming RPM data packets per second alongside an 8kHz PID loop will choke. CPU load spikes past 60%, the PID loop skips cycles, and the quad develops a random “twitch.” Stick to DShot300 or DShot600 on F4.

3. Leaving both static notches enabled. The dynamic notch plus two static notches creates a filter stack that’s cutting signal in three overlapping bands. The quad feels sluggish because your stick inputs in the 100-300Hz range are being attenuated by redundant filtering. Disable the static notches unless you’ve confirmed a frame resonance.

4. Forgetting to re-tune D-term after enabling RPM filtering. RPM filtering reduces noise in the D-term signal by 40-60%. With cleaner data, you can typically raise D gains by 5-8 points on pitch and roll. If you don’t re-tune, you’re leaving sharpness on the table — the quad will feel stable but soft on flips and rolls.

5. Using bidirectional DShot on a 4-in-1 ESC with an unconnected telemetry wire. The 8-pin connector on most 4-in-1 ESCs includes a telemetry pin (usually pin 5 or 6). Plugging the ESC-to-FC harness in doesn’t guarantee this pin is connected — many AIO boards route it to a pad that requires manual soldering. Check continuity with a multimeter. No continuity = no RPM data = no RPM filtering.

⚠️ Regulatory Notice: The configuration recommendations in this article should be implemented in accordance with your local 2026 drone regulations. Betaflight firmware modifications, ESC flashing, and filter tuning may affect flight characteristics — always test changes in a controlled environment before flying in public areas. Ensure any modified drone remains compliant with your regional authority’s requirements for remote ID, altitude limits, and operational safety standards.

For a deeper dive into what your blackbox logs are telling you after enabling RPM filtering, check out our Betaflight Blackbox Log Analysis guide. If your motors are running hot despite clean gyro traces, our FPV Motor Sizing Guide covers the relationship between motor size, KV, and sustained RPM efficiency. And if you’re starting fresh, our Betaflight PID Tuning Masterclass walks through the full tuning workflow that follows RPM filter setup.

To take full advantage of RPM filtering, you need an ESC that delivers clean RPM telemetry with sub-1% error. The T-Motor F55A Pro II 4-in-1 ESC runs BLHeli_32 natively with bidirectional DShot support out of the box — no firmware flashing required. Its current sensor accuracy (±2%) and low-noise gate drivers mean the RPM data your flight controller receives is as clean as the signal driving your motors.

Leave a Comment

Scroll to Top