Betaflight filter tuning: gyro, D-term and dynamic notch settings
Betaflight filters remove noise from the gyro and D-term signals before the PID controller uses them. The main ones are gyro lowpass 1 and 2, D-term lowpass 1 and 2, the dynamic notch and the RPM filter. Every filter adds delay, so the aim is the least filtering that keeps motors cool and the signal clean. Start from the defaults, fly a throttle sweep, and change one filter at a time in small steps.
What does each filter do?
Filters cut noise at frequencies where you don’t want the quad to react. Lowpass filters pass slow movement and cut fast vibration. Notch filters cut a narrow band around one frequency.
Gyro lowpass 1 and 2. These filter the gyro signal for everything downstream. Lowpass 1 is dynamic by default: its cutoff rises with throttle between a minimum and a maximum, and the static value only applies when the dynamic minimum is set to 0. Lowpass 2 is a fixed cutoff.
D-term lowpass 1 and 2. These filter only the D-term. D works on how fast the gyro changes, so it amplifies high-frequency noise more than P does. That is why D-term cutoffs sit far lower than gyro cutoffs.
Dynamic notch. It finds the strongest noise peaks in the gyro signal and moves narrow notches onto them. You set the number of notches, their width and the frequency range it searches.
RPM filter. It places notches exactly on the motor frequency and its harmonics, using speed reported by the ESCs. It needs bidirectional DShot. See the RPM filter setup guide.
Filter defaults
| Setting | CLI name | Default |
|---|---|---|
| Gyro lowpass 1 type | gyro_lpf1_type |
PT1 |
| Gyro lowpass 1 static | gyro_lpf1_static_hz |
250 Hz |
| Gyro lowpass 1 dynamic range | gyro_lpf1_dyn_min_hz, gyro_lpf1_dyn_max_hz |
250 Hz to 500 Hz |
| Gyro lowpass 1 curve | gyro_lpf1_dyn_expo |
5 |
| Gyro lowpass 2 | gyro_lpf2_static_hz |
500 Hz |
| D-term lowpass 1 static | dterm_lpf1_static_hz |
75 Hz |
| D-term lowpass 1 dynamic range | dterm_lpf1_dyn_min_hz, dterm_lpf1_dyn_max_hz |
75 Hz to 150 Hz |
| D-term lowpass 2 | dterm_lpf2_static_hz |
150 Hz |
| Yaw lowpass | yaw_lowpass_hz |
100 Hz |
| Dynamic notch count | dyn_notch_count |
3 |
| Dynamic notch width | dyn_notch_q |
300 |
| Dynamic notch range | dyn_notch_min_hz, dyn_notch_max_hz |
100 Hz to 600 Hz (150 Hz to 600 Hz on 4.3) |
These defaults are the same in 4.3, 4.4, 4.5, 2025.12 and 2026.6, except the notch minimum on 4.3. Check your own board with diff all, because a target or a preset can change them. Higher dyn_notch_q makes a narrower notch. The notch count allows up to 5 on versions up to 4.5 and up to 7 from 2025.12.
What do the filter sliders do?
The Filter Settings tab has two sliders, a gyro filter slider and a D-term filter slider. On the CLI they are simplified_gyro_filter_multiplier and simplified_dterm_filter_multiplier, both 100 by default, with simplified_gyro_filter and simplified_dterm_filter set to ON. A value of 100 means 1.0x.
A higher value raises every cutoff in that group, so there is less filtering and less delay. A lower value does the opposite. At the defaults the multiplier works like this:
- Gyro lowpass 1 runs 250 Hz to 500 Hz times the slider divided by 100. Gyro lowpass 2 is 500 Hz times the slider divided by 100.
- D-term lowpass 1 runs 75 Hz to 150 Hz times the slider divided by 100. D-term lowpass 2 is 150 Hz times the slider divided by 100.
While a slider is on, Betaflight sets the matching CLI values from it. Switch the slider off to edit raw cutoffs, and don’t mix the two. The sliders are covered in Betaflight sliders explained.
What is the trade-off between noise and filter delay?
Lower cutoffs remove more noise and add more delay. Delay means the PID controller sees the gyro later than it happened, so it reacts late. Too much delay shows up as slower response, more overshoot after a snap and worse propwash handling. Too little filtering lets noise reach the motors, which then run hot and can oscillate.
There is no setting that is right for every quad. A clean 5 inch build can run higher cutoffs than a noisy one. Bigger props make lower-frequency noise, and whoops make higher-frequency noise, so the useful range moves with the build. FPV PID Tune estimates the filter delay of your gyro and D-term paths in milliseconds from a log with unfiltered gyro, so you can see what a change costs.
How do you read a throttle-sweep spectrum?
A throttle sweep is a slow climb from low to full throttle and back, flown in a steady hover-like attitude. A gyro spectrum plotted against throttle shows frequency on one axis and noise level on the other. Use the unfiltered gyro, which shows what the filters have to remove. See blackbox logging for tuning for how to record it.
Judge levels against each other, not against a fixed number. Compare a peak with the band around it, one throttle range with another, and this flight with the last one. Three patterns cover most logs.
| What you see | Kind of noise | What to do |
|---|---|---|
| A ridge that climbs in frequency as throttle rises | Motor noise | Turn on the RPM filter. Without it, add dynamic notches with a lower Q (wider notches). |
| A band that stays at one frequency whatever the throttle | Frame resonance | One or two dynamic notches, or a lower gyro or D-term lowpass. Look at the build too. |
| Energy below about 100 Hz | Propwash or oscillation | Filters don’t fix this. See fix propwash. |
Propwash lives at low frequency, and a lowpass at 100 Hz or higher can’t remove it. Adding filter for it only adds delay and makes the response worse. That is a PID problem.
What order should you change filters in?
Change one area at a time. After each change, arm on the ground, hover for about 20 seconds, land and touch the motors. If they are hot, stop and add filtering or lower D before flying on.
- Check the base. Confirm bidirectional DShot and the RPM filter are on if your ESCs support them.
- Fly a throttle sweep with unfiltered gyro logging and read the spectrum.
- Fix the biggest peak first. Motor noise: RPM filter. Frame resonance: a notch or lower cutoff.
- D-term filtering next. If the motors are warm and D-term noise is high, lower the D-term lowpass cutoffs in small steps, or move the D-term filter slider down.
- Gyro lowpass last. Move it in small steps. Don’t put gyro lowpass 1 below 100 Hz.
- Fly again and compare the same throttle ranges.
Keep each step modest. A change of about 10% to 20% in a cutoff is enough to see in the next log. Never switch all filtering off.
When can you filter less?
With the RPM filter working and a clean build, the noise above 100 Hz sits low and flat, with no peak standing well clear of the rest. Then you can raise the cutoffs or the filter sliders, and cut the dynamic notch count. That cuts filter delay and makes the quad feel sharper. Raise cutoffs in small steps and check motor temperature after each flight.
Don’t do this on a quad that has bent props, loose hardware or a soft-mounted camera or stack that shakes. Fix those first, since filters only hide them.
How FPV PID Tune handles it
Round 1 of a full tune is filters. The app reads your test pack log in the browser, finds motor noise, frame resonance and propwash separately, and an AI picks new filter values. A validator keeps every value inside fixed safety limits, in small steps, and every value is read back after Apply. If the motors are hot, only more filtering or less D is allowed. You can check your log first with the free log check.
