Betaflight RPM Filter Setup: Bidirectional DShot, Harmonics, and Motor Noise Rejection — 2026 Guide

Your blackbox log shows gyro noise spikes at exact multiples of motor RPM and you’re running heavy lowpass filtering to compensate — which adds latency. RPM filtering solves this by placing dynamic notch filters directly on the motor frequencies, so you can run lighter lowpass filters and get a locked-in quad with lower latency.

Step 1: Enable Bidirectional DShot

RPM filtering needs the ESC to report motor RPM back to the flight controller. This requires bidirectional DShot.

Configure in Betaflight

  1. Open the Configuration tab. Under ESC/Motor Features, set ESC Protocol to DSHOT300 or DSHOT600. DSHOT600 is preferred for RPM filtering because the faster telemetry rate gives cleaner RPM data.
  2. Enable Bidirectional DShot by toggling the slider directly under the protocol selector.
  3. Save and reboot.

Verification: Go to the Motors tab. Connect a battery, spin motor 1 using the slider (props off). You should see the RPM column populate with a live value. If it reads 0 or shows errors in the Errors column, your ESC firmware doesn’t support bidirectional DShot — update to BLHeli_S 16.7+ or BLHeli_32 32.7+.

What goes wrong here: BLHeli_S ESCs require the JazzMaverick or Bluejay firmware to support bidirectional DShot. Stock BLHeli_S 16.7 doesn’t have it. Flash the ESC firmware before enabling the feature.

Step 2: Configure RPM Filter Slots

Betaflight provides up to 12 RPM filter slots — 3 harmonics per motor across 4 motors. You don’t need all 12; start with the defaults and add only what the data demands.

Default RPM Filter Settings

Navigate to the PID Tuning tab and open the Filter Settings section. Under RPM Filter:

  • RPM Filter Harmonics: Set to 3. This creates notch filters at 1×, 2×, and 3× the motor RPM for each motor. Three harmonics catch the fundamental frequency plus the blade-pass and commutation frequencies.
  • RPM Filter Min Hz: 100 Hz. Below this, RPM notches aren’t effective — the motor noise is in the same range as flight dynamics.
  • Number of RPM Filter Slots: 12 (3 harmonics × 4 motors = 12 slots). Don’t reduce this unless you’re on an F4 board with CPU constraints.

What Each Harmonic Catches

  • 1st harmonic (fundamental): Motor RPM — the dominant noise source. Every motor creates vibration at its rotation frequency.
  • 2nd harmonic: Blade-pass frequency for 2-blade props, or bearing/shaft imbalance. More prominent on damaged or unbalanced motors.
  • 3rd harmonic: Electromagnetic commutation noise. The motor’s magnetic poles switching create noise at multiples of RPM — the 3rd harmonic is the strongest.

Step 3: Reduce Dynamic Notch and Lowpass Filters

Once RPM filtering is active, you can back off the traditional filtering — which is the entire point.

Filter Adjustment Sequence

  1. Enable RPM filtering and fly one pack. Land, download the blackbox log, and open it in Betaflight Blackbox Explorer or Plasmatree PID Toolbox.
  2. Look at the gyro_scaled trace with spectrogram view. You should see the RPM notches tracking motor frequencies as they change.
  3. In the Filter Settings tab, reduce the Dynamic Notch Count from 3 to 1, and raise the Dynamic Notch Min Hz from 90 to 120 Hz. RPM filtering handles the low-frequency motor noise, so the dynamic notch can focus on frame resonances.
  4. Reduce Gyro Lowpass 1 cutoff from 250 to 350 Hz, and Gyro Lowpass 2 from 500 to 600 Hz. Lighter lowpass = less filter delay = snappier stick response.
  5. Fly again. If you see new oscillations at high throttle, back off one step on the lowpass reduction. If the quad flies clean, you’ve successfully traded filter latency for RPM-driven noise rejection.

Verification: Compare motor temperature before and after the filter change. If motors run cooler after enabling RPM filtering, your previous tune was fighting noise with PID authority — RPM filtering removed the noise at the source.

RPM Harmonic Frequency Range Noise Source Effect if Unfiltered Filter Slot
1st (1× RPM) 50-500 Hz Motor rotation Low-mid throttle wobble Slot 1, 4, 7, 10
2nd (2× RPM) 100-1000 Hz Blade pass, imbalance Mid-throttle oscillations Slot 2, 5, 8, 11
3rd (3× RPM) 150-1500 Hz Commutation noise High-frequency jitter Slot 3, 6, 9, 12

Common Mistakes & How to Avoid Them

Mistake 1: Enabling bidirectional DShot on incompatible ESCs

Stock BLHeli_S ESCs will report errors in the Motors tab — there’s no telemetry data coming back. The RPM filter then places notches at 0 Hz, which filters out gyro data in the flight control range and makes the quad unflyable. Fix: Verify ESC firmware compatibility before enabling. Flash Bluejay or BLHeli_32 if needed.

Mistake 2: Setting too many RPM harmonics

Six harmonics per motor (24 filter slots) eats CPU, adds filter delay, and filters frequencies where there’s no actual noise. Each additional harmonic notch adds 0.2-0.3ms of group delay. Fix: Start with 3 harmonics. Only add more if blackbox data shows noise energy at higher multiples.

Mistake 3: Removing dynamic notch entirely after enabling RPM filtering

RPM filters target motor noise. Frame resonance — the frequency at which the carbon fiber arms vibrate — is not motor-speed-dependent. The dynamic notch still needs to catch frame modes. Fix: Keep at least one dynamic notch. Let RPM filtering remove the motor noise so the dynamic notch can focus cleanly on structural resonances.

Mistake 4: Using DSHOT150 with RPM filtering

The telemetry frame rate at DSHOT150 is too slow for RPM data — the RPM value lags behind the actual motor speed by 5-8ms. The notch filter tracks a stale frequency and misses the actual noise. Fix: Use DSHOT300 or DSHOT600 minimum for RPM filtering.

⚠️ Regulatory Notice: The flight performance and filter tuning recommendations in this article should be applied in accordance with the latest 2026 drone regulations in your country or region. Always verify local laws regarding flight altitude, area restrictions, and noise limitations before conducting test flights. Some regions may require remote ID compliance or registration for aircraft operating above specific weight or performance thresholds.

RPM filtering builds on the foundation of bidirectional DShot — for the full protocol comparison, see our guide on DShot150 through DShot1200. Understanding your gyro’s noise profile is essential — our deep dive on gyro and D-term filtering covers the lowpass types and cutoff frequencies that pair with RPM notching.

For a flight controller that handles RPM filtering at 8K with headroom to spare, the SpeedyBee F7 V3 stack runs bidirectional DShot with 12 filter slots at under 30% CPU — our recommendation for pilots who want the full RPM filter benefit without F4 compromises.


Leave a Comment

Scroll to Top