Betaflight PID tuning: CLI settings
P, I, D, D-max and feedforward gains per axis, the simplified tuning sliders, I-term relax, anti-gravity, TPA, throttle boost and crash recovery. Most of these live in a PID profile, so `profile N` selects which copy `set` changes.
73 settings in Betaflight 2026.6, plus 10 that earlier releases had.
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.
| Setting | Type | Range or values | Default | 4.4 | 4.5 | 2025.12 | 2026.6 | Notes |
|---|---|---|---|---|---|---|---|---|
abs_control_cutoff # |
uint8 PID profile |
1 to 45 | 11needs USE_ABSOLUTE_CONTROL |
✓ | ✓ | ✓ | — | Removed in 2026.6. |
abs_control_error_limit # |
uint8 PID profile |
1 to 45 | 20needs USE_ABSOLUTE_CONTROL |
✓ | ✓ | ✓ | — | Removed in 2026.6. |
abs_control_gain # |
uint8 PID profile |
0 to 20 | 0needs USE_ABSOLUTE_CONTROL |
✓ | ✓ | ✓ | — | Removed in 2026.6. |
abs_control_limit # |
uint8 PID profile |
10 to 255 | 90needs USE_ABSOLUTE_CONTROL |
✓ | ✓ | ✓ | — | Removed in 2026.6. |
acc_limit # |
uint16 PID profile |
0 to 500 | 0 |
✓ | ✓ | ✓ | ✓ | |
acc_limit_yaw # |
uint16 PID profile |
0 to 500 | 0 |
✓ | ✓ | ✓ | ✓ | |
anti_gravity_cutoff_hz # |
uint8 PID profile |
2 to 50 | 5 |
✓ | ✓ | ✓ | ✓ | |
anti_gravity_gain # |
uint8 PID profile |
0 to 250 | 80 |
✓ | ✓ | ✓ | ✓ | |
anti_gravity_p_gain # |
uint8 PID profile |
0 to 250 | 100 |
✓ | ✓ | ✓ | ✓ | |
auto_profile_cell_count # |
int8 PID profile |
-1 to 8 | 0 |
✓ | ✓ | ✓ | ✓ | |
crash_delay # |
uint16 PID profile |
0 to 500 | 0 |
✓ | ✓ | ✓ | ✓ | |
crash_dthreshold # |
uint16 PID profile |
10 to 2000 | 50 |
✓ | ✓ | ✓ | ✓ | |
crash_gthreshold # |
uint16 PID profile |
100 to 2000 | 400 |
✓ | ✓ | ✓ | ✓ | |
crash_limit_yaw # |
uint16 PID profile |
0 to 1000 | 200 |
✓ | ✓ | ✓ | ✓ | |
crash_recovery # |
uint8 PID profile |
OFF, ON, BEEP, DISARM | OFF |
✓ | ✓ | ✓ | ✓ | |
crash_recovery_angle # |
uint8 PID profile |
5 to 30 | 10 |
✓ | ✓ | ✓ | ✓ | |
crash_recovery_rate # |
uint8 PID profile |
50 to 255 | 100 |
✓ | ✓ | ✓ | ✓ | |
crash_setpoint_threshold # |
uint16 PID profile |
50 to 2000 | 350 |
✓ | ✓ | ✓ | ✓ | |
crash_time # |
uint16 PID profile |
100 to 5000 | 500 |
✓ | ✓ | ✓ | ✓ | |
d_max_advance # |
uint8 PID profile |
0 to 200 | 35needs USE_D_MAX |
✓ | ✓ | ✓ | Δ | 2026.6: default 20 → 35 |
d_max_gain # |
uint8 PID profile |
0 to 100 | 0needs USE_D_MAX |
✓ | ✓ | ✓ | Δ | 2026.6: default 37 → 0 |
d_max_pitch # |
uint8 PID profile |
0 to 250 | 46needs USE_D_MAX |
— | — | ✓ | ✓ | |
d_max_roll # |
uint8 PID profile |
0 to 250 | 40needs USE_D_MAX |
— | — | ✓ | ✓ | |
d_max_yaw # |
uint8 PID profile |
0 to 250 | 0needs USE_D_MAX |
— | — | ✓ | ✓ | |
d_min_pitch # |
uint8 PID profile |
0 to 250 | 34needs USE_D_MIN |
✓ | ✓ | — | — | Removed in 2025.12. |
d_min_roll # |
uint8 PID profile |
0 to 250 | 30needs USE_D_MIN |
✓ | ✓ | — | — | Removed in 2025.12. |
d_min_yaw # |
uint8 PID profile |
0 to 250 | 0needs USE_D_MIN |
✓ | ✓ | — | — | Removed in 2025.12. |
d_pitch # |
uint8 PID profile |
0 to 250 | 34 |
✓ | ✓ | ✓ | ✓ | |
d_roll # |
uint8 PID profile |
0 to 250 | 30 |
✓ | ✓ | ✓ | ✓ | |
d_yaw # |
uint8 PID profile |
0 to 250 | 0 |
✓ | ✓ | ✓ | ✓ | |
f_pitch # |
uint16 PID profile |
0 to 1000 | 125 |
✓ | ✓ | ✓ | ✓ | |
f_roll # |
uint16 PID profile |
0 to 1000 | 120 |
✓ | ✓ | ✓ | ✓ | |
f_yaw # |
uint16 PID profile |
0 to 1000 | 120 |
✓ | ✓ | ✓ | ✓ | |
feedforward_averaging # |
uint8 PID profile |
OFF, 2_POINT, 3_POINT, 4_POINT | 2_POINTneeds USE_FEEDFORWARD |
✓ | ✓ | Δ | ✓ | 2025.12: default OFF → 2_POINT |
feedforward_boost # |
uint8 PID profile |
0 to 50 | 15needs USE_FEEDFORWARD |
✓ | ✓ | ✓ | ✓ | |
feedforward_jitter_factor # |
uint8 PID profile |
0 to 20 | 7needs USE_FEEDFORWARD |
✓ | ✓ | ✓ | ✓ | |
feedforward_max_rate_limit # |
uint8 PID profile |
0 to 200 | 90needs USE_FEEDFORWARD |
✓ | Δ | ✓ | ✓ | 4.5: max 150 → 200 |
feedforward_smooth_factor # |
uint8 PID profile |
0 to 95 | 65needs USE_FEEDFORWARD |
✓ | ✓ | Δ | ✓ | 2025.12: default 25 → 65 |
feedforward_transition # |
uint8 PID profile |
0 to 100 | 0needs USE_FEEDFORWARD |
✓ | ✓ | ✓ | ✓ | |
feedforward_yaw_hold_gain # |
uint8 PID profile |
0 to 100 | 15needs USE_FEEDFORWARD |
— | — | ✓ | ✓ | |
feedforward_yaw_hold_time # |
uint8 PID profile |
10 to 250 | 100needs USE_FEEDFORWARD |
— | — | ✓ | ✓ | |
i_pitch # |
uint8 PID profile |
0 to 250 | 84 |
✓ | ✓ | ✓ | ✓ | |
i_roll # |
uint8 PID profile |
0 to 250 | 80 |
✓ | ✓ | ✓ | ✓ | |
i_yaw # |
uint8 PID profile |
0 to 250 | 80 |
✓ | ✓ | ✓ | ✓ | |
integrated_yaw_relax # |
uint8 PID profile |
0 to 255 | 200needs USE_INTEGRATED_YAW_CONTROL |
✓ | ✓ | ✓ | ✓ | |
iterm_limit # |
uint16 PID profile |
0 to 500 | 400 |
✓ | ✓ | — | — | Removed in 2025.12. |
iterm_relax # |
uint8 PID profile |
OFF, RP, RPY, RP_INC, RPY_INC | RPneeds USE_ITERM_RELAX |
✓ | ✓ | ✓ | ✓ | |
iterm_relax_cutoff # |
uint8 PID profile |
1 to 50 | 15needs USE_ITERM_RELAX |
✓ | ✓ | ✓ | ✓ | |
iterm_relax_type # |
uint8 PID profile |
GYRO, SETPOINT | SETPOINTneeds USE_ITERM_RELAX |
✓ | ✓ | ✓ | ✓ | |
iterm_rotation # |
uint8 PID profile |
OFF, ON | OFF |
✓ | ✓ | ✓ | ✓ | |
iterm_windup # |
uint8 PID profile |
20 to 100 | 80 |
✓ | ✓ | Δ | ✓ | 2025.12: min 30 → 20; default 85 → 80 |
p_pitch # |
uint8 PID profile |
0 to 250 | 47 |
✓ | ✓ | ✓ | ✓ | |
p_roll # |
uint8 PID profile |
0 to 250 | 45 |
✓ | ✓ | ✓ | ✓ | |
p_yaw # |
uint8 PID profile |
0 to 250 | 45 |
✓ | ✓ | ✓ | ✓ | |
pid_at_min_throttle # |
uint8 PID profile |
OFF, ON | ON |
✓ | ✓ | ✓ | ✓ | |
pid_process_denom # |
uint8 global |
1 to 16 | set by the target |
✓ | ✓ | ✓ | ✓ | |
pidsum_limit # |
uint16 PID profile |
100 to 1000 | 500 |
✓ | ✓ | ✓ | ✓ | |
pidsum_limit_yaw # |
uint16 PID profile |
100 to 1000 | 400 |
✓ | ✓ | ✓ | ✓ | |
profile_name # |
uint8 PID profile |
text, 1 to 8 characters | - (empty)needs USE_PROFILE_NAMES |
✓ | ✓ | ✓ | ✓ | |
simplified_d_gain # |
uint8 PID profile |
0 to 200 | 100needs USE_SIMPLIFIED_TUNING |
✓ | ✓ | ✓ | ✓ | |
simplified_d_max_gain # |
uint8 PID profile |
0 to 200 | 100needs USE_SIMPLIFIED_TUNING |
— | — | ✓ | ✓ | |
simplified_dmax_gain # |
uint8 PID profile |
0 to 200 | 100needs USE_SIMPLIFIED_TUNING |
✓ | ✓ | — | — | Removed in 2025.12. |
simplified_feedforward_gain # |
uint8 PID profile |
0 to 200 | 100needs USE_SIMPLIFIED_TUNING |
✓ | ✓ | ✓ | ✓ | |
simplified_i_gain # |
uint8 PID profile |
0 to 200 | 100needs USE_SIMPLIFIED_TUNING |
✓ | ✓ | ✓ | ✓ | |
simplified_master_multiplier # |
uint8 PID profile |
0 to 200 | 100needs USE_SIMPLIFIED_TUNING |
✓ | ✓ | ✓ | ✓ | |
simplified_pi_gain # |
uint8 PID profile |
0 to 200 | 100needs USE_SIMPLIFIED_TUNING |
✓ | ✓ | ✓ | ✓ | |
simplified_pids_mode # |
uint8 PID profile |
OFF, RP, RPY | RPYneeds USE_SIMPLIFIED_TUNING |
✓ | ✓ | ✓ | ✓ | |
simplified_pitch_d_gain # |
uint8 PID profile |
0 to 200 | 100needs USE_SIMPLIFIED_TUNING |
✓ | ✓ | ✓ | ✓ | |
simplified_pitch_pi_gain # |
uint8 PID profile |
0 to 200 | 100needs USE_SIMPLIFIED_TUNING |
✓ | ✓ | ✓ | ✓ | |
throttle_boost # |
uint8 PID profile |
0 to 100 | 5needs USE_THROTTLE_BOOST |
✓ | ✓ | ✓ | ✓ | |
throttle_boost_cutoff # |
uint8 PID profile |
5 to 50 | 15needs USE_THROTTLE_BOOST |
✓ | ✓ | ✓ | ✓ | |
thrust_linear # |
uint8 PID profile |
0 to 150 | 0needs USE_THRUST_LINEARIZATION |
✓ | ✓ | ✓ | ✓ | |
tpa_breakpoint # |
uint16 PID profile |
1000 to 2000 | 1350 |
✓ | Δ | ✓ | ✓ | 4.5: min 750 → 1000; max 2250 → 2000 |
tpa_low_always # |
uint8 PID profile |
OFF, ON | OFF |
— | ✓ | ✓ | ✓ | |
tpa_low_breakpoint # |
uint16 PID profile |
1000 to 2000 | 1050 |
— | ✓ | ✓ | ✓ | |
tpa_low_rate # |
int8 PID profile |
0 to 100 | 20 |
— | ✓ | Δ | ✓ | 2025.12: type uint8 → int8 |
tpa_mode # |
uint8 PID profile |
PD, D | D |
✓ | ✓ | ✓ | ✓ | |
tpa_rate # |
uint8 PID profile |
0 to 100 | 65 |
✓ | ✓ | ✓ | ✓ | |
transient_throttle_limit # |
uint8 PID profile |
0 to 30 | 0needs USE_AIRMODE_LPF |
✓ | ✓ | ✓ | — | Removed in 2026.6. |
use_integrated_yaw # |
uint8 PID profile |
OFF, ON | OFFneeds USE_INTEGRATED_YAW_CONTROL |
✓ | ✓ | ✓ | ✓ | |
vbat_sag_compensation # |
uint8 PID profile |
0 to 150 | 0needs USE_BATTERY_VOLTAGE_SAG_COMPENSATION |
✓ | ✓ | ✓ | ✓ | |
yaw_spin_recovery # |
uint8 global |
OFF, ON, AUTO | AUTOneeds USE_YAW_SPIN_RECOVERY |
✓ | ✓ | ✓ | ✓ | |
yaw_spin_threshold # |
uint16 global |
500 to 1950 | 1950needs USE_YAW_SPIN_RECOVERY |
✓ | ✓ | ✓ | ✓ |
✓ 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:
chirp_amplitude_pitch, chirp_amplitude_roll, chirp_amplitude_yaw, chirp_frequency_end_deci_hz, chirp_frequency_start_deci_hz, chirp_lag_freq_hz, chirp_lead_freq_hz, chirp_time_seconds, s_pitch, s_roll, s_yaw, spa_pitch_center, spa_pitch_mode, spa_pitch_width, spa_roll_center, spa_roll_mode, spa_roll_width, spa_yaw_center, spa_yaw_mode, spa_yaw_width, tpa_curve_expo, tpa_curve_pid_thr0, tpa_curve_pid_thr100, tpa_curve_stall_throttle, tpa_curve_type, tpa_speed_adv_drag_k, tpa_speed_adv_mass, tpa_speed_adv_prop_pitch, tpa_speed_adv_thrust, tpa_speed_basic_delay, tpa_speed_basic_gravity, tpa_speed_max_voltage, tpa_speed_pitch_offset, tpa_speed_type, yaw_type.
Other sections
- Gyro and D-term filters (27)
- Angle, horizon and launch modes (20)
- Rates and throttle curve (25)
- Motors and ESC (23)
- Receiver and RC link (32)
- Failsafe and arming (14)
- GPS (14)
- GPS rescue (12)
- Autopilot, position and altitude hold (66)
- Battery and current sensor (28)
- OSD (49)
- OSD element positions (90)
- VTX and camera control (12)
- Blackbox and debug (20)
- Telemetry and serial (44)
- LED strip and beeper (12)
- Sensors and board alignment (35)
- System and hardware (25)
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.