Betaflight Gyro and D-term filters: CLI settings

Gyro lowpass, notch, dynamic notch and RPM filter settings, plus the D-term lowpass filters and the slider multipliers that scale them. These decide how much motor noise reaches the PID loop and how much delay the filtering adds.

27 settings in Betaflight 2026.6. Each range and value list is read from the firmware's settings.c, each default from the CLI get of the release built for the simulator (no board config applied), so a board's own config can still change it. Set one with set name = value, then save. Paste a diff all into the CLI checker to test it against any release.

SettingTypeRange or valuesDefault 4.44.52025.122026.6Notes
dterm_lpf1_dyn_expo # uint8
PID profile
0 to 10 5
needs USE_DYN_LPF
✓✓✓✓
dterm_lpf1_dyn_max_hz # uint16
PID profile
0 to 1000 150
needs USE_DYN_LPF
✓✓✓✓
dterm_lpf1_dyn_min_hz # uint16
PID profile
0 to 1000 75
needs USE_DYN_LPF
✓✓✓✓
dterm_lpf1_static_hz # int16
PID profile
0 to 1000 75 ✓✓✓✓
dterm_lpf1_type # uint8
PID profile
PT1, BIQUAD, PT2, PT3 PT1 ✓✓✓✓
dterm_lpf2_static_hz # int16
PID profile
0 to 1000 150 ✓✓✓✓
dterm_lpf2_type # uint8
PID profile
PT1, BIQUAD, PT2, PT3 PT1 ✓✓✓✓
dterm_notch_cutoff # uint16
PID profile
0 to 1000 0 ✓✓✓✓
dterm_notch_hz # uint16
PID profile
0 to 1000 0 ✓✓✓✓
gyro_filter_debug_axis # uint8
global
ROLL, PITCH, YAW ROLL ✓✓✓✓
gyro_hardware_lpf # uint8
global
NORMAL, OPTION_1, OPTION_2, EXPERIMENTAL NORMAL ✓✓✓✓
gyro_lpf1_dyn_expo # uint8
global
0 to 10 5
needs USE_DYN_LPF
✓✓✓✓
gyro_lpf1_dyn_max_hz # uint16
global
0 to 1000 500
needs USE_DYN_LPF
✓✓✓✓
gyro_lpf1_dyn_min_hz # uint16
global
0 to 1000 250
needs USE_DYN_LPF
✓✓✓✓
gyro_lpf1_static_hz # uint16
global
0 to 1000 250 ✓✓✓✓
gyro_lpf1_type # uint8
global
PT1, BIQUAD, PT2, PT3 PT1 ✓✓✓✓
gyro_lpf2_static_hz # uint16
global
0 to 1000 500 ✓✓✓✓
gyro_lpf2_type # uint8
global
PT1, BIQUAD, PT2, PT3 PT1 ✓✓✓✓
gyro_notch1_cutoff # uint16
global
0 to 1000 0 ✓✓✓✓
gyro_notch1_hz # uint16
global
0 to 1000 0 ✓✓✓✓
gyro_notch2_cutoff # uint16
global
0 to 1000 0 ✓✓✓✓
gyro_notch2_hz # uint16
global
0 to 1000 0 ✓✓✓✓
simplified_dterm_filter # uint8
PID profile
OFF, ON ON
needs USE_SIMPLIFIED_TUNING
✓✓✓✓
simplified_dterm_filter_multiplier # uint8
PID profile
10 to 200 100
needs USE_SIMPLIFIED_TUNING
✓✓✓✓
simplified_gyro_filter # uint8
global
OFF, ON ON
needs USE_SIMPLIFIED_TUNING
✓✓✓✓
simplified_gyro_filter_multiplier # uint8
global
10 to 200 100
needs USE_SIMPLIFIED_TUNING
✓✓✓✓
yaw_lowpass_hz # uint16
PID profile
0 to 500 100 ✓✓✓✓

✓ present, Δ changed in that release (hover for what changed), — not in that release. “needs USE_…” is the build option the setting is compiled with: a cloud build without it has no such setting.

Also in this section

These settings exist in 2026.6, but their default depends on build options the simulator build does not compile (DShot, RPM filter, board drivers), so it is not printed here rather than guessed: dyn_notch_count, dyn_notch_max_hz, dyn_notch_min_hz, dyn_notch_q, rpm_filter_fade_range_hz, rpm_filter_harmonics, rpm_filter_lpf_hz, rpm_filter_min_hz, rpm_filter_q, rpm_filter_weights.

Other sections

What changed between releases: 4.4 → 4.5 · 4.5 → 2025.12 · 2025.12 → 2026.6. Machine-readable: params.json (2026.6.2), GPL-3.0 like the firmware it comes from.