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

Your quad flies fine on default PIDs until you push it, then the motors get hot and the gyro trace looks like a seismograph during an earthquake. You’re fighting motor noise that your low-pass filters are either passing through or over-filtering into mush. RPM filtering solves both problems at once.

RPM Filtering Setup: Complete Walkthrough

1. Prerequisites: What You Need

RPM filtering requires hardware and firmware that support bidirectional DShot:
ESC firmware: BLHeli_32 (version 32.7 or later) or Bluejay (0.16 or later) on BLHeli_S ESCs. Check your ESC firmware version in BLHeliSuite32 or the ESC Configurator.
Flight controller: Any F4, F7, or H7 board running Betaflight 4.2 or later. Betaflight 4.4+ has significantly improved RPM filter implementation.
Bidirectional DShot enabled: In Betaflight Configuration tab, enable Bidirectional DShot under the Motor Protocol dropdown. Set the motor protocol to DShot300 or DShot600. DShot300 is sufficient for RPM filtering on most builds—DShot600 provides marginal improvement at the cost of higher CPU load on F4 processors.

If you’re running BLHeli_S ESCs and haven’t flashed Bluejay yet, refer to the flash process. Bluejay’s 48kHz PWM mode combined with bidirectional DShot is currently the best bang-for-buck upgrade for older hardware.

2. Enable Bidirectional DShot in Betaflight

  • Go to the Configuration tab.
  • Set ESC/Motor Protocol to DSHOT300 or DSHOT600.
  • Enable the Bidirectional DShot toggle below the protocol dropdown.
  • Save and reboot. After reboot, open the Motors tab. You should see error percentages for each motor in the RPM column. Values below 1% are normal. If you see 100% errors on all motors, bidirectional DShot is not working—check your ESC firmware version.

3. Configure the Dynamic Notch Filter

The dynamic notch tracks the motor RPM peak in real time and applies a narrow, deep notch filter exactly at that frequency. This removes motor noise without affecting the rest of the gyro signal.

On the PID Tuning tab, under Filter Settings:
Dynamic Notch Filter: Set to ON.
Dynamic Notch Width Percent: Start at 0 (narrowest). Increase to 10-15% if you see multiple harmonics needing attenuation.
Dynamic Notch Q: Start at 200 (narrow, deep notch). Decrease to 120-150 for broader attenuation if the single notch isn’t enough.
Dynamic Notch Min Hz: 90Hz (below typical motor idle frequency).
Dynamic Notch Max Hz: 600Hz (above typical max motor RPM for most 5-inch builds; increase to 800Hz for high-KV micros).

4. Configure RPM Harmonic Filters

RPM harmonic filters are banks of fixed notch filters placed at integer multiples of the motor RPM frequency. Each harmonic handles a different slice of the frequency spectrum.

On the PID Tuning tab, scroll to the RPM Filter section:
RPM Filter Harmonics: Set to 3. This places notch filters at 1x, 2x, and 3x the motor frequency. For most builds, harmonics 1-3 cover the dominant noise bands. Add a 4th harmonic if you see noise at the 4th harmonic in blackbox logs.
RPM Filter Min Hz: 100Hz. Below this, the filter hands off to the dynamic notch.
RPM Filter Fade: Set to 0 for a hard cutoff, or 10-20Hz for a gradual transition. Fade helps prevent a sharp filter edge that can introduce its own artifacts.

5. Adjust Low-Pass Filters Downward

With RPM filtering active, you can relax the static low-pass filters. This is the whole point—less generic filtering means less phase delay and a more responsive quad.

  • Gyro Low-Pass 1: Set to Dynamic. Start with cutoff at 250Hz.
  • Gyro Low-Pass 2: Start with cutoff at 500Hz.
  • D-Term Low-Pass 1: Set to Dynamic. Start with cutoff at 150Hz.
  • D-Term Low-Pass 2: Start with cutoff at 300Hz.

After a test flight, check motor temperature. If motors are cool, you can raise these cutoffs by 20-50Hz each iteration until you find the noise floor. If motors come down hot, back off by 50Hz.

6. Validate with Blackbox

A proper RPM filter setup should produce a gyro spectrogram where motor noise peaks are visibly notched out while the rest of the spectrum stays clean. Without blackbox, you’re tuning blind.

Arm, do a 10-second hover, then a full-throttle punch. Download the log and open it in the Betaflight Blackbox Explorer. Switch to the spectrogram view on the gyro roll axis. You should see the motor frequency line (starting at ~100Hz at idle, climbing to ~500Hz+ at full throttle) and its harmonics—but with the associated noise amplitude significantly reduced compared to an unfiltered log. We covered the blackbox analysis workflow in depth in our blackbox log analysis guide.

RPM Filter Parameter Table

Parameter Starting Value Effect of Increasing Effect of Decreasing
Dynamic Notch Width % 0 Broader notch—covers more noise but removes more signal Narrower notch—precise but may miss noise spread
Dynamic Notch Q 200 Wider (lower Q) notch—more attenuation, less precise Narrower (higher Q) notch—precise frequency targeting
Dynamic Notch Min Hz 90 Higher minimum leaves low-RPM noise unfiltered Below idle—wastes processing on frequencies the motor never hits
Dynamic Notch Max Hz 600 Covers higher RPM motors (high KV, 6S) May miss top-end noise on high-RPM builds
RPM Filter Harmonics 3 Filters more harmonics but uses more CPU Fewer harmonics—may leave higher-order noise unfiltered
RPM Filter Min Hz 100 Higher minimum—quiet motors at idle may pass low-RPM noise Below idle wastes filtering capacity
Gyro LPF1 Cutoff (Dynamic) 250 More high-frequency signal passed—sharper response, hotter motors More filtering—cleaner gyro, more delay

Common Mistakes & How to Avoid Them

Mistake 1: Enabling bidirectional DShot without updating ESC firmware. Betaflight will show bidirectional DShot enabled, but if your ESCs are running BLHeli_S 16.7 from 2019, you’ll get 100% RPM error rates because the ESC doesn’t send telemetry packets. Fix: Flash Bluejay 0.19+ or BLHeli_32 32.8+ before enabling the toggle.

Mistake 2: Running RPM filters on an F4 with DShot600 and 8kHz PID loop. An F4 processor at 8kHz with bidirectional DShot, RPM filters, GPS, and OSD will exceed 50% CPU and trigger the CPU overload warning. Fix: Drop to DShot300 and 4kHz PID loop on F4 targets, or switch to an F7/H7 flight controller. The uavmodel F722 flight controller handles 8kHz PID with full RPM filtering at under 25% CPU load without breaking a sweat.

Mistake 3: Setting RPM Filter Min Hz too high. If your RPM Filter Min Hz is set to 150Hz and your motors idle at 120Hz, the idle noise passes through completely unfiltered. This shows up as a low-frequency oscillation in hover. Fix: Set RPM Filter Min Hz to 100 or lower. Use the Motors tab to check your idle RPM at your configured idle throttle percentage.

Mistake 4: Not relaxing static filters after enabling RPM filtering. The whole point of RPM filtering is that it’s frequency-specific—it removes motor noise without the phase delay penalty of broad low-pass filters. If you leave your gyro LPF1 at 150Hz with RPM filtering active, you’ve gained nothing. Fix: After confirming RPM data is clean in the Motors tab, raise gyro LPF1 cutoff to at least 250Hz and test progressively higher.

Mistake 5: Assuming RPM filtering eliminates the need for a capacitor. RPM filtering operates in firmware on the gyro data. Electrical noise on the power rail from ESC switching still couples into your video system, VTX, and receiver. Fix: Always install a low-ESR capacitor at the battery pads. RPM filtering and hardware filtering solve different problems in different domains. Our capacitor installation guide covers the hardware side of noise reduction.

⚠️ Regulatory Notice: The firmware modifications described in this article are performed at your own risk. Always verify that your drone’s configuration complies with the latest 2026 drone regulations in your country regarding remote ID broadcasting, altitude limits, and equipment certification. Regulations vary between the FAA (US), EASA (EU), CAA (UK), CAAC (China), and other authorities.

If you’re chasing the cleanest possible gyro signal, RPM filtering pairs perfectly with proper ESC protocol configuration. DShot at the right speed, combined with bidirectional telemetry and RPM filtering, produces a gyro trace clean enough to run P and D gains 20-30% higher than unfiltered setups.


Leave a Comment

Scroll to Top