Skip to main content

Command Line Interface (CLI)

Betaflight has a command line interface (CLI) that can be used to change settings and configure the FC.

This document is a complete reference for all CLI commands and variables in Betaflight 2025.12. It covers every configurable parameter: gyro/filter tuning, PID configuration, rates, failsafe, GPS, battery monitoring, OSD, LED strip, VTX, telemetry, hardware configuration, and more. All defaults and ranges below are accurate for Betaflight 2025.12 only; they may differ in older versions.

Important version differences

  • Dynamic damping naming and calculation have changed: in 4.5 d_roll is D_max and d_min_roll is base D; in 2025.12 d_roll is the base D and d_max_roll is the peak — d_min_roll no longer exists.
  • GPS rescue: gps_rescue_* variables exist in 4.5 only; redesigned in 2025.12.
  • Failsafe landing duration: failsafe_off_delay (4.5) → failsafe_landing_time (2025.12).

CLI Access & Usage

Accessing the CLI

Send # over the serial port (or use the CLI tab in Betaflight Configurator). Enter save to write settings and reboot. Enter exit or exit noreboot to leave without saving.

Key CLI Commands

Betaflight CLI displays useful commands when the help command is entered. Below is a curated list of the most important commands for tuning and configuration. For the full list, refer to the help output of your specific Betaflight version.

CommandDescription
batch start|endStart or end a batch of commands
get [name]Show current value of one or all variables (partial name works: get acc)
set name=valueSet a variable. Must save afterward.
saveWrite settings to flash and reboot FC
save norebootWrite settings without rebooting (2025.12+)
exitExit CLI without saving and reboot
exit norebootExit CLI without saving and without rebooting
diff [master|profile|rates|hardware|all] {defaults|bare}List configuration changes from default
diff allShow all non-default settings across all profiles
dump [master|profile|rates|hardware|all] {defaults|bare}Full configuration dump (all values, including defaults)
dump allFull dump across all profiles
defaultsReset to defaults and reboot
defaults nosaveReset to defaults without rebooting
statusShow FC status: gyro type, loop time, CPU load, arming flags
versionShow firmware version string
tasksShow task scheduler stats (CPU usage per task)
profile [0-5]Change active PID profile
rateprofile [0-5]Change active rate profile
feature listList all available features
feature <feature_name>Enable a feature
feature -<feature_name>Disable a feature
aux <index> <mode> <channel> <start> <end> <logic>Configure AUX mode switch
mixer list|<name>Mixer name or list
mmixDesign custom motor mixer
smixDesign custom servo mixer
servoConfigure servos
ledConfigure leds
colorConfigure colors
mode_colorConfigure mode and special colors
play_sound [<index>]Play a sound for given index, or none for next
mapShow/set RC channel order mapping
rxrangeconfigure rx channel ranges (end-points)
rxfailShow/set per-channel failsafe fallback values
resource <> | <resource name> <index> [<pin>|none] | show [all]Show/set pin assignments
dmaShow/set DMA channel assignments
serialConfigure serial ports and baud rates
serialpassthrough <id1> [<baud1>] [<mode1>] [none|<dtr pinio>|reset] [<id2>] [<baud2>] [<mode2>]Passthrough serial data data from port 1 to VCP / port 2
adjrangeConfigure in-flight adjustment ranges
motor <index> [value]Read or drive a motor (use with caution — props off)
dshot_telemetry_infoShow DSHOT telemetry info and statistics
dshotprog <index> <cmd>+Send DSHOT ESC programming commands
escprog <mode [sk/bl/ki/cc]> <index>Passthrough ESC to serial
gpspassthroughPassthrough GPS to serial
gyroregistersDump raw gyro hardware register contents
simplified_tuning apply|disableApply or clear simplified tuning slider values
bind_rxInitiate RX binding (SRXL2, CRSF, SPI RX)
bl [rom]Reboot into bootloader
mscSwitch to USB mass-storage mode (SD card or flash)
rc_smoothing_infoShow RC smoothing operational settings
vtx_infoShow VTX power configuration
flash_infoShow flash chip info
flash_scanScan flash device for errors
flash_eraseErase flash chip (deletes blackboxes)
tasksShow task stats
timer <> | <pin> list | <pin> [af<alternate function>|none|<option(deprecated)>] | list | showShow/set timers

Backup and Restore

Always back up before firmware updates. Never paste a diff or dump from one firmware version into a different version — variable names and valid ranges change between releases and will silently corrupt the configuration.

# Backup
diff all # preferred — only changed settings, all profiles

# Restore
defaults # full chip erase first
# paste diff output line by line (not too fast over USART)
save

Variable Reference

Column headers: Variable | Default | Range / Values | Description

Scope annotations in the raw dump: profile N = per-PID-profile, rateprofile N = per-rate-profile, no annotation = master (global).


Gyro & IMU

VariableDefaultRange / ValuesDescription
gyro_hardware_lpfNORMALNORMAL, OPTION_1, OPTION_2, EXPERIMENTALHardware low-pass filter mode built into the gyro chip. NORMAL is correct for almost all builds. OPTION_1/2/EXPERIMENTAL select alternative hardware bandwidth settings where supported by the sensor.
gyro_calib_duration12550–3000Gyro calibration duration in 0.1s steps (125 = 12.5s). Longer = more accurate offset measurement.
gyro_calib_noise_limit480–200Noise threshold during calibration. If movement exceeds this, calibration restarts. Increase if it won't calibrate in a noisy environment.
gyro_offset_yaw0−1000 – 1000Manual yaw gyro trim (tenths of degrees/s). Use to correct persistent yaw drift if trim sticks or acc trim are not sufficient.
gyro_overflow_detectALLOFF, YAW, ALLDetects gyro ADC saturation (sensor hitting its limit) and disarms. Recommended: ALL.
imu_dcm_kp25000–32000Complementary filter proportional gain. Controls how aggressively acc data is blended with gyro integration. Default is suitable for all normal use.
imu_dcm_ki00–32000Complementary filter integral gain. Non-zero allows slow acc-based yaw correction. Rarely changed.
imu_process_denom21–4IMU attitude update rate divisor relative to gyro task rate. 2 = update every second gyro cycle. Higher values reduce CPU load at the cost of attitude accuracy.
small_angle250–180Maximum tilt angle (degrees) to permit arming. Set to 180 to arm at any angle (not recommended). During PID tuning set to 30 for safe angle-mode indoor flights.
pid_process_denom11–16PID loop rate divisor relative to gyro rate. 1 = PID runs every gyro sample. For 8kHz gyro with denom=2 → 4kHz PID rate. Target: BMI270 → 3.2kHz (tune with denom accordingly); ICM-42688P/MPU-6000 → 8kHz.
gyro_cal_on_first_armOFFOFF, ONRecalibrates gyro on first arm after power-up. Useful if the FC warms up and gyro drifts before the first arm.
prearm_allow_rearmOFFOFF, ONAllow re-arm without toggling the prearm switch between flights.
auto_disarm_delay50–60Seconds of throttle-zero before auto-disarm. 0 = disabled.
gyro_filter_debug_axisROLLROLL, PITCH, YAWWhich axis is exposed in debug fields for gyro filter analysis.
acc_calibration0,0,0,0Array of 4Raw accelerometer calibration offsets written by the calibration routine. Do not edit manually.
acc_limit00–500 (profile)Limits the accelerometer correction applied to the attitude estimate in angle/horizon mode. 0 = no limit.
acc_limit_yaw00–500 (profile)Same as acc_limit but applied to the yaw axis. 0 = no limit.
acc_high_rangeOFFOFF, ONEnable high-range accelerometer mode for sensors that support it.

Gyro Filters

Gyro LPF1 is the main gyro low-pass. In most modern builds with RPM filtering, disable LPF1 (gyro_lpf1_static_hz = 0) as it adds unnecessary delay. LPF2 is an anti-aliasing filter; raise its cutoff or disable if the gyro and PID rates are equal.

VariableDefaultRange / ValuesDescription
gyro_lpf1_typePT1PT1, BIQUAD, PT2, PT3Filter type for gyro LPF1. PT1 = first-order, least delay.
gyro_lpf1_static_hz2500–1000Static cutoff for LPF1. Set to 0 to disable (recommended with RPM filtering).
gyro_lpf1_dyn_min_hz2500–1000Dynamic LPF1 minimum cutoff (at low throttle). Set equal to gyro_lpf1_static_hz to use static mode.
gyro_lpf1_dyn_max_hz5000–1000Dynamic LPF1 maximum cutoff (at full throttle).
gyro_lpf1_dyn_expo50–10Expo curve shaping for dynamic LPF1 cutoff vs throttle. Higher = faster rise.
gyro_lpf2_typePT1PT1, BIQUAD, PT2, PT3Filter type for gyro LPF2 (anti-aliasing).
gyro_lpf2_static_hz5000–1000LPF2 cutoff. Raise toward 1000 Hz to reduce phase delay. Set to 0 if gyro rate = PID rate (aliasing not possible).
gyro_notch1_hz00–1000Centre frequency of static gyro notch 1. 0 = disabled. Use for specific persistent resonances not handled by dynamic notch.
gyro_notch1_cutoff00–1000Bandwidth of gyro notch 1. Must be less than gyro_notch1_hz.
gyro_notch2_hz00–1000Centre frequency of static gyro notch 2. 0 = disabled.
gyro_notch2_cutoff00–1000Bandwidth of gyro notch 2.

Also see:


Dynamic Notch Filter

Tracks and eliminates frame resonances — visible as vertical stripes (fixed frequency, amplitude varies with throttle) in the blackbox spectrum.

VariableDefaultRange / ValuesDescription
dyn_notch_count30–7Number of independently tracked dynamic notches. Set to 0 to disable if no frame resonances are visible in the spectrum (eliminates delay). With RPM filtering active, 1–2 notches are sufficient for most frame resonances. Without RPM filtering, use 4–5.
dyn_notch_q3001–1000Q factor — narrowness of each notch. Increase until the resonance just stays within the notch, then stop. Max useful value ~1000.
dyn_notch_min_hz10020–250Minimum frequency any notch will track. Set ~25 Hz below the lowest resonance you need to catch. Never set below 150 Hz without reason (ideally ≥200 Hz) — tracking low frequencies causes unwanted filtering of PID-relevant signals.
dyn_notch_max_hz600200–1000Maximum frequency any notch will track. Default 600 is fine for most builds. Narrowing the range improves notch resolution.

Also see:


D-term & PID Output Filters

Two-stage D-term filter chain reduces motor noise heating caused by high-frequency D-term content. Use the Karate approach (slider-based) or the AOS approach (manual dyn cutoff) — not both simultaneously.

VariableDefaultRange / ValuesDescription
dterm_lpf1_typePT1PT1, BIQUAD, PT2, PT3Type for D-term LPF1. BIQUAD gives sharper roll-off; PT1 is less phase.
dterm_lpf1_static_hz750–1000 (profile)Static cutoff for D-term LPF1. Used when dterm_lpf1_dyn_min_hz == dterm_lpf1_dyn_max_hz.
dterm_lpf1_dyn_min_hz750–1000 (profile)Dynamic D-term LPF1 minimum cutoff (at idle throttle). AOS tune: 80 Hz.
dterm_lpf1_dyn_max_hz1500–1000 (profile)Dynamic D-term LPF1 maximum cutoff (at full throttle). AOS tune: 110 Hz.
dterm_lpf1_dyn_expo50–10 (profile)Expo curve for dynamic D-term LPF1 vs throttle. Push as high as possible without mid-throttle oscillations.
dterm_lpf2_typePT1PT1, BIQUAD, PT2, PT3Type for D-term LPF2.
dterm_lpf2_static_hz1500–1000 (profile)Cutoff for D-term LPF2 (always static). Use as a secondary anti-noise stage.
dterm_notch_hz00–1000 (profile)Static D-term notch centre frequency. 0 = disabled. Rarely needed when dynamic notch is active.
dterm_notch_cutoff00–1000 (profile)Static D-term notch bandwidth.
yaw_lowpass_hz1000–500 (profile)Low-pass filter applied to the final yaw PID output (post-summation). Reduces yaw noise feeding into motors. Set to 0 to disable for maximum yaw responsiveness.

Also see:


PID Gains

All gains are per-profile. Scope shown in the raw dump as profile N. The simplified tuning sliders scale these values — after applying simplified tuning, the raw values reflect the result.

VariableDefaultRangeDescription
p_roll450–250Roll P gain. Reacts to angle error. Too high → fast oscillations on sharp moves.
i_roll800–250Roll I gain. Corrects accumulated angle error and maintains attitude. Too low → drift; too high → slow post-flip wobble.
d_roll300–250Base/floor D (D_min). Damps rate of change, counters P overshoot and propwash.
d_max_roll400–250Dynamic damping ceiling — D value used during fast moves. Must be ≥ d_roll.
f_roll1200–1000Feed forward for roll. Compensates for stick input lag. Scaled by the simplified_feedforward_gain slider.
s_roll00–250S-term (stability term) for roll. New in 2025.12 — provides additional stability control. (Requires: USE_WING)
p_pitch470–250Pitch P gain. Pitch typically needs slightly higher P than roll due to greater inertia.
i_pitch840–250Pitch I gain.
d_pitch340–250Base/floor D (D_min).
d_max_pitch460–250D_max for pitch.
f_pitch1250–1000Feed forward for pitch.
s_pitch00–250S-term for pitch. (Requires: USE_WING)
p_yaw450–250Yaw P gain.
i_yaw800–250Yaw I gain.
d_yaw00–250Yaw D gain. Usually left at 0 — yaw is torque-based and inherently slower; D adds noise.
d_max_yaw00–250D_max for yaw.
f_yaw1200–1000Feed forward for yaw.
s_yaw00–250S-term for yaw. (Requires: USE_WING)
pidsum_limit500100–1000 (profile)Clamps total P+I+D output. Set to 1000 (remove clamp) during initial PID tuning; restore default after.
pidsum_limit_yaw400100–1000 (profile)Clamps total yaw PID output. Set to 1000 during initial tuning; default 400 limits yaw authority.
anti_gravity_gain800–250 (profile)Boosts I-term on rapid throttle changes to prevent yaw/pitch dip on punch. Reduce if throttle-punch wobbles appear.
anti_gravity_p_gain1000–250 (profile)Boosts P-term (in addition to I) on rapid throttle changes. Reduce if punches cause P-induced oscillations.
anti_gravity_cutoff_hz52–50 (profile)LPF cutoff for throttle derivative used by anti-gravity. Adjust for very large or small builds (larger = faster, smaller = slower response).
iterm_rotationOFFOFF, ON (profile)Rotates I-term vector with the aircraft during yaw to reduce cross-axis coupling. Primarily useful for 3D flying.
iterm_relaxRPOFF, RP, RPY, RP_INC, RPY_INC (profile)Axes on which I-term relaxation (anti-windup during fast moves) is active. RP = roll and pitch. RPY includes yaw.
iterm_relax_typeSETPOINTGYRO, SETPOINT (profile)Signal used to detect a fast move. SETPOINT uses stick input signal; GYRO uses actual gyro rate. SETPOINT is default and works well for most cases.
iterm_relax_cutoff151–50 (profile)Cutoff frequency for the I-term relax HP filter. Higher = reacts faster (better for racing). Lower = smoother (better for large/slow builds). Typical ranges: Racing: 30–40, Freestyle 5": 15, 7"+: 10, X-Class: 3–5. If bounce-back or post-flip oscillation persists, step this down: 15→10→7→5.
iterm_windup8020–100 (profile)Suppresses I accumulation (in %) when motors are near saturation. Default 80 is sensible.

Also see:


Dynamic Damping (D-min / D-max)

Dynamically increases D on sharp moves while keeping it low during calm flight (to reduce motor heat and noise). Requires setting up both a floor D and a ceiling D — see version notes in the PID Gains section above.

VariableDefaultRangeDescription
d_max_gain370–100 (profile)Controls how aggressively D rises from D_min floor toward D_max ceiling on sharp moves. Default is suitable; reduce if D boost causes propwash on move initiation.
d_max_advance200–200 (profile)Allows D boost to start before the gyro rate peaks, using feedforward signal. Set to 0 during baseline tuning — rarely beneficial and can cause premature D oscillation. Only explore once the baseline is stable.

Setup: Set d_roll = floor D (e.g. 15), d_max_roll = ceiling D (e.g. 30). Calm flight uses d_roll; sharp moves boost toward d_max_roll. Debug with set debug_mode = D_MAX.

Also see:


Feed Forward

Feed forward adds a stick-input derivative term — it anticipates moves rather than reacting to error. Requires clean stick input; apply the appropriate RC link preset first.

Note: Feed forward is bypassed in angle mode. Test FF in acro/rate mode only.

VariableDefaultRange / ValuesDescription
feedforward_transition00–100 (profile)Blends FF toward zero near stick center. 0 = full FF throughout (racing). 40 = freestyle/HD. 70 = cinematic. Set to 0 when feedforward_jitter_factor is active — they serve overlapping purposes and must not be combined.
feedforward_averaging2_POINTOFF, 2_POINT, 3_POINT, 4_POINT (profile)Averages stick input samples before FF calculation to smooth out RC link quantization. OFF = no averaging (snappiest); 4_POINT = heaviest smoothing.
feedforward_smooth_factor650–95 (profile)Additional smoothing applied to the FF signal. Higher = smoother FF output.
feedforward_jitter_factor70–20 (profile)Suppresses FF on very slow or jittery stick inputs. Higher = smoother center feel during slow moves (freestyle/HD). Lower = snappier (racing).
feedforward_boost150–50 (profile)Adds an acceleration component to FF (second derivative of stick). Increase if gyro lags at the start of a move. Decrease if gyro overshoots at move entry (bounce-back at start).
feedforward_max_rate_limit900–200 (profile)Reduces FF as sticks approach maximum deflection. 90 = cut FF when stick is at 90% travel. Raise to 92–95 for crisper move entry on responsive builds.
feedforward_yaw_hold_gain150–100 (profile)Sustains a residual FF signal in yaw after the stick is released, counteracting I-term under-yaw.
feedforward_yaw_hold_time10010–250 (profile)Duration (ms) of the yaw FF hold after stick release.

Also see:


Simplified Tuning Sliders

When simplified tuning is active, these intermediate values drive the actual PID/filter gains. Use simplified_tuning apply in CLI to compute and write the raw values. simplified_tuning disable zeroes the simplified system and leaves the raw values in place for manual editing.

VariableDefaultRangeDescription
simplified_pids_modeRPYOFF, RP, RPY (profile)Which axes the simplified PID sliders control. RPY = all axes.
simplified_master_multiplier1000–200 (profile)Master gain slider — scales all P, I, D and D_max together. Equivalent to PIDtoolbox "Master Multiplier". 100 = default gains.
simplified_pi_gain1000–200 (profile)P and I scaling slider (relative to master).
simplified_d_gain1000–200 (profile)D scaling slider.
simplified_d_max_gain1000–200 (profile)D_max scaling slider (dynamic damping ceiling).
simplified_i_gain1000–200 (profile)I scaling slider (independent of P).
simplified_feedforward_gain1000–200 (profile)Feedforward scaling slider.
simplified_pitch_pi_gain1000–200 (profile)Additional P and I multiplier for pitch only (relative compensation for pitch inertia).
simplified_pitch_d_gain1000–200 (profile)Additional D multiplier for pitch only.
simplified_gyro_filterONOFF, ONWhether simplified slider controls gyro filter cutoffs.
simplified_gyro_filter_multiplier10010–200Gyro filter cutoff scaling slider. 100 = current static values. Raise to reduce gyro filtering (faster).
simplified_dterm_filterONOFF, ON (profile)Whether simplified slider controls D-term filter cutoffs.
simplified_dterm_filter_multiplier10010–200 (profile)D-term filter cutoff scaling slider.

Also see:


TPA (Throttle PID Attenuation)

Attenuates PID gains at high throttle to counteract the increased responsiveness of motors at full power. Use only if oscillations appear at high throttle after filters and PIDs are otherwise tuned.

VariableDefaultRange / ValuesDescription
tpa_modeDPD, D, PDS (profile)Which terms TPA attenuates. D = D only (default, safest). PD = P and D. PDS = P, D, and S-term.
tpa_rate650–100 (profile)Maximum attenuation percentage at full throttle. 65 = PIDs are at 35% above the breakpoint.
tpa_breakpoint13501000–2000 (profile)Throttle level (1000–2000 scale) where TPA begins. Attenuation is proportional from here to full throttle.
tpa_low_rate20−128–100 (profile)D attenuation at minimum throttle (TPA Low). Reduces D-term shaking during throttle chops.
tpa_low_breakpoint10501000–2000 (profile)Throttle level below which TPA Low applies.
tpa_low_alwaysOFFOFF, ON (profile)OFF = TPA Low is only active before Airmode activates; ON = active throughout the flight.
tpa_curve_typeCLASSICCLASSIC, HYPERBOLIC (profile)TPA curve shape. CLASSIC matches legacy TPA behaviour. HYPERBOLIC applies a hyperbolic attenuation curve. (Requires: USE_ADVANCED_TPA)
tpa_curve_expo20−100–100 (profile)Expo applied to the TPA curve. Negative = more attenuation at low throttle; positive = more at high throttle. (Requires: USE_ADVANCED_TPA)
tpa_curve_pid_thr02000–1000 (profile)PID value (×0.1%) at zero throttle for the TPA curve. Default 200 = 20% of full PID at idle. (Requires: USE_ADVANCED_TPA)
tpa_curve_pid_thr100700–1000 (profile)PID value (×0.1%) at full throttle for the TPA curve. Default 70 = 7% of full PID at max throttle. (Requires: USE_ADVANCED_TPA)
tpa_curve_stall_throttle300–100 (profile)Throttle % below which the craft is considered stalled (for wing/fixed-wing TPA). (Requires: USE_ADVANCED_TPA)
tpa_speed_typeBASICBASIC, ADVANCED (profile)Speed-based TPA. BASIC uses GPS-derived speed. ADVANCED uses a physics model based on motor/prop parameters. (Requires: USE_WING)
tpa_speed_basic_delay10001–65535 (profile)Delay (ms) before speed-based TPA updates after a speed change. Prevents rapid gain changes during maneuvers. (Requires: USE_WING)
tpa_speed_basic_gravity501–65535 (profile)Gravity factor for BASIC speed TPA. Affects TPA response curve vs airspeed. (Requires: USE_WING)
tpa_speed_max_voltage25200–65535 (profile)Maximum pack voltage (in mV×0.1) used to normalize motor speed in BASIC speed TPA. (Requires: USE_WING)
tpa_speed_pitch_offset0−32768–32767 (profile)Pitch offset correction for speed TPA (wing/fixed-wing trim). (Requires: USE_WING)
tpa_speed_adv_drag_k10001–65535 (profile)Aerodynamic drag coefficient for ADVANCED speed TPA physics model. (Requires: USE_WING)
tpa_speed_adv_mass10001–65535 (profile)Craft mass (g×0.1) for ADVANCED speed TPA physics model. (Requires: USE_WING)
tpa_speed_adv_prop_pitch3700–65535 (profile)Propeller pitch (mm) for ADVANCED speed TPA physics model. (Requires: USE_WING)
tpa_speed_adv_thrust20001–65535 (profile)Maximum thrust (g) for ADVANCED speed TPA physics model. (Requires: USE_WING)

Rates

Betaflight 2025.12 defaults to the ACTUAL rates system. In ACTUAL: RC_Rate = degrees/sec at stick center, Expo = transition sharpness, Super Rate = max rate. In BETAFLIGHT legacy system: RC_Rate, Expo, and RC_Rate interact differently.

VariableDefaultRangeDescription
rates_typeACTUALBETAFLIGHT, RACEFLIGHT, KISS, ACTUAL, QUICK (rateprofile)Rate calculation system. ACTUAL is the most intuitive (center sens and max rate are directly set).
roll_rc_rate71–255 (rateprofile)Roll rate at stick center in deg/s×10 (ACTUAL) or RC multiplier (legacy).
pitch_rc_rate71–255 (rateprofile)Pitch rate at stick center.
yaw_rc_rate71–255 (rateprofile)Yaw rate at stick center.
roll_expo00–100 (rateprofile)Roll expo — transition between center sensitivity and max rate. Higher = more expo, slower center, faster edges.
pitch_expo00–100 (rateprofile)Pitch expo.
yaw_expo00–100 (rateprofile)Yaw expo.
roll_srate670–255 (rateprofile)Roll super rate — max rate at full stick deflection (ACTUAL system).
pitch_srate670–255 (rateprofile)Pitch super rate.
yaw_srate670–255 (rateprofile)Yaw super rate.
quickrates_rc_expoOFFOFF, ON (rateprofile)In QUICK rates mode, applies expo globally.
thr_mid500–100 (rateprofile)Throttle curve mid-point — sets the thrust at 50% stick.
thr_expo00–100 (rateprofile)Throttle expo.
thr_hover500–100 (rateprofile)Estimated hover throttle percentage. Used by alt-hold and some internal calculations.
throttle_limit_typeOFFOFF, SCALE, CLIP (rateprofile)Limits maximum throttle output. SCALE = proportionally scales all outputs; CLIP = hard ceiling.
throttle_limit_percent10025–100 (rateprofile)Maximum throttle percentage when throttle_limit_type is active.
roll_rate_limit1998200–1998 (rateprofile)Hard cap on roll rate in deg/s, applied after the rates curve.
pitch_rate_limit1998200–1998 (rateprofile)Hard cap on pitch rate.
yaw_rate_limit1998200–1998 (rateprofile)Hard cap on yaw rate.
yaw_control_reversedOFFOFF, ONReverses the direction of yaw stick.
fpv_mix_degrees00–90FPV camera tilt angle for tilt-compensated yaw mixing.

Also see:


Angle & Horizon Mode

VariableDefaultRangeDescription
angle_p_gain500–200 (profile)P gain for angle mode self-leveling. Higher = stronger return to level.
angle_feedforward500–200 (profile)Feedforward in angle mode — reduces lag when moving the angle setpoint.
angle_feedforward_smoothing_ms8010–250 (profile)Smoothing applied to angle feedforward signal.
angle_limit6010–80 (profile)Maximum tilt angle in angle mode (degrees).
angle_earth_ref1000–100 (profile)Proportion of earth-frame reference used in angle mode (0 = body frame, 100 = full earth frame). 100 is recommended for GPS rescue compatibility.
angle_pitch_offset0−450–450 (profile)Pitch trim offset in tenths of degrees for angle mode. Use to adjust the level hover point without reflying. (Requires: USE_WING)
horizon_level_strength750–100Level mode strength at stick center in horizon mode.
horizon_limit_sticks7510–200Stick deflection (%) at which horizon mode gives full acro authority.
horizon_limit_degrees13510–250Maximum attitude angle before horizon mode enforces leveling.
acc_trim_pitch0−300–300Accelerometer pitch trim for level calibration.
acc_trim_roll0−300–300Accelerometer roll trim for level calibration.
acc_lpf_hz250–500Accelerometer low-pass filter cutoff. Smooths acc readings used for attitude estimation.
horizon_delay_ms50010–5000 (profile)Time (ms) before horizon mode re-applies leveling after sticks return to center. Delays return-to-level for a more acro-like feel.
horizon_ignore_sticksOFFOFF, ON (profile)When ON, horizon mode ignores stick input for the leveling transition — governed by horizon_delay_ms only.
level_race_modeOFFOFF, ON (profile)When ON, angle mode holds the current angle as the setpoint rather than actively leveling. For racing use of angle mode.
landing_disarm_threshold00–250 (profile)Accelerometer impact threshold for auto-disarm on landing (used by GPS Rescue and EZ Landing). 0 = disabled.

Also see:


Motor & ESC

VariableDefaultRange / ValuesDescription
motor_pwm_protocolDSHOT600PWM, ONESHOT125, ONESHOT42, MULTISHOT, BRUSHED, DSHOT150, DSHOT300, DSHOT600, PROSHOT1000, DISABLEDESC communication protocol. DSHOT600 for ICM-42688P/MPU-6000 at 8kHz; DSHOT300 for BMI270 at 3.2kHz (DSHOT600 at 3.2kHz is marginal).
dshot_bidirOFFOFF, ONEnables bidirectional DSHOT for RPM telemetry. Required for RPM filtering. ESC firmware must support it. (Requires: USE_DSHOT + USE_DSHOT_TELEMETRY)
dshot_burstAUTOOFF, ON, AUTODSHOT burst transmission mode. AUTO selects based on hardware capability. (Requires: USE_DSHOT + USE_DSHOT_DMAR)
dshot_edtOFFOFF, ON, FORCEExtended DSHOT Telemetry — provides additional ESC data beyond RPM. FORCE enables EDT even when bidir is off. (Requires: USE_DSHOT + USE_DSHOT_TELEMETRY)
dshot_bitbangAUTOOFF, ON, AUTODSHOT bitbang implementation (software DSHOT). AUTO selects automatically. (Requires: USE_DSHOT + USE_DSHOT_BITBANG)
dshot_bitbang_timerAUTOAUTO, TIM1, TIM8Timer used for bitbang DSHOT. (Requires: USE_DSHOT + USE_DSHOT_BITBANG)
motor_poles144–255Number of magnetic poles on the motor bell (magnet count, not stator count). Critical for RPM filter accuracy. Most 5" motors have 14 magnets; verify on your specific motors. Wrong value → filters tracking wrong frequencies.
motor_kv19601–40000Motor KV rating. Used in some internal calculations. Set to your actual motor KV for accurate RPM limit and dynamic idle features.
motor_idle5500–2000Idle throttle value sent to ESCs when armed (units depend on protocol). Used as the minimum non-zero motor command.
min_command1000750–2250PWM value sent to ESCs when disarmed or at zero throttle (for PWM-based protocols). For DSHOT, this is overridden by the protocol.
max_throttle2000750–2250Maximum PWM value sent to ESCs (for PWM-based protocols).
motor_output_limit1001–100 (profile)Caps per-motor output as a percentage. Use when running higher cell count than motors are rated for (e.g. 6S on a 4S build → set to ~66%).
motor_output_reordering0,1,2,3,4,5,6,7arrayReorders motor output channels without rewiring. Specify the output index for each motor position.
motor_pwm_rate480200–32000PWM frequency for brushed motor mode. Not relevant for DSHOT protocols.
motor_pwm_inversionOFFOFF, ONInvert PWM output polarity. For ESCs that require inverted signal.
use_unsynced_pwmOFFOFF, ONSend motor PWM unsynchronised to the PID loop. Primarily for brushed motors.
thrust_linear00–150 (profile)Linearises the thrust curve at low throttle. Improves low-throttle authority and responsiveness, especially for whoops and 48kHz ESCs. 20–40% is typically enough; no effect above mid-throttle.
throttle_boost50–100Transiently boosts throttle output on fast throttle stick changes for immediate throttle feel.
throttle_boost_cutoff155–50LPF cutoff for throttle derivative used by throttle_boost.
yaw_motors_reversedOFFOFF, ONReverse yaw PID output sign. Use when motor spin direction is swapped from normal.
rpm_limitOFFOFF, ONEnables per-motor RPM limit. (Requires: USE_RPM_LIMIT)
rpm_limit_value180001–65535Maximum motor RPM when rpm_limit is ON. (Requires: USE_RPM_LIMIT)
rpm_limit_p250–100P gain for RPM limiter controller. (Requires: USE_RPM_LIMIT)
rpm_limit_i100–1000I gain for RPM limiter controller. (Requires: USE_RPM_LIMIT)
rpm_limit_d80–100D gain for RPM limiter controller. (Requires: USE_RPM_LIMIT)
esc_sensor_current_offset00–16000Current offset applied to ESC sensor current reading in mA. Use to zero-calibrate ESC current reporting. (Requires: USE_ESC_SENSOR)
esc_sensor_halfduplexOFFOFF, ONEnable half-duplex UART for ESC sensor (BLHeli32/AM32 telemetry on a single wire). (Requires: USE_ESC_SENSOR)
mixer_typeLEGACYLEGACY, LINEAR, DYNAMIC, EZLANDINGMotor mixer output mode. LEGACY = classic mixer. LINEAR = linear output scaling. DYNAMIC = dynamic output scaling. EZLANDING = enables EZ Landing soft-landing feature.

Also see:


RPM Filter (Bidirectional DSHOT)

Requires bidirectional DSHOT (dshot_bidir = ON) and ESC firmware that supports it (BLHeli_32, AM32, BlueJay). Motor noise typically starts around 100 Hz and increases with throttle. Harmonics occur at 2× and 3× the fundamental.

VariableDefaultRange / ValuesDescription
rpm_filter_harmonics30–3Number of RPM harmonics to filter per motor. 3 = fundamental + 2nd + 3rd. 0 disables RPM filtering.
rpm_filter_weights100,100,100Array of 3, 0–100 eachPer-harmonic notch depth percentage. Tri-blade props: try 100,0,80 (2nd harmonic absent). Bi-blade: 100,80,0 or 100,50,0. Lower each as far as possible without motor noise appearing in filtered gyro.
rpm_filter_q500250–3000Q factor (notch sharpness). Target 1000 on well-configured 5" builds — default 500 is a starting point, not a goal. Higher Q = narrower notch = less phase delay. Back off only if motor noise bleeds through.
rpm_filter_min_hz10030–200Below this frequency, notches are not applied. Lower on larger quads with slower-spinning motors (7"+ reduce to 60–80 Hz).
rpm_filter_fade_range_hz500–1000Frequency band over which notches fade in at low throttle, reducing delay at idle.
rpm_filter_lpf_hz150100–500Post-notch smoothing LPF applied to the RPM signal used for notch tracking.

Also see:


Dynamic Idle

Prevents motor stall during flips/rolls and throttle chops. Any non-zero dyn_idle_min_rpm enables it. Always set transient_throttle_limit = 0 when enabling dynamic idle.

VariableDefaultRangeDescription
pid_at_min_throttleONOFF, ONKeeps PIDs active at minimum throttle (idle). Required for airmode to function correctly; normally left ON.
dyn_idle_min_rpm00–200 (profile)Minimum motor RPM maintained by dynamic idle. Set non-zero to enable. Target by prop size.
dyn_idle_p_gain501–250 (profile)P gain of the dynamic idle RPM controller. Reduce if idle causes oscillation.
dyn_idle_i_gain501–250 (profile)I gain of the dynamic idle RPM controller.
dyn_idle_d_gain500–250 (profile)D gain of the dynamic idle RPM controller.
dyn_idle_max_increase15010–255 (profile)Maximum throttle increase (in motor units) the dynamic idle controller can command above the static idle value.
transient_throttle_limit00–30 (profile)Limits rapid throttle-up transients. Must be set to 0 when dynamic idle is enabled. Non-zero values were used before dynamic idle existed. (Requires: USE_AIRMODE_LPF)

Also see:


RC Input & Smoothing

VariableDefaultRange / ValuesDescription
serialrx_providerCRSFSPEK1024, SPEK2048, SBUS, SUMD, IBUS, JETIEXBUS, CRSF, SRXL, SRXL2, …Serial RX protocol. Must match the receiver's output format.
serialrx_invertedOFFOFF, ONInvert the serial RX signal. Required for some receivers on certain FC designs.
serialrx_halfduplexOFFOFF, ONUse single-wire half-duplex UART for serial RX (some CRSF implementations).
sbus_baud_fastOFFOFF, ONEnable fast (200kbps) SBUS mode. For SBUS receivers that support it.
crsf_use_negotiated_baudOFFOFF, ONAllow CRSF to negotiate baud rate. Enable when using faster CRSF rates (e.g. ELRS negotiated speed).
rx_min_usec885750–2250Shortest channel pulse width considered valid. Values below this trigger signal-loss detection (PPM/PWM).
rx_max_usec2115750–2250Longest channel pulse width considered valid.
mid_rc15001200–1700RC mid-point. Match to your transmitter's stick center value. Futaba radios often need 1520.
min_check1050750–2250RC channel value below which arm/disarm and stick commands are recognized.
max_check1900750–2250RC channel value above which arm/disarm and stick commands are recognized.
deadband00–32RC deadband around stick center (microseconds). Increase if sticks don't return to exact center.
yaw_deadband00–100Yaw-specific deadband around center.
max_aux_channels140–14Maximum number of AUX channels processed.
rc_smoothingONOFF, ONEnables RC input interpolation and smoothing between received frames.
rc_smoothing_auto_factor300–250Auto-smoothing aggressiveness for setpoint channels. Higher = smoother but more lag. Preset applies the correct value for your RC link.
rc_smoothing_auto_factor_throttle300–250Auto-smoothing aggressiveness for throttle channel.
rc_smoothing_setpoint_cutoff00–255Manual setpoint smoothing cutoff. 0 = use auto.
rc_smoothing_throttle_cutoff00–255Manual throttle smoothing cutoff. 0 = use auto.
rc_smoothing_debug_axisROLLROLL, PITCH, YAW, THROTTLEWhich axis to expose in the RC smoothing debug fields (visible in blackbox when debug_mode = RC_SMOOTHING).
airmode_start_throttle_percent250–100Throttle percentage above which airmode activates. At higher values, motors begin to idle before airmode engages.
rssi_channel00–18AUX channel carrying RSSI signal. 0 = not using channel RSSI.
rssi_scale1001–255Scales the RSSI input.
rssi_offset0−100–100Offsets the RSSI reading.
rssi_invertOFFOFF, ONInvert the RSSI signal (some receivers send inverted RSSI).
rssi_smoothing1250–255LPF period for RSSI smoothing. Higher = smoother but slower response to signal changes.
rssi_src_frame_errorsOFFOFF, ONDerive RSSI from frame error rate (for receivers that do not report RSSI directly).
rssi_src_frame_lpf_period300–255LPF period for frame-error-based RSSI smoothing.
pid_in_tlmOFFOFF, ONInclude PID data in telemetry output (where supported by the telemetry protocol).
channel_forwarding_start44–18First AUX channel to forward to servo outputs (for channel forwarding to servos). (Requires: USE_SERVOS)
input_filtering_modeOFFOFF, ONEnable hardware-level RC input filtering. Required on some F1 targets; leave OFF on modern hardware.

Also see:


Battery & Current Sensing

VariableDefaultRange / ValuesDescription
battery_meterADCNONE, ADC, ESCSource for battery voltage reading. ADC = onboard voltage divider. ESC = from ESC telemetry.
battery_continueOFFOFF, ONContinue logging/flying after battery disconnect/reconnect (for hot-swap builds). (Requires: USE_BATTERY_CONTINUE)
vbat_scale1100–255Voltage divider calibration. Adjust until reported voltage matches a multimeter.
vbat_divider101–255Voltage divider ratio numerator.
vbat_multiplier11–255Voltage divider ratio multiplier.
vbat_detect_cell_voltage3000–2000Voltage above which a battery is considered connected (×0.01V per cell).
force_battery_cell_count00–24Override auto cell-count detection. 0 = auto-detect from vbat_max_cell_voltage.
vbat_max_cell_voltage430100–500Maximum per-cell voltage for auto cell-count detection (×0.01V). Default 430 = 4.30V.
vbat_full_cell_voltage410100–500"Full" cell voltage for capacity display. Default 410 = 4.10V.
vbat_warning_cell_voltage350100–500Warning threshold voltage per cell (×0.01V). Default 350 = 3.50V.
vbat_min_cell_voltage330100–500Minimum cell voltage — triggers battery-critical alarm (×0.01V). Default 330 = 3.30V.
vbat_hysteresis10–250Hysteresis on voltage warnings to prevent flicker (×0.01V).
vbat_duration_for_warning00–150Consecutive tenths-of-seconds the voltage must remain below the warning threshold before the warning alarm fires. Prevents brief-spike false alarms.
vbat_duration_for_critical00–150Same as above but for the critical threshold.
vbat_display_lpf_period301–255LPF period for the voltage shown on the OSD (smooths display flickering). Does not affect alarm thresholds.
vbat_sag_lpf_period21–255LPF period for battery sag compensation voltage measurement. Lower = faster response to sag.
vbat_cutoff_percent1000–100Percentage of vbat_sag_compensation to apply at critically low voltage.
vbat_sag_compensation00–150 (profile)Compensates for battery voltage sag to maintain consistent PID authority and throttle output across a pack. 90% is a good target — avoids stressing the pack at low voltage while still providing consistency. Requires cell voltage monitoring; configure a low-voltage OSD warning when enabled.
bat_capacity00–20000Battery capacity in mAh. Used with current meter to estimate remaining charge.
use_vbat_alertsONOFF, ONEnable voltage-based OSD/beeper warnings.
use_cbat_alertsOFFOFF, ONEnable capacity-based OSD/beeper warnings.
cbat_alert_percent100–100Remaining capacity percentage to trigger a battery alert.
report_cell_voltageOFFOFF, ONReport per-cell voltage (total / cell count) instead of pack voltage in telemetry.
current_meterADCNONE, ADC, VIRTUAL, ESC, MSPCurrent sensor source. ADC = onboard shunt. ESC = ESC telemetry current.
ibata_scale558−16000–16000ADC current sensor scale factor (mV/A × 10). Calibrate against a known load.
ibata_offset0−32000–32000ADC current sensor offset in millivolts.
ibatv_scale0−16000–16000Virtual current sensor scale. (Requires: USE_VIRTUAL_CURRENT_METER)
ibatv_offset00–16000Virtual current sensor voltage offset. (Requires: USE_VIRTUAL_CURRENT_METER)
ibat_lpf_period100–255LPF period for the displayed current reading. Higher = smoother OSD current display.

Also see:


Blackbox

VariableDefaultRange / ValuesDescription
blackbox_deviceSPIFLASHNONE, SPIFLASH, SDCARD, SERIALLogging destination. SPIFLASH = onboard flash. SDCARD = SD card. SERIAL = via serial port (high baud rate required).
blackbox_sample_rate1/41/1, 1/2, 1/4, 1/8, 1/16Fraction of gyro samples logged. Target: half the gyro update frequency, minimum 1kHz. At 8kHz gyro: use 1/8 → 1kHz. At 3.2kHz gyro: use 1/2 → 1.6kHz. Finer = larger logs.
blackbox_modeNORMALNORMAL, MOTOR_TEST, ALWAYSNORMAL = log only when armed. ALWAYS = log even when disarmed. MOTOR_TEST = motor test mode.
blackbox_high_resolutionOFFOFF, ONDouble the data precision for gyro and setpoint fields. Increases log size.
blackbox_disable_pidsOFFOFF, ONExclude PID data from logs. Reduces log size.
blackbox_disable_rcOFFOFF, ONExclude RC channel data from logs.
blackbox_disable_setpointOFFOFF, ONExclude setpoint data.
blackbox_disable_batOFFOFF, ONExclude battery data.
blackbox_disable_altOFFOFF, ONExclude altitude data.
blackbox_disable_rssiOFFOFF, ONExclude RSSI data.
blackbox_disable_gyroOFFOFF, ONExclude filtered gyro data.
blackbox_disable_gyrounfiltOFFOFF, ONExclude unfiltered gyro data.
blackbox_disable_accOFFOFF, ONExclude accelerometer data.
blackbox_disable_debugOFFOFF, ONExclude debug fields.
blackbox_disable_motorsOFFOFF, ONExclude motor output data.
blackbox_disable_rpmOFFOFF, ONExclude RPM telemetry data. (Requires: USE_DSHOT_TELEMETRY)
blackbox_disable_gpsOFFOFF, ONExclude GPS data. (Requires: USE_GPS)
blackbox_disable_attitudeOFFOFF, ONExclude attitude (roll/pitch/yaw angle) data from logs.
blackbox_disable_servosOFFOFF, ONExclude servo output data from logs. (Requires: USE_SERVOS)

Also see:


Failsafe

Always use FC-based failsafe (configure receiver to send no data on signal loss — not fixed values). Receiver-based failsafe is not recommended; the FC cannot detect it.

VariableDefaultRange / ValuesDescription
failsafe_procedureDROPAUTO-LAND, DROP, GPS-RESCUEStage 2 procedure. DROP = immediate motor cut and disarm (default, safest for racing). AUTO-LAND = fixed throttle + centered sticks for failsafe_landing_time then disarm. GPS-RESCUE = autonomous return-to-home.
failsafe_delay15 (1.5 s)1–200 (deciseconds)Stage 1 guard duration — time from confirmed signal loss to Stage 2 activation. Default 15 = 1.5 s. Minimum safe value is 2 (200 ms).
failsafe_landing_time60 (6 s)0–250 (deciseconds)Duration of Landing Mode (AUTO-LAND) Stage 2.
failsafe_throttle1000750–2250Throttle value applied during Landing Mode Stage 2 AND used as the Stage 1 fallback throttle if configured. Default 1000 = motors off. For GPS Rescue: must be set to a hover throttle value, or the quad drops in Stage 1 before Rescue can activate.
failsafe_switch_modeSTAGE1STAGE1, KILL, STAGE2Aux switch behavior: STAGE1 = simulates signal loss (useful for testing and as a panic switch), STAGE2 = skips Stage 1 (instant GPS rescue / drop), KILL = instant disarm (dangerous, any glitch crashes the quad).
failsafe_recovery_delay5 (0.5 s)1–200 (deciseconds)Duration the signal must be stable after Stage 2 before the pilot can re-arm or (for GPS Rescue) before stick inputs are assessed.
failsafe_stick_threshold300–50Stick deflection (degrees from center) required to exit GPS Rescue Stage 2 after signal recovery. Move sticks to this threshold once video returns and RXLOSS clears.
failsafe_throttle_low_delay100 (10 s)0–300 (deciseconds)If throttle has been low for this duration before Stage 2 triggers, the FC immediately disarms instead of activating Landing Mode (the "Just Drop" override). Protects pilots who power off their transmitter after landing without disarming.

Also see:


GPS Rescue

Prerequisites: GPS module (UBlox M8N minimum, M10 recommended), calibrated accelerometer, verified angle mode leveling, minimum satellites before arming, home point established before flight.

VariableDefaultRange / ValuesDescription
gps_rescue_initial_climb100–100 mAltitude to climb from current position before heading home. Set high enough to clear local obstacles.
gps_rescue_return_alt300–150 mTarget return cruise altitude. If the quad is already above this, it maintains current altitude.
gps_rescue_alt_modeMAX_ALTMAX_ALT, FIXED_ALT, CURRENT_ALTMAX_ALT = use the higher of gps_rescue_initial_climb or max altitude recorded + 15 m. FIXED_ALT = always return to gps_rescue_initial_climb. CURRENT_ALT = hold current altitude (not recommended).
gps_rescue_ascend_rate750100–2500 cm/sClimb rate during initial climb phase.
gps_rescue_descend_rate150100–500 cm/sDescent rate when approaching home.
gps_rescue_ground_speed75010–3000 cm/sForward speed during return (cm/s). 750 ≈ 27 km/h. Reduce for reliability in windy conditions.
gps_rescue_max_angle450–60 degMaximum tilt angle allowed during return. Higher allows faster flight but makes altitude control harder. Raise for headwinds.
gps_rescue_descent_dist205–200 mDistance from home at which descent begins.
gps_rescue_min_start_dist1510–3000 mMinimum distance from home to activate rescue. Closer than this → disarm and drop (prevents accidental rescue activation nearby).
gps_rescue_min_sats85–50Minimum satellite count required to arm with GPS rescue configured. OSD shows RESCUE N/A if below this.
gps_rescue_sanity_checksRESCUE_SANITY_FS_ONLYRESCUE_SANITY_ON, RESCUE_SANITY_FS_ONLY, OFFStrongly recommended: RESCUE_SANITY_ON. Aborts rescue (disarms) if: GPS lost, fix invalid, quad crashed, sat count drops, or quad not approaching home.
gps_rescue_allow_arming_without_fixOFFOFF, ONAllow arming without a GPS fix. GPS rescue is unavailable during such a flight — OSD shows RESCUE OFF.
gps_rescue_use_magONOFF, ONUse magnetometer for heading during rescue. Only enable if the mag reading has been verified accurate (compare with phone compass; both must agree within 10°). An incorrect mag causes flyaways. (Requires: USE_GPS + USE_GPS_RESCUE + USE_MAG)
gps_rescue_velocity_p80–250Velocity controller P gain (forward speed regulation).
gps_rescue_velocity_i400–250Velocity controller I gain.
gps_rescue_velocity_d120–250Velocity controller D gain.
gps_rescue_yaw_p200–250Yaw P gain during rescue (heading correction).
gps_rescue_imu_yaw_gain100–250Aggressiveness of IMU heading correction during rescue. Reduce if heading oscillates.
gps_rescue_roll_mix1500–250Mix of roll vs yaw for lateral correction during approach.
gps_rescue_pitch_cutoff7510–250Smoothing cutoff for pitch D term during rescue.
gps_rescue_disarm_threshold200–100Impact detection threshold for auto-disarm on landing. Lower = more sensitive.

Also see:


GPS Settings

VariableDefaultRange / ValuesDescription
gps_providerUBLOXNMEA, UBLOX, MSP, VIRTUALGPS protocol. Prefer UBLOX for UBlox modules — significantly more reliable than NMEA.
gps_auto_configONOFF, ONAutomatically configure UBlox modules on connection (baud rate, update rate, message types). Leave ON unless you pre-configure the module with uCenter.
gps_auto_baudOFFOFF, ONAutomatically detect GPS baud rate.
gps_update_rate_hz101–20Target GPS update rate. 10 Hz recommended for GPS rescue. Reduce to 1–2 Hz if not using GPS rescue (reduces CPU load, may allow 8k8k on some boards).
gps_sbas_modeNONEAUTO, EGNOS, WAAS, MSAS, GAGAN, NONESBAS (satellite correction) system for the region.
gps_ublox_use_galileoOFFOFF, ONEnable Galileo constellation on UBlox modules.
gps_ublox_acquire_modelSTATIONARYPORTABLE, STATIONARY, PEDESTRIAN, AUTOMOTIVE, AT_SEA, AIRBORNE_1G, AIRBORNE_2G, AIRBORNE_4GUBlox dynamic model used while acquiring fix.
gps_ublox_flight_modelAIRBORNE_4GPORTABLE, STATIONARY, PEDESTRIAN, AUTOMOTIVE, AT_SEA, AIRBORNE_1G, AIRBORNE_2G, AIRBORNE_4GUBlox dynamic model used during flight. AIRBORNE_4G handles high-dynamics FPV.
gps_set_home_point_onceOFFOFF, ONOnly set the home point on the first arm after battery connect. Prevents home being reset if you disarm and re-arm mid-field.
gps_use_3d_speedOFFOFF, ONUse 3D speed (including vertical) for GPS speed display.
gps_sbas_integrityOFFOFF, ONRequire SBAS integrity data before using SBAS corrections.
gps_nmea_custom_commandsstring (1–64)Custom NMEA sentences to send to the GPS module on init (NMEA provider only).
gps_ublox_utc_standardAUTOAUTO, USNO, EU, SU, NTSCUTC time standard to configure on UBlox modules.

Also see:


System & Debug

VariableDefaultRange / ValuesDescription
debug_modeNONENONE, GYRO_SCALED, FFT, FFT_TIME, FFT_FREQ, GYRO_FILTERED, D_MAX, DYN_IDLE, ITERM_RELAX, FEEDFORWARD, RC_SMOOTHING, DSHOT_RPM_TELEMETRY, RPM_FILTER, GPS_RESCUE_VELOCITY, GPS_RESCUE_HEADING, FAILSAFE, … (many more)Select which internal signals are exposed in blackbox debug fields. Key modes: FFT_FREQ (filter frequency analysis), FFT_TIME (FFT time-domain), FFT (general FFT), GYRO_SCALED (raw gyro, filter tuning), D_MAX (dynamic damping), DYN_IDLE (dynamic idle), ITERM_RELAX (I-term relax), FEEDFORWARD (FF signals), FAILSAFE (failsafe state).
task_statisticsONOFF, ONEnables CPU task profiling visible via tasks CLI command. Turn OFF to reduce overhead on heavily loaded systems.
cpu_overclockOFFOFF, 192MHZ, 216MHZ, 240MHZOverclock the STM32 F7 processor. Use only if CPU load is too high and the board supports it.
pwr_on_arm_grace50–30 sGrace period after power-on during which arming is blocked (prevents arming before receiver binds).
serial_update_rate_hz100100–2000Rate at which MSP/CLI serial output is processed.
reboot_character8248–126ASCII character that triggers a reboot when sent to the FC (default: 'R').
scheduler_relax_rx250–500 μsScheduler relaxation time for RX task. Controls how much other tasks can run during RX processing.
scheduler_relax_osd250–500 μsScheduler relaxation time for OSD task.
align_board_roll0−180–360Board rotation offset in roll (degrees). For non-standard FC mounting orientations.
align_board_pitch0−180–360Board rotation offset in pitch.
align_board_yaw45−180–360Board rotation offset in yaw (degrees). For non-standard FC mounting orientations.
mag_declination0−18000–18000 (hundredths of degrees)Magnetic declination correction for your location. Find at ngdc.noaa.gov/geomag/calculators. (Requires: USE_MAG)
rate_6pos_switchOFFOFF, ONEnable 6-position rate profile selection via an AUX channel.
enable_stick_armingOFFOFF, ONEnable stick-combination arming (throttle-down/yaw-right). Disable if using a dedicated arm switch.
runaway_takeoff_preventionONOFF, ONDetects uncommanded throttle-up on arm and disarms to prevent injury.
runaway_takeoff_deactivate_delay500100–1000 msTime after arming before runaway takeoff protection stops monitoring.
runaway_takeoff_deactivate_throttle_percent200–100Throttle percentage above which the pilot's intent is clear and runaway protection deactivates.
cpu_late_limit_permille100–100CPU late task limit in permille (per-thousand). Controls scheduler behaviour when tasks are running late. (Requires: USE_LATE_TASK_STATISTICS)
scheduler_debug_task00–36Task index to expose in scheduler debug output. Used for per-task timing analysis.
mco2_on_pc9OFFOFF, ONOutput MCO2 clock signal on PC9 pin (STM32 specific). Advanced hardware debugging only.
system_hse_mhz00–30External crystal frequency in MHz. Set to 0 for auto-detect. Required for some non-standard clock speeds.

Board & Hardware

VariableDefaultRange / ValuesDescription
acc_hardwareAUTOAUTO, NONE, MPU6050, MPU6000, MPU6500, … (see get acc_hardware for full list)Force accelerometer driver or AUTO-detect.
baro_hardwareAUTOAUTO, NONE, BMP085, MS5611, BMP280, BMP388, DPS310, …Force barometer driver or AUTO-detect. (Requires: USE_BARO)
baro_bustypeSPINONE, I2C, SPI, SLAVEBarometer bus type. (Requires: USE_BARO)
baro_spi_device20–5SPI bus number for barometer. (Requires: USE_BARO)
baro_i2c_device00–5I2C bus number for barometer (0 = default). (Requires: USE_BARO)
baro_i2c_address00–119I2C address override for barometer (0 = default auto-detect). (Requires: USE_BARO)
mag_hardwareNONENONE, AUTO, HMC5883, QMC5883, …Magnetometer hardware selection. NONE = disabled. (Requires: USE_MAG)
align_magDEFAULTDEFAULT, CW0, CW90, CW180, CW270, CW0FLIP, …Magnetometer orientation. (Requires: USE_MAG)
altitude_sourceDEFAULTDEFAULT, BARO_ONLY, GPS_ONLYOverride altitude data source for autopilot and OSD altitude display.
altitude_prefer_baro1000–100Weight given to barometer vs GPS altitude when both are available (0 = GPS only, 100 = baro only).
altitude_lpf30010–1000Low-pass filter cutoff (Hz×10) for altitude estimate. Lower = smoother but laggier altitude.
altitude_d_lpf10010–1000Low-pass filter cutoff (Hz×10) for altitude derivative (vertical speed).
adc_device20–3ADC device used for voltage/current sensing.
adc_tempsensor_calibration3000–2000ADC temperature sensor calibration value at 30°C (factory calibration).
adc_tempsensor_calibration11000–2000ADC temperature sensor calibration value at 110°C (factory calibration).
adc_vrefint_calibration00–2000ADC internal voltage reference calibration (factory).
flash_spi_bus30–3SPI bus number for onboard flash (blackbox storage). (Requires: USE_FLASH_SPI)
i2c1_clockspeed_khz800100–1300I2C bus 1 clock speed in kHz. (Requires: USE_I2C_DEVICE_1)
i2c1_pullupOFFOFF, ONEnable internal pull-up resistors on I2C bus 1. (Requires: USE_I2C_DEVICE_1)
i2c2_clockspeed_khz800100–1300I2C bus 2 clock speed in kHz. (Requires: USE_I2C_DEVICE_2)
i2c2_pullupOFFOFF, ONEnable internal pull-up resistors on I2C bus 2. (Requires: USE_I2C_DEVICE_2)
i2c3_clockspeed_khz800100–1300I2C bus 3 clock speed in kHz. (Requires: USE_I2C_DEVICE_3)
i2c3_pullupOFFOFF, ONEnable internal pull-up resistors on I2C bus 3. (Requires: USE_I2C_DEVICE_3)
usb_hid_cdcOFFOFF, ONUse USB HID (combined HID + CDC) instead of pure CDC. Required for some OTG hosts.
usb_msc_pin_pullupONOFF, ONEnable pull-up on USB MSC detect pin.
pinio_box255,255,255,255Array of 4AUX box assignments for the 4 PINIO outputs (255 = disabled).
pinio_config1,1,1,1Array of 4PINIO output configuration (active-high/low, open-drain, etc.).
serialmsp_halfduplexOFFOFF, ONEnable half-duplex operation on MSP serial ports.

Identity & Profile Names

VariableDefaultRange / ValuesDescription
craft_namestring (1–16)Display name of the craft shown in OSD and Configurator.
pilot_namestring (1–16)Pilot name shown in OSD.
profile_namestring (1–8, per profile)Name for the active PID profile. Shown in OSD profile display.
rateprofile_namestring (1–8, per rateprofile)Name for the active rate profile.
box_user_1_namestring (1–16)Name for user-defined AUX box 1 (USER1).
box_user_2_namestring (1–16)Name for user-defined AUX box 2 (USER2).
box_user_3_namestring (1–16)Name for user-defined AUX box 3 (USER3).
box_user_4_namestring (1–16)Name for user-defined AUX box 4 (USER4).
auto_profile_cell_count0 (per profile)-1–8Automatically activate this PID profile when the detected cell count matches. 0 = disabled. -1 = match any.

Crash Recovery

Crash recovery detects an uncontrolled crash and attempts to recover. Disabled by default.

VariableDefaultRange / ValuesDescription
crash_recoveryOFF (per profile)OFF, ON, BEEP, DISARMEnable crash recovery. BEEP = recover and beep; DISARM = recover then disarm.
crash_delay0 (per profile)0–500 msDelay after arm before crash detection is armed.
crash_time500 (per profile)100–5000 msMinimum crash duration before recovery triggers.
crash_dthreshold50 (per profile)10–2000D-term threshold above which crash is detected (deg/s2).
crash_gthreshold400 (per profile)100–2000Gyro rate threshold for crash detection (deg/s).
crash_setpoint_threshold350 (per profile)50–2000Setpoint threshold for crash detection.
crash_limit_yaw200 (per profile)0–1000Yaw rate limit during crash recovery (deg/s).
crash_recovery_angle10 (per profile)5–30 degMaximum recovery correction angle (degrees).
crash_recovery_rate100 (per profile)50–255 deg/sRate at which the FC tries to recover from a crash.
crashflip_motor_percent00–100Motor output percentage during crash flip / turtle mode. 0 = full power.
crashflip_rate00–250Rotation rate limit during crash flip mode (degrees/s). 0 = unlimited.
crashflip_auto_rearmOFFOFF, ONAutomatically re-arm after a successful crash flip recovery.

EZ Landing

EZ Landing provides a simple automatic landing assist that gradually reduces throttle as the craft descends.

VariableDefaultRange / ValuesDescription
ez_landing_threshold25 (per profile)0–200Throttle percentage below which EZ landing activates.
ez_landing_limit15 (per profile)0–75Minimum throttle floor enforced by EZ landing (%).
ez_landing_speed50 (per profile)0–250Rate at which throttle is reduced during EZ landing.

SPA — Setpoint Process Attenuation

SPA reduces P and D gains based on the magnitude of the setpoint (stick input), preventing oscillations during fast flips while maintaining full authority at stick centre. Profile-scoped.

VariableDefaultRange / ValuesDescription
spa_roll_modeOFF (per profile)OFF, I_FREEZE, I, PID, PD_I_FREEZESPA mode for roll. I = scale I term; PID = scale all terms; PD_I_FREEZE = scale P and D, freeze I. (Requires: USE_WING)
spa_roll_center0 (per profile)0–65535Setpoint centre value at which no attenuation is applied (roll). (Requires: USE_WING)
spa_roll_width0 (per profile)0–65535Setpoint range over which attenuation ramps from 0 to full (roll). (Requires: USE_WING)
spa_pitch_modeOFF (per profile)OFF, I_FREEZE, I, PID, PD_I_FREEZESPA mode for pitch. (Requires: USE_WING)
spa_pitch_center0 (per profile)0–65535Setpoint centre value for pitch SPA. (Requires: USE_WING)
spa_pitch_width0 (per profile)0–65535Setpoint width for pitch SPA attenuation ramp. (Requires: USE_WING)
spa_yaw_modeOFF (per profile)OFF, I_FREEZE, I, PID, PD_I_FREEZESPA mode for yaw. (Requires: USE_WING)
spa_yaw_center0 (per profile)0–65535Setpoint centre value for yaw SPA. (Requires: USE_WING)
spa_yaw_width0 (per profile)0–65535Setpoint width for yaw SPA attenuation ramp. (Requires: USE_WING)

Beeper

VariableDefaultRange / ValuesDescription
beeper_inversionOFFOFF, ONInvert beeper signal (active-low vs active-high). (Requires: USE_BEEPER)
beeper_odONOFF, ONOpen-drain beeper output mode. ON = open-drain (requires external pull-up). (Requires: USE_BEEPER)
beeper_frequency00–16000 HzPWM frequency for brushless beeper. 0 = use default ESC beep tone. (Requires: USE_BEEPER)
beeper_dshot_beacon_tone11–5DSHOT ESC beacon tone index for motor-based beeper (arming/lost model). (Requires: USE_BEEPER + USE_DSHOT)

VTX (Video Transmitter)

VariableDefaultRange / ValuesDescription
vtx_band00–8VTX frequency band (0 = unset/use vtx_freq).
vtx_channel00–8VTX channel within the selected band.
vtx_freq00–5999 MHzVTX frequency in MHz. Used when vtx_band = 0.
vtx_power00–7VTX power level index (0 = minimum). Actual power depends on VTX table.
vtx_low_power_disarmOFFOFF, ON, UNTIL_FIRST_ARMSwitch to lowest power level when disarmed. UNTIL_FIRST_ARM = low power until first arm after connect.
vtx_pit_mode_freq00–5999 MHzFrequency to use in pit mode.
vtx_halfduplexONOFF, ONVTX communication in half-duplex (SmartAudio/Tramp).
vtx_softserial_altOFFOFF, ONUse alternate pin assignment for soft-serial VTX.
vtx_spi_bus00–3SPI bus for SPI-connected VTX (e.g. RTC6705).
vcd_video_systemHDAUTO, PAL, NTSC, HDOSD video format. HD = digital systems (DJI, Walksnail, HDZero). AUTO detects analog.
vcd_h_offset0-32–31Horizontal offset for analog OSD character rendering.
vcd_v_offset0-15–16Vertical offset for analog OSD character rendering.

LED Strip

VariableDefaultRange / ValuesDescription
led_inversion00–7 (bitmask)Invert LED strip output signals (bitmask per-channel).
ledstrip_profileSTATUSRACE, BEACON, STATUSLED strip operating mode. STATUS = function-based; RACE = fixed color; BEACON = flashing beacon.
ledstrip_race_colorORANGEBLACK, WHITE, RED, ORANGE, YELLOW, LIME_GREEN, GREEN, MINT_GREEN, CYAN, LIGHT_BLUE, BLUE, DARK_VIOLET, MAGENTA, DEEP_PINKSolid color used in RACE profile.
ledstrip_beacon_colorWHITE(same color list)Color used for beacon flashes.
ledstrip_beacon_period_ms50050–10000 msBeacon flash period in milliseconds.
ledstrip_beacon_percent500–100Duty cycle (on-time percentage) of the beacon flash.
ledstrip_beacon_armed_onlyOFFOFF, ONOnly activate beacon when armed.
ledstrip_visual_beeperOFFOFF, ONFlash LEDs in sync with the beeper (visual alert).
ledstrip_visual_beeper_colorWHITE(same color list)Color used for visual beeper flashes.
ledstrip_grb_rgbGRBGRB, RGB, GRBWLED strip color byte order. GRB is standard WS2812B; GRBW for RGBW strips.
ledstrip_brightness1005–100Global brightness percentage for all LED modes.
ledstrip_rainbow_delta00–359Hue offset between consecutive LEDs in rainbow mode.
ledstrip_rainbow_freq1201–2000Rainbow animation speed (updates/second).

Also see:


Displayport & OSD Hardware

VariableDefaultRange / ValuesDescription
displayport_max7456_blk00–3MAX7456 black level (0 = darkest).
displayport_max7456_wht20–3MAX7456 white level (2 = standard).
displayport_max7456_invOFFOFF, ONInvert MAX7456 video output.
displayport_max7456_row_adjust0-3–0Row offset adjustment for MAX7456 character display.
displayport_max7456_col_adjust0-6–0Column offset adjustment for MAX7456 character display.
displayport_msp_row_adjust0-3–0Row offset for MSP displayport (DJI/HD OSD).
displayport_msp_col_adjust0-6–0Column offset for MSP displayport.
displayport_msp_fonts0,1,2,3Array of 4Font indices for the 4 OSD profiles on MSP displayport systems.
displayport_msp_use_device_blinkOFFOFF, ONUse device-native blink for MSP OSD elements (DJI).
max7456_spi_bus20–3SPI bus for MAX7456 OSD chip.
max7456_clockNOMINALHALF, NOMINAL, DOUBLEMAX7456 SPI clock speed. Use HALF if video glitches occur.
max7456_preinit_opuOFFOFF, ONPre-initialize MAX7456 OSD pixel output before flight.
dashboard_i2c_bus00–3I2C bus for OLED dashboard display.
dashboard_i2c_addr608–119I2C address for OLED dashboard (default 0x3C = 60).

OSD

OSD position variables encode the x/y position and enabled state in a single 16-bit value (bit 11 = enabled, bits 5–0 = column, bits 10–6 = row). Default 341 = disabled (bit pattern 0b0000000101010101). Use Betaflight Configurator OSD tab to set positions visually.

OSD Settings

VariableDefaultRange / ValuesDescription
osd_displayport_deviceMSPNONE, AUTO, MAX7456, MSP, FRSKYOSDOSD output device. MSP = digital HD systems (DJI, Walksnail, HDZero). MAX7456 = analog OSD chip.
osd_unitsMETRICIMPERIAL, METRIC, BRITISHUnit system for OSD values (speed, distance, altitude).
osd_framerate_hz121–60 HzOSD update rate. Higher = smoother but more CPU load.
osd_profile11–3Active OSD profile (layout). Switch profiles via AUX channel.
osd_profile_1_namestring (1–16)Name for OSD profile 1.
osd_profile_2_namestring (1–16)Name for OSD profile 2.
osd_profile_3_namestring (1–16)Name for OSD profile 3.
osd_use_quick_menuONOFF, ONEnable quick-access OSD menu (single-click).
osd_menu_backgroundTRANSPARENTTRANSPARENT, BLACK, GRAY, LIGHT_GRAYOSD menu background style.
osd_arming_logo00–3Logo displayed on arm. 0 = Betaflight logo.
osd_craftname_msgsOFFOFF, ONShow craft name messages in OSD.
osd_logo_on_armingOFFOFF, ON, FIRST_ARMINGDisplay logo animation on arm. FIRST_ARMING = only on first arm after connect.
osd_logo_on_arming_duration55–50 (x0.1s)Duration of arming logo animation.
osd_show_spec_prearmOFFOFF, ONShow motor specs in pre-arm screen.

OSD Alarms

VariableDefaultRange / ValuesDescription
osd_rssi_alarm200–100 %RSSI alarm threshold (%). Alert when RSSI drops below this.
osd_rssi_dbm_alarm-60-130–0 dBmRSSI dBm alarm threshold.
osd_rsnr_alarm4-30–20 dBRSNR (RF signal-to-noise ratio) alarm threshold.
osd_link_quality_alarm800–100 %Link quality alarm threshold (ELRS/CRSF).
osd_alt_alarm1000–10000 mAltitude alarm threshold.
osd_cap_alarm22000–20000 mAhBattery capacity consumed alarm threshold.
osd_distance_alarm00–65535 mDistance from home alarm (0 = disabled).
osd_esc_rpm_alarm-1-1–32767 RPMESC RPM alarm (-1 = disabled).
osd_esc_current_alarm-1-1–32767 AESC current alarm (-1 = disabled).
osd_esc_temp_alarm00–255 CESC temperature alarm.
osd_core_temp_alarm700–255 CFC core temperature alarm.
osd_stat_bitmask18790623160–4294967295Bitmask of statistics shown on post-flight stats screen.
osd_stat_avg_cell_valueOFFOFF, ONShow average cell voltage (vs total pack) in post-flight stats.
osd_warn_bitmask3973110–4294967295Bitmask of OSD warnings enabled (ARMING, FAIL_SAFE, BATTERY_WARNING, etc.).

OSD Timer Configuration

VariableDefaultRange / ValuesDescription
osd_tim125600–32767Timer 1 configuration (source and precision encoded).
osd_tim225610–32767Timer 2 configuration.

OSD Auxiliary & Camera

VariableDefaultRange / ValuesDescription
osd_aux_channel11–18RC channel to display as auxiliary OSD value.
osd_aux_scale2001–1000Scale factor for AUX channel display.
osd_aux_symbol65ASCII codeSymbol character used for AUX display (65 = A).
osd_rcchannels-1,-1,-1,-1Array of 4 (channel 1–18 or -1)RC channels to display in OSD RC channels element (-1 = disabled).
osd_stick_overlay_radio_mode21–4Radio mode for stick overlay display (Mode 1–4).
osd_camera_frame_width242–30Camera frame overlay width in characters.
osd_camera_frame_height112–16Camera frame overlay height in characters.
osd_gps_sats_show_pdopOFFOFF, ONShow PDOP (position dilution of precision) next to sat count.
osd_ah_invertOFFOFF, ONInvert artificial horizon direction.
osd_ah_max_pit200–90 degMaximum pitch shown on artificial horizon (degrees).
osd_ah_max_rol400–90 degMaximum roll shown on artificial horizon (degrees).

OSD Position Variables (all default 341 = disabled, range 0–65535)

VariableDescription
osd_rssi_posRSSI (%)
osd_rssi_dbm_posRSSI dBm
osd_rsnr_posRSNR
osd_link_quality_posLink quality
osd_link_tx_power_posTX power
osd_vbat_posBattery voltage
osd_avg_cell_voltage_posAverage cell voltage
osd_current_posCurrent draw
osd_power_posPower (watts)
osd_mah_drawn_posmAh consumed
osd_wh_drawn_posWh consumed
osd_battery_usage_posBattery usage bar
osd_remaining_time_estimate_posEstimated remaining flight time
osd_efficiency_posFlight efficiency (mAh/km)
osd_altitude_posAltitude
osd_nvario_posVertical speed (vario)
osd_nheading_posCompass heading
osd_compass_bar_posCompass bar
osd_gps_speed_posGPS speed
osd_gps_sats_posGPS satellite count
osd_gps_lat_posGPS latitude
osd_gps_lon_posGPS longitude
osd_home_dist_posDistance to home
osd_home_dir_posDirection to home
osd_flight_dist_posTotal flight distance
osd_lidar_dist_posLidar distance
osd_throttle_posThrottle percentage
osd_flymode_posFlight mode
osd_disarmed_posDISARMED indicator
osd_ready_mode_posReady mode indicator
osd_crosshairs_posCrosshairs
osd_ah_posArtificial horizon
osd_ah_sbar_posAH sidebars
osd_up_down_reference_posUp/down reference
osd_pit_ang_posPitch angle
osd_rol_ang_posRoll angle
osd_g_force_posG-force
osd_tim_1_posTimer 1
osd_tim_2_posTimer 2
osd_craft_name_posCraft name
osd_pilot_name_posPilot name
osd_pid_roll_posRoll PID values
osd_pid_pitch_posPitch PID values
osd_pid_yaw_posYaw PID values
osd_pidrate_profile_posPID/rate profile indicator
osd_pid_profile_name_posPID profile name
osd_rate_profile_name_posRate profile name
osd_profile_name_posOSD profile name
osd_anti_gravity_posAnti-gravity indicator
osd_debug_posDebug value 1
osd_debug2_posDebug value 2
osd_esc_tmp_posESC temperature
osd_esc_rpm_posESC RPM
osd_esc_rpm_freq_posESC RPM frequency
osd_core_temp_posFC core temperature
osd_vtx_channel_posVTX channel
osd_flip_arrow_posCrash flip arrow
osd_log_status_posBlackbox log status
osd_motor_diag_posMotor diagnostics
osd_adjustment_range_posAdjustment range indicator
osd_rcchannels_posRC channels
osd_stick_overlay_left_posLeft stick overlay
osd_stick_overlay_right_posRight stick overlay
osd_aux_posAUX channel value
osd_total_flights_posTotal flight count
osd_rtc_date_time_posRTC date/time
osd_warnings_posWarnings (default 14772)
osd_camera_frame_posCamera frame overlay
osd_sys_warnings_posSystem warnings
osd_sys_lq_posSystem link quality
osd_sys_bitrate_posSystem bitrate
osd_sys_delay_posSystem delay
osd_sys_distance_posSystem distance
osd_sys_goggle_voltage_posGoggle voltage
osd_sys_vtx_voltage_posVTX voltage
osd_sys_vtx_temp_posVTX temperature
osd_sys_fan_speed_posFan speed
osd_sys_goggle_dvr_posGoggle DVR indicator
osd_sys_vtx_dvr_posVTX DVR indicator

Servo & Gimbal

VariableDefaultRange / ValuesDescription
servo_center_pulse1500750–2250 usServo center pulse width. (Requires: USE_SERVOS)
servo_pwm_rate5050–498 HzServo PWM update rate. 50 Hz = standard analog; 333+ Hz = digital. (Requires: USE_SERVOS)
servo_lowpass_hz00–400 HzLow-pass filter cutoff for servo output smoothing (0 = disabled). (Requires: USE_SERVOS)
tri_unarmed_servoONOFF, ONKeep tail servo active when disarmed (tricopter). Prevents mechanical noise on arm. (Requires: USE_SERVOS)
thr_corr_angle8001–900 (tenths of degrees)Angle above which throttle correction activates (compensates for tilt-induced lift loss).
thr_corr_value00–150Throttle correction amount at maximum tilt. 0 = disabled.
gimbal_modeNORMALNORMAL, MIXTILTGimbal control mode for tricopter tail. (Requires: USE_SERVOS)
yaw_typeRUDDERRUDDER, DIFF_THRUSTYaw control type. DIFF_THRUST uses differential thrust (bicopter/differential). (Requires: USE_WING)

Telemetry

Telemetry is transmitted to the ground station/transmitter over a serial port. Each telemetry_disabled_* flag suppresses a specific sensor type from the telemetry stream.

Also see:

Telemetry Serial Settings

VariableDefaultRange / ValuesDescription
tlm_halfduplexONOFF, ONTelemetry in half-duplex mode (shared TX/RX pin). Required for FrSky S.Port and HoTT.
tlm_invertedOFFOFF, ONInvert telemetry signal logic. Required for some protocols (e.g. FrSky on some wiring).
hott_alarm_int50–120 sHoTT alarm interval (seconds between repeated alerts). 0 = disabled.
ibus_sensor1,2,3,0,…Array of 15iBus sensor type assignments for 15 slots.

FrSky Telemetry

VariableDefaultRange / ValuesDescription
frsky_default_lat0-9000–9000 (hundredths of degrees)Default GPS latitude when no fix (for FrSky GPS display).
frsky_default_long0-18000–18000 (hundredths of degrees)Default GPS longitude when no fix.
frsky_gps_format00–1GPS coordinate format for FrSky (0 = decimal degrees, 1 = DMS).
frsky_unitMETRICIMPERIAL, METRIC, BRITISHUnit system for FrSky telemetry values.
frsky_vfas_precision00–1FrSky VFAS voltage precision (0 = 0.2V, 1 = 0.1V).

MAVLink Telemetry

VariableDefaultRange / ValuesDescription
mavlink_min_txbuff351–100 %Minimum TX buffer level required before sending MAVLink messages.
mavlink_mah_as_heading_divisor00–30000Encode mAh as heading by dividing by this value. 0 = disabled (send real heading).

Disabled Telemetry Sensors (each ON flag suppresses that data from the telemetry stream)

VariableDefaultDescription
telemetry_disabled_voltageOFFBattery voltage
telemetry_disabled_currentOFFCurrent draw
telemetry_disabled_fuelOFFFuel (capacity used)
telemetry_disabled_cap_usedONCapacity used
telemetry_disabled_modeOFFFlight mode
telemetry_disabled_acc_xOFFAccelerometer X
telemetry_disabled_acc_yOFFAccelerometer Y
telemetry_disabled_acc_zOFFAccelerometer Z
telemetry_disabled_pitchOFFPitch angle
telemetry_disabled_rollOFFRoll angle
telemetry_disabled_headingOFFHeading
telemetry_disabled_altitudeOFFAltitude
telemetry_disabled_lat_longOFFGPS latitude/longitude
telemetry_disabled_ground_speedOFFGPS ground speed
telemetry_disabled_distanceOFFDistance from home
telemetry_disabled_varioOFFVertical speed
telemetry_disabled_temperatureOFFTemperature
telemetry_disabled_esc_currentONESC current
telemetry_disabled_esc_voltageONESC voltage
telemetry_disabled_esc_rpmONESC RPM
telemetry_disabled_esc_temperatureONESC temperature

Camera Control

Camera control drives an analog voltage divider to simulate button presses on cameras with a single-wire control interface.

VariableDefaultRange / ValuesDescription
camera_control_modeHARDWARE_PWMHARDWARE_PWM, SOFTWARE_PWM, DACOutput mode for camera control signal.
camera_control_ref_voltage330200–400 (centi-volts, e.g. 330 = 3.30V)Reference voltage of the camera control circuit.
camera_control_key_delay180100–500 msDuration of simulated button press.
camera_control_internal_resistance47010–1000 ohmInternal resistance of the voltage divider.
camera_control_button_resistance450,270,150,68,0Array of 5 (ohm)Resistance values for each camera button (ENTER, LEFT, UP, RIGHT, DOWN).
camera_control_invertedOFFOFF, ONInvert camera control signal logic.

Receiver Protocols

SRXL2 / Spektrum

VariableDefaultRange / ValuesDescription
srxl2_unit_id10–15SRXL2 unit ID (must be unique on the SRXL2 bus). (Requires: USE_SERIALRX_SRXL2)
srxl2_baud_fastONOFF, ONUse 400000 baud for SRXL2. OFF uses 115200. (Requires: USE_SERIALRX_SRXL2)
spektrum_sat_bind00–10Number of satellite bind pulses. 0 = normal operation; 3–10 to enter bind mode. (Requires: USE_SPEKTRUM_BIND)
spektrum_sat_bind_autoresetONOFF, ONAutomatically reset spektrum_sat_bind to 0 after binding. (Requires: USE_SPEKTRUM_BIND)

RC Device (RunCam, etc.)

VariableDefaultRange / ValuesDescription
rcdevice_protocol_version00–1RC device protocol version (0 = auto, 1 = v1). (Requires: USE_RCDEVICE)
rcdevice_init_dev_attempts60–10Number of initialization attempts for the RC device. (Requires: USE_RCDEVICE)
rcdevice_init_dev_attempt_interval10000–5000 msInterval between initialization attempts. (Requires: USE_RCDEVICE)
rcdevice_feature00–65535 (bitmask)RC device features bitmask (camera control, OSD, etc.). (Requires: USE_RCDEVICE)

MSP Override

MSP channel override allows an external device (companion computer, goggles) to override RC channels via MSP.

VariableDefaultRange / ValuesDescription
msp_override_channels_mask00–262143 (bitmask)Bitmask of RC channels that can be overridden by MSP. Bit 0 = channel 1.
msp_override_failsafeOFFOFF, ONUse MSP override values as failsafe when signal is lost.

Statistics

Betaflight accumulates flight statistics across power cycles in EEPROM.

VariableDefaultRange / ValuesDescription
stats_total_flights00–4294967295Total number of arming events logged. (Requires: USE_PERSISTENT_STATS)
stats_total_time_s00–4294967295 sTotal armed time in seconds. (Requires: USE_PERSISTENT_STATS)
stats_total_dist_m00–4294967295 mTotal distance flown (meters). (Requires: USE_PERSISTENT_STATS)
stats_mah_used00–4294967295 mAhTotal battery capacity consumed. (Requires: USE_PERSISTENT_STATS + USE_BATTERY_CONTINUE)
stats_min_armed_time_s-1-1–127 sMinimum arm duration to count a flight (-1 = count all). (Requires: USE_PERSISTENT_STATS)
stats_save_move_limit200–255Minimum movement (cm) required before GPS distance is counted. (Requires: USE_PERSISTENT_STATS)

Optical Flow & Rangefinder

VariableDefaultRange / ValuesDescription
rangefinder_hardwareNONENONE, HCSR04, TFMINI, TF02, MTF01, MTF02, MTF01P, MTF02P, TFNOVARangefinder (lidar) hardware selection. (Requires: USE_RANGEFINDER)
opticalflow_hardwareNONENONE, MTOptical flow sensor hardware. (Requires: USE_OPTICALFLOW)
opticalflow_flip_xOFFOFF, ONFlip optical flow X axis (correct for physical sensor orientation). (Requires: USE_OPTICALFLOW)
opticalflow_rotation00–359 degRotational offset of the optical flow sensor. (Requires: USE_OPTICALFLOW)
opticalflow_lpf00–10000Low-pass filter cutoff for optical flow data. 0 = disabled. (Requires: USE_OPTICALFLOW)

Miscellaneous

VariableDefaultRange / ValuesDescription
timezone_offset_minutes0-780–780 minTimezone offset from UTC in minutes for RTC display. (Requires: USE_RTC_TIME)