Betaflight Gyro Filtering: Dynamic Notch vs Static Notch — Noise Reduction, Delay, and Flight Performance — 2026 Guide

Your motors come down hot and your blackbox logs look like an earthquake. Before you touch a single PID value, fix your filters. Bad filtering is the #1 cause of “unexplained” oscillations, hot motors, and tunes that never feel locked in. Here’s the filter stack that produces a clean gyro signal without adding 15ms of delay.

The Filter Pipeline: What Happens to Gyro Data

When your gyro samples rotation at 8kHz, the raw data includes motor vibration, frame resonance, prop wash, and electrical noise from the ESC switching. Betaflight runs this through four filter stages in sequence:

  1. RPM Filter Bank — targets motor-specific frequencies (determined by RPM × number of poles)
  2. Dynamic Notch Filter(s) — tracks and cancels the dominant frame resonance peak
  3. Static Notch Filter(s) — fixed-frequency notches for known mechanical resonances
  4. Lowpass Filter(s) — removes remaining high-frequency noise above the PID loop’s usable range

Each filter removes noise but adds group delay — the time between the gyro measuring a movement and Betaflight acting on it. Stack too many filters and your quad feels sluggish. Too few and your motors burn up fighting noise. The art is in balancing rejection depth against delay.

Dynamic Notch: The Adaptive Filter

Dynamic notch analyzes the gyro signal in real time, finds the loudest frequency peak (the frame resonance), and places a notch filter exactly on it. As RPMs change, the peak shifts, and the dynamic notch follows it.

Key parameters:

Parameter Default Recommended Range Effect
dyn_notch_count 3 1-3 Number of dynamic notches. More = better rejection, more delay
dyn_notch_q 250 200-400 Q factor: lower = wider notch, more delay. Higher = narrower, less delay
dyn_notch_min_hz 100 80-130 Minimum frequency the dynamic notch will track
dyn_notch_max_hz 600 400-800 Maximum frequency — set above highest frame resonance

Three dynamic notches at Q=250 was the Betaflight 4.3+ default for a reason — it catches up to three resonance peaks simultaneously. On a well-built quad, one dynamic notch at Q=300-400 is often enough and saves 1-2ms of delay. On a rattly frame with bent arms, you might need all three.

How to check: Arm the quad on the bench (props off), open the Sensors tab, and watch the gyro spectrograph. Any peaks above the noise floor are resonances. The tallest peak should be below the dynamic notch max. If it’s above 600Hz, your frame has a stiffness problem that filtering can’t fully fix.

Static Notch: Fixed-Frequency Filter for Known Problems

Static notches target frequencies that don’t change with RPM — usually the frame’s natural resonant mode and its harmonics. Unlike dynamic notches, these don’t track.

The standard setup: one static notch at D-term LPF1 frequency (typically 200-300Hz), centered on the frame’s primary bending mode.

To find your frame’s resonance:
1. Do a hover test with all filters off (DANGEROUS — props on, land immediately if oscillations start)
2. Record a blackbox log
3. Open in Betaflight Blackbox Explorer
4. Look at the gyro spectrograph — the tallest non-motor peak is your frame resonance
5. Set a static notch centered on that frequency

Alternatively, tap the frame with the quad powered and watch the gyro graph. The ringing frequency is your frame resonance. Set a static notch there with Q=200 (wide enough to catch the harmonic too).

This testing should only be done by experienced pilots who can land on command — an unfiltered quad can oscillate itself apart. The safer method is to fly with default filters, log a flight, and check the blackbox spectrograph for peaks the dynamic notch isn’t catching.

RPM Filtering: Don’t Skip This

RPM filters are the most important filter in the stack. They’re narrow, fast, and target individual motor harmonics. Without them, your dynamic notch has to cover the full RPM range of four motors, which means wider notches and more delay.

RPM filtering requires:
– BLHeli_32 or Bluejay firmware with bidirectional DShot
– Motors tab → enable bidirectional DShot
– Set motor poles correctly (most 22xx/23xx motors are 12N14P = 14 poles, but verify for your specific motor)

With RPM filters active, you can reduce dynamic notches from 3 to 1 or 2 and raise the dynamic notch Q, netting 2-3ms less filter delay. As covered in our RPM filtering guide, the combination of RPM + dynamic notch produces 60-80% less gyro noise than either alone.

Filter Delay and Flight Feel

Every notch adds group delay. Every lowpass adds phase delay. Here’s the real-world impact at 8kHz PID loop:

Filter Stack Total Delay Flight Feel
RPM + 1 dyn notch Q400 + D-term LPF1 250Hz ~4ms Crisp, immediate response
RPM + 2 dyn notch Q250 + D-term LPF1 200Hz ~7ms Slightly soft, good for freestyle
RPM + 3 dyn notch Q200 + D-term LPF1 150Hz ~11ms Mushy, feels like 50Hz packet rate
No RPM, 3 dyn notch + deep LPFs ~18ms Unflyable — chasing oscillations you caused

At 8kHz loop, each millisecond of filter delay is 8 PID cycles of stale data. At 4ms delay, the PID controller is working with 32-cycle-old gyro data. At 11ms, it’s 88 cycles behind. The quad feels disconnected from your fingers.

The goal: minimize filter delay to under 5ms while keeping motor temperatures below 65°C after a hard flight. If motors are cool but the quad feels mushy, you have room to reduce filtering.

Common Gyro Filtering Mistakes

Mistake 1: Turning off all filters because “they add delay.” An unfiltered 5-inch quad sends 40-60% noise amplitude into the PID controller with each gyro sample. The motors react to that noise, creating more vibration, creating more noise — a feedback loop that burns motors in under 30 seconds. Filters exist because the alternative is worse than the delay.

Mistake 2: Copying someone else’s filter settings. Filter settings are hardware-specific. My 2207 5-inch quad on a stiff frame needs different filters than your 2306 build on a different frame material and arm thickness. Start from defaults, log a flight, and adjust based on your spectrograph.

Mistake 3: Setting dynamic notch max too low. If your frame resonates at 550Hz and dyn_notch_max_hz is 400, the dynamic notch can’t reach it. The static notch might catch it, but since static notches don’t track RPM changes, some portions of the throttle range will have unfiltered resonance. Set max at least 100Hz above your highest resonance.

Mistake 4: Running RPM filters with the wrong motor pole count. If your motor is 14 poles and you enter 12 in Betaflight, the RPM filter targets the wrong frequencies. Every harmonic notch is offset by 14/12 = 16.7%. Instead of filtering noise, you’re filtering signal and passing noise.

⚠️ 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.

Filter tuning is where the difference between a “well-tuned quad” and a “hot mess” gets made. The blackbox doesn’t lie — if your gyro spectrograph has peaks above the noise floor, your PIDs are fighting something you haven’t filtered. When combined with our Betaflight PID tuning guide, proper filtering gives you a clean signal that PIDs can actually work with. For a deep dive into motor-specific noise, our BLHeli_32 timing and demag guide covers how ESC settings affect the electrical noise that shows up in gyro traces.

The T-Motor Velox V3 2306 1950KV motors produce exceptionally smooth RPM data with their balanced bell design, reducing the filtering load on your flight controller and allowing tighter notch filters with less delay — available at uavmodel.com.


Leave a Comment

Scroll to Top