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.

33 settings in Betaflight 2026.6. Each range and value list is read from the release's src/main/cli/settings.c, each default from the CLI get of the release built for the simulator (SITL), booted on an empty EEPROM, with 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 ✓✓✓✓
rpm_filter_fade_range_hz # uint16
global
0 to 1000 50
needs USE_RPM_FILTER
✓✓✓✓
rpm_filter_harmonics # uint8
global
0 to 3 3
needs USE_RPM_FILTER
✓✓✓✓
rpm_filter_lpf_hz # uint16
global
100 to 500 150
needs USE_RPM_FILTER
✓✓✓✓
rpm_filter_min_hz # uint8
global
30 to 200 100
needs USE_RPM_FILTER
✓✓✓✓
rpm_filter_q # uint16
global
250 to 3000 500
needs USE_RPM_FILTER
✓✓✓✓
rpm_filter_weights # uint8
global
3 comma-separated values, 0 to 255 100,100,100
needs USE_RPM_FILTER
—✓✓✓
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 extracted builds do 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.

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.