INAV PID tuning: CLI settings

P, I, D and feedforward gains per axis for multirotors and fixed wing, I-term relax, D-boost, anti-gravity, heading hold, fixed-wing autotune and EzTune. They live in the control profile, so `control_profile N` selects which copy `set` changes.

74 settings in INAV 9.1. Each range and value list is read from the release's src/main/fc/settings.yaml, each default from the release's settings.yaml, with each constant and C type resolved by INAV's own settings.rb against the SITL and flight-controller target headers, 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 8.09.09.1Notes
antigravity_accelerator # float
control profile
1 to 20 1
needs USE_ANTIGRAVITY
✓✓✓ Multiplier for Antigravity gain. The bigger is the difference between actual and filtered throttle input, the bigger Antigravity gain
antigravity_cutoff_lpf_hz # uint8
control profile
1 to 30 15
needs USE_ANTIGRAVITY
✓✓✓ Antigravity cutoff frequenct for Throtte filter. Antigravity is based on the difference between actual and filtered throttle input. The bigger is the difference, the bigger Antigravity gain
antigravity_gain # float
control profile
1 to 20 1
needs USE_ANTIGRAVITY
✓✓✓ Max Antigravity gain. `1` means Antigravity is disabled, `2` means Iterm is allowed to double during rapid throttle movements
d_boost_gyro_delta_lpf_hz # uint8
control profile
10 to 250 80
needs USE_D_BOOST
✓✓✓ Cutoff frequency for the low pass filter applied to the gyro delta signal used for D-term boost. Lower value will produce a smoother D-term boost signal, but it will be more delayed.
d_boost_max # float
control profile
1 to 3 1.25
needs USE_D_BOOST
✓✓✓ D-term multiplier when rapid external conditions are detected. Lower values give sharper response to stick input, higher values give smoother response by scaling D-gains up.
d_boost_max_at_acceleration # float
control profile
1000 to 16000 7500
needs USE_D_BOOST
✓✓✓ Acceleration threshold for D-term multiplier. When acceleration is above this value, D-term multiplier is set to `d_boost_max`
d_boost_min # float
control profile
0 to 1 0.5
needs USE_D_BOOST
✓✓✓ D-term multiplier when pilot provides rapid stick input. Lower values give sharper response to stick input, higher values give smoother response.
ez_aggressiveness # uint8
control profile
0 to 200 100 ✓✓✓ EzTune aggressiveness
ez_axis_ratio # uint8
control profile
25 to 175 110 ✓✓✓ EzTune axis ratio
ez_damping # uint8
control profile
0 to 200 100 ✓✓✓ EzTune damping
ez_enabled # uint8
control profile
OFF, ON OFF ✓✓✓ Enables EzTune feature
ez_expo # uint8
control profile
0 to 200 100 ✓✓✓ EzTune expo
ez_filter_hz # uint16
control profile
20 to 300 110 ✓✓✓ EzTune filter cutoff frequency
ez_rate # uint8
control profile
0 to 200 100 ✓✓✓ EzTune rate
ez_response # uint8
control profile
0 to 200 100 ✓✓✓ EzTune response
ez_snappiness # uint8
control profile
0 to 100 0 ✓✓✓ EzTune snappiness
ez_stability # uint8
control profile
0 to 200 100 ✓✓✓ EzTune stability
fw_autotune_max_rate_deflection # uint8
global
50 to 100 90
needs USE_AUTOTUNE_FIXED_WING
✓✓✓ The target percentage of maximum mixer output used for determining the rates in `AUTO` and `LIMIT`.
fw_autotune_min_stick # uint8
global
0 to 100 50
needs USE_AUTOTUNE_FIXED_WING
✓✓✓ Minimum stick input [%], after applying deadband and expo, to start recording the plane's response to stick input.
fw_autotune_rate_adjustment # uint8
global
FIXED, LIMIT, AUTO AUTO
needs USE_AUTOTUNE_FIXED_WING
✓✓✓ `AUTO` and `LIMIT` adjust the rates to match the capabilities of the airplane, with `LIMIT` they are never increased above the starting rates setting. `FIXED` does not adjust the rates. Rates are not changed when tuning in `ANGLE` mode.
fw_d_level # uint16
control profile
0 to 255 75 ✓✓✓ Fixed-wing attitude stabilisation HORIZON transition point
fw_d_pitch # uint16
control profile
0 to 255 0 ✓✓✓ Fixed wing rate stabilisation D-gain for PITCH
fw_d_roll # uint16
control profile
0 to 255 0 ✓✓✓ Fixed wing rate stabilisation D-gain for ROLL
fw_d_yaw # uint16
control profile
0 to 255 0 ✓✓✓ Fixed wing rate stabilisation D-gain for YAW
fw_ff_pitch # uint16
control profile
0 to 255 50 ✓✓✓ Fixed-wing rate stabilisation FF-gain for PITCH
fw_ff_roll # uint16
control profile
0 to 255 50 ✓✓✓ Fixed-wing rate stabilisation FF-gain for ROLL
fw_ff_yaw # uint16
control profile
0 to 255 60 ✓✓✓ Fixed-wing rate stabilisation FF-gain for YAW
fw_i_level # uint16
control profile
0 to 255 5 ✓✓✓ Fixed-wing attitude stabilisation low-pass filter cutoff
fw_i_pitch # uint16
control profile
0 to 255 7 ✓✓✓ Fixed-wing rate stabilisation I-gain for PITCH
fw_i_roll # uint16
control profile
0 to 255 7 ✓✓✓ Fixed-wing rate stabilisation I-gain for ROLL
fw_i_yaw # uint16
control profile
0 to 255 10 ✓✓✓ Fixed-wing rate stabilisation I-gain for YAW
fw_iterm_lock_engage_threshold # uint8
control profile
5 to 25 10 ✓✓✓ Defines error rate (in percents of max rate) when Iterm Lock is engaged when sticks are release. Iterm Lock will stay active until error drops below this number
fw_iterm_lock_rate_threshold # uint8
control profile
10 to 100 40 ✓✓✓ Defines the steepness of the attenuation curve. Higher values result in flatter attenuation. Lower values force full attenuation with lower stick deflection
fw_iterm_lock_time_max_ms # uint16
control profile
100 to 1000 500 ✓✓✓ Defines max time in milliseconds for how long ITerm Lock will depress Iterm after sticks are release
fw_level_pitch_gain # float
control profile
0 to 20 5 ✓✓✓ I-gain for the pitch trim for self-leveling flight modes. Higher values means that AUTOTRIM will be faster but might introduce oscillations
fw_level_pitch_trim # float
control profile
-10 to 10 0 ✓✓✓ Pitch trim for self-leveling flight modes. In degrees. +5 means airplane nose should be raised 5 deg from level
fw_p_level # uint16
control profile
0 to 255 20 ✓✓✓ Fixed-wing attitude stabilisation P-gain
fw_p_pitch # uint16
control profile
0 to 255 5 ✓✓✓ Fixed-wing rate stabilisation P-gain for PITCH
fw_p_roll # uint16
control profile
0 to 255 5 ✓✓✓ Fixed-wing rate stabilisation P-gain for ROLL
fw_p_yaw # uint16
control profile
0 to 255 6 ✓✓✓ Fixed-wing rate stabilisation P-gain for YAW
fw_reference_airspeed # float
control profile
300 to 6000 1500 ✓✓✓ Reference airspeed. Set this to airspeed at which PIDs were tuned. Usually should be set to cruise airspeed. Also used for coordinated turn calculation if airspeed sensor is not present.
fw_turn_assist_pitch_gain # float
control profile
0 to 2 1 ✓✓✓ Gain required to keep constant pitch angle during coordinated turns (in TURN_ASSIST mode). Value significantly different from 1.0 indicates a problem with the airspeed calibration (if present) or value of `fw_reference_airspeed` parameter
fw_turn_assist_yaw_gain # float
control profile
0 to 2 1 ✓✓✓ Gain required to keep the yaw rate consistent with the turn rate for a coordinated turn (in TURN_ASSIST mode). Value significantly different from 1.0 indicates a problem with the airspeed calibration (if present) or value of `fw_reference_airspeed` parameter
fw_yaw_iterm_freeze_bank_angle # uint16
control profile
0 to 90 0 ✓✓✓ Yaw Iterm is frozen when bank angle is above this threshold [degrees]. This solves the problem of the rudder counteracting turns by partially disabling yaw stabilization when making banked turns. Setting to 0 (the default) disables this feature. Only applies when autopilot is not active and TURN ASSIST is disabled.
heading_hold_rate_limit # uint8
control profile
10 to 250 90 ✓✓✓ This setting limits yaw rotation rate that HEADING_HOLD controller can request from PID inner loop controller. It is independent from manual yaw rate and used only when HEADING_HOLD flight mode is enabled by pilot, RTH or WAYPOINT modes.
iterm_windup # uint8
control profile
0 to 90 50 ✓✓✓ Used to prevent Iterm accumulation on during maneuvers. Iterm will be dampened when motors are reaching it's limit (when requested motor correction range is above percentage specified by this parameter)
max_angle_inclination_pit # int16
control profile
100 to 900 450 ✓✓✓ Maximum inclination in level (angle) mode (PITCH axis). 100=10°
max_angle_inclination_rll # int16
control profile
100 to 900 450 ✓✓✓ Maximum inclination in level (angle) mode (ROLL axis). 100=10°
mc_cd_lpf_hz # uint8
control profile
0 to 200 30 ✓✓✓ Cutoff frequency for Control Derivative. This controls the cutoff for the LPF that is applied to the CD (Feed Forward) signal to the PID controller. Lower value will produce a smoother CD gain to the controller, but it will be more delayed. Higher values will produce CD gain that may have more noise in the signal depending on your RC link but wil be less delayed.
mc_cd_pitch # uint16
control profile
0 to 255 60 ✓✓✓ Multicopter Control Derivative gain for PITCH (known as 'Feed Forward' in Betaflight). The CD intoduces a term to the PID controller that is the magnitude of the Setpoint change. Fast inputs produce a high CD gain to help push the MC into a move; in advance of the P-gain if set high enough.
mc_cd_roll # uint16
control profile
0 to 255 60 ✓✓✓ Multicopter Control Derivative gain for ROLL (known as 'Feed Forward' in Betaflight). The CD intoduces a term to the PID controller that is the magnitude of the Setpoint change. Fast inputs produce a high CD gain to help push the MC into a move; in advance of the P-gain if set high enough.
mc_cd_yaw # uint16
control profile
0 to 255 60 ✓✓✓ Multicopter Control Derivative gain for YAW (known as 'Feed Forward' in Betaflight). The CD intoduces a term to the PID controller that is the magnitude of the Setpoint change. Fast inputs produce a high CD gain to help push the MC into a move; in advance of the P-gain if set high enough.
mc_d_level # uint16
control profile
0 to 255 75 ✓✓✓ Multicopter attitude stabilisation HORIZON transition point
mc_d_pitch # uint16
control profile
0 to 255 23 ✓✓✓ Multicopter rate stabilisation D-gain for PITCH
mc_d_roll # uint16
control profile
0 to 255 23 ✓✓✓ Multicopter rate stabilisation D-gain for ROLL
mc_d_yaw # uint16
control profile
0 to 255 0 ✓✓✓ Multicopter rate stabilisation D-gain for YAW
mc_i_level # uint16
control profile
0 to 255 15 ✓✓✓ Multicopter attitude stabilisation low-pass filter cutoff
mc_i_pitch # uint16
control profile
0 to 255 30 ✓✓✓ Multicopter rate stabilisation I-gain for PITCH
mc_i_roll # uint16
control profile
0 to 255 30 ✓✓✓ Multicopter rate stabilisation I-gain for ROLL
mc_i_yaw # uint16
control profile
0 to 255 45 ✓✓✓ Multicopter rate stabilisation I-gain for YAW
mc_iterm_relax # uint8
control profile
OFF, RP, RPY RP ✓✓✓ Iterm relax type. When enabled, Iterm will be relaxed when stick is centered. This will help to reduce bounceback and followthrough on multirotors. It is recommended to enable this feature on all multirotors.
mc_iterm_relax_cutoff # uint8
control profile
1 to 100 15 ✓✓✓ Iterm relax cutoff frequency.
mc_p_level # uint16
control profile
0 to 255 20 ✓✓✓ Multicopter attitude stabilisation P-gain
mc_p_pitch # uint16
control profile
0 to 255 40 ✓✓✓ Multicopter rate stabilisation P-gain for PITCH
mc_p_roll # uint16
control profile
0 to 255 40 ✓✓✓ Multicopter rate stabilisation P-gain for ROLL
mc_p_yaw # uint16
control profile
0 to 255 85 ✓✓✓ Multicopter rate stabilisation P-gain for YAW
pid_iterm_limit_percent # uint16
control profile
0 to 200 33 ✓✓✓ Limits max/min I-term value in stabilization PID controller. It solves the problem of servo saturation before take-off/throwing the airplane into the air. Or multirotors with low authority. By default, error accumulated in I-term can not exceed 33% of total pid throw (around 165us on deafult pidsum_limit of pitch/roll). Set 0 to disable completely.
pid_type # uint8
control profile
NONE, PID, PIFF, AUTO AUTO ✓✓✓ Allows to set type of PID controller used in control loop. Possible values: `NONE`, `PID`, `PIFF`, `AUTO`. Change only in case of experimental platforms like VTOL, tailsitters, rovers, boats, etc. Airplanes should always use `PIFF` and multirotors `PID`
rate_accel_limit_roll_pitch # uint32
control profile
0 to 500000 0 ✓✓✓ Limits acceleration of ROLL/PITCH rotation speed that can be requested by stick input. In degrees-per-second-squared. Small and powerful UAV flies great with high acceleration limit ( > 5000 dps^2 and even > 10000 dps^2). Big and heavy multirotors will benefit from low acceleration limit (~ 360 dps^2). When set correctly, it greatly improves stopping performance. Value of 0 disables limiting.
rate_accel_limit_yaw # uint32
control profile
0 to 500000 10000 ✓✓✓ Limits acceleration of YAW rotation speed that can be requested by stick input. In degrees-per-second-squared. Small and powerful UAV flies great with high acceleration limit ( > 10000 dps^2). Big and heavy multirotors will benefit from low acceleration limit (~ 180 dps^2). When set correctly, it greatly improves stopping performance and general stability during yaw turns. Value of 0 disables limiting.
smith_predictor_delay # float
control profile
0 to 8 0
needs USE_SMITH_PREDICTOR
✓✓✓ Expected delay of the gyro signal. In milliseconds
smith_predictor_lpf_hz # uint16
control profile
1 to 500 50
needs USE_SMITH_PREDICTOR
✓✓✓ Cutoff frequency for the Smith Predictor Low Pass Filter
smith_predictor_strength # float
control profile
0 to 1 0.5
needs USE_SMITH_PREDICTOR
✓✓✓ The strength factor of a Smith Predictor of PID measurement. In percents
yaw_lpf_hz # uint8
control profile
0 to 200 0 ✓✓✓ Yaw P term low pass filter cutoff frequency. Should be disabled (set to `0`) on small multirotors (7 inches and below)

✓ 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 target that does not define it has no such setting.Descriptions are INAV's own, from settings.yaml.

Other sections

What changed between releases: 8.0 → 9.0 · 9.0 → 9.1. Machine-readable: params.json (9.1.0), GPL-3.0 like the firmware it comes from.