Betaflight Sensors and board alignment: CLI settings
Accelerometer, magnetometer, barometer, rangefinder and optical flow, gyro device selection and calibration, board and sensor alignment, and the attitude estimator (IMU) gains.
35 settings in Betaflight 2026.6, plus 9 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 |
|---|---|---|---|---|---|---|---|---|
acc_calibration # |
int16 global |
4 comma-separated values, -32768 to 32767 | 0,0,0,0needs USE_ACC |
✓ | ✓ | ✓ | ✓ | |
acc_hardware # |
uint8 global |
27 valuesAUTO, NONE, MPU6050, MPU6000, MPU6500, MPU9250, ICM20601, ICM20602, ICM20608G, ICM20649, ICM20689, ICM42605, ICM42688P, BMI160, BMI270, LSM6DSO, LSM6DSV16X, IIM42653, ICM45605, ICM45686, ICM40609D, IIM42652, LSM6DSK320X, ICM42622P, ICM42686P, ICM56686, VIRTUAL |
AUTOneeds USE_ACC |
✓ | Δ | Δ | Δ | 4.5: new values LSM6DSV16X, VIRTUAL; values dropped FAKE 2025.12: new values IIM42653, ICM45605, ICM45686, ICM40609D, IIM42652; values dropped ADXL345, MMA8452, BMA280, LSM303DLHC 2026.6: new values LSM6DSK320X, ICM42622P, ICM42686P, ICM56686 |
acc_lpf_hz # |
uint16 global |
0 to 500 | 25needs USE_ACC |
✓ | ✓ | ✓ | ✓ | |
acc_trim_pitch # |
int16 global |
-300 to 300 | 0needs USE_ACC |
✓ | ✓ | ✓ | ✓ | |
acc_trim_roll # |
int16 global |
-300 to 300 | 0needs USE_ACC |
✓ | ✓ | ✓ | ✓ | |
align_board_pitch # |
int16 global |
-180 to 360 | 0 |
✓ | ✓ | ✓ | ✓ | |
align_board_roll # |
int16 global |
-180 to 360 | 0 |
✓ | ✓ | ✓ | ✓ | |
align_board_yaw # |
int16 global |
-180 to 360 | 0 |
✓ | ✓ | ✓ | ✓ | |
align_mag # |
uint8 global |
10 valuesDEFAULT, CW0, CW90, CW180, CW270, CW0FLIP, CW90FLIP, CW180FLIP, CW270FLIP, CUSTOM |
DEFAULTneeds USE_MAG |
✓ | ✓ | ✓ | ✓ | |
baro_i2c_address # |
uint8 global |
0 to 119 | 0needs USE_BARO |
✓ | ✓ | ✓ | ✓ | |
baro_i2c_device # |
uint8 global |
0 to 5 | 0needs USE_BARO |
✓ | ✓ | ✓ | ✓ | |
gyro_1_align_pitch # |
int16 global |
-3600 to 3600 | set by the target |
✓ | ✓ | — | — | Removed in 2025.12. |
gyro_1_align_roll # |
int16 global |
-3600 to 3600 | set by the target |
✓ | ✓ | — | — | Removed in 2025.12. |
gyro_1_align_yaw # |
int16 global |
-3600 to 3600 | set by the target |
✓ | ✓ | — | — | Removed in 2025.12. |
gyro_1_bustype # |
uint8 global |
NONE, I2C, SPI, SLAVE | set by the target |
✓ | ✓ | ✓ | ✓ | |
gyro_1_i2c_address # |
uint8 global |
0 to 119 | set by the target |
✓ | ✓ | ✓ | ✓ | |
gyro_1_sensor_align # |
uint8 global |
10 valuesDEFAULT, CW0, CW90, CW180, CW270, CW0FLIP, CW90FLIP, CW180FLIP, CW270FLIP, CUSTOM |
set by the target |
✓ | ✓ | — | — | Removed in 2025.12. |
gyro_2_align_pitch # |
int16 global |
-3600 to 3600 | set by the targetneeds USE_MULTI_GYRO |
✓ | ✓ | — | — | Removed in 2025.12. |
gyro_2_align_roll # |
int16 global |
-3600 to 3600 | set by the targetneeds USE_MULTI_GYRO |
✓ | ✓ | — | — | Removed in 2025.12. |
gyro_2_align_yaw # |
int16 global |
-3600 to 3600 | set by the targetneeds USE_MULTI_GYRO |
✓ | ✓ | — | — | Removed in 2025.12. |
gyro_2_sensor_align # |
uint8 global |
10 valuesDEFAULT, CW0, CW90, CW180, CW270, CW0FLIP, CW90FLIP, CW180FLIP, CW270FLIP, CUSTOM |
set by the targetneeds USE_MULTI_GYRO |
✓ | ✓ | — | — | Removed in 2025.12. |
gyro_calib_duration # |
uint16 global |
50 to 3000 | 125 |
✓ | ✓ | ✓ | ✓ | |
gyro_calib_noise_limit # |
uint8 global |
0 to 200 | 48 |
✓ | ✓ | ✓ | ✓ | |
gyro_offset_yaw # |
int16 global |
-1000 to 1000 | 0 |
✓ | ✓ | ✓ | ✓ | |
gyro_overflow_detect # |
uint8 global |
OFF, YAW, ALL | ALLneeds USE_GYRO_OVERFLOW_CHECK |
✓ | ✓ | ✓ | ✓ | |
gyro_to_use # |
uint8 global |
FIRST, SECOND, BOTH | FIRSTneeds USE_MULTI_GYRO |
✓ | ✓ | — | — | Removed in 2025.12. |
imu_dcm_ki # |
uint16 global |
0 to 32000 | 0 |
✓ | ✓ | ✓ | ✓ | |
imu_dcm_kp # |
uint16 global |
0 to 32000 | 2500 |
✓ | ✓ | ✓ | ✓ | |
imu_process_denom # |
uint8 global |
1 to 4 | 2 |
✓ | ✓ | ✓ | ✓ | |
mag_align_pitch # |
int16 global |
-3600 to 3600 | 0needs USE_MAG |
✓ | ✓ | ✓ | ✓ | |
mag_align_roll # |
int16 global |
-3600 to 3600 | 0needs USE_MAG |
✓ | ✓ | ✓ | ✓ | |
mag_align_yaw # |
int16 global |
-3600 to 3600 | 0needs USE_MAG |
✓ | ✓ | ✓ | ✓ | |
mag_bustype # |
uint8 global |
NONE, I2C, SPI, SLAVE | set by the targetneeds USE_MAG |
✓ | ✓ | ✓ | ✓ | |
mag_calibration # |
int16 global |
3 comma-separated values, -32768 to 32767 | 0,0,0needs USE_MAG |
✓ | ✓ | ✓ | ✓ | |
mag_declination # |
int16 global |
-300 to 300 | 0needs USE_MAG |
— | ✓ | Δ | ✓ | 2025.12: type uint16 → int16; min 0 → -300; max 3599 → 300 |
mag_hardware # |
uint8 global |
12 valuesAUTO, NONE, HMC5883, AK8975, AK8963, QMC5883L, LIS2MDL, LIS3MDL, MPU925X_AK8963, IST8310, MMC560X, QMC5883P |
set by the targetneeds USE_MAG |
✓ | Δ | ✓ | Δ | 4.5: new values LIS2MDL, MPU925X_AK8963, IST8310; values dropped MAG_MPU925X_AK8963 2026.6: new values QMC5883L, MMC560X, QMC5883P; values dropped QMC5883 |
mag_i2c_address # |
uint8 global |
0 to 119 | set by the targetneeds USE_MAG |
✓ | ✓ | ✓ | ✓ | |
opticalflow_flip_x # |
uint8 global |
OFF, ON | OFFneeds USE_OPTICALFLOW |
— | — | ✓ | ✓ | |
opticalflow_hardware # |
uint8 global |
NONE, MT, UPT1 | NONEneeds USE_OPTICALFLOW |
— | — | ✓ | Δ | 2026.6: new values UPT1 |
opticalflow_lpf # |
uint16 global |
0 to 10000 | 100needs USE_OPTICALFLOW |
— | — | ✓ | ✓ | |
opticalflow_rotation # |
int16 global |
0 to 359 | 0needs USE_OPTICALFLOW |
— | — | ✓ | ✓ | |
rangefinder_hardware # |
uint8 global |
16 valuesNONE, HCSR04, TFMINI, TF02, MTF01, MTF02, MTF01P, MTF02P, TFNOVA, NOOPLOOP_F2, NOOPLOOP_F2P, NOOPLOOP_F2PH, NOOPLOOP_F, NOOPLOOP_FP, NOOPLOOP_F2MINI, UPT1 |
NONEneeds USE_RANGEFINDER |
✓ | ✓ | Δ | Δ | 2025.12: new values MTF01, MTF02, MTF01P, MTF02P, TFNOVA 2026.6: new values NOOPLOOP_F2, NOOPLOOP_F2P, NOOPLOOP_F2PH, NOOPLOOP_F, NOOPLOOP_FP, NOOPLOOP_F2MINI, UPT1 |
small_angle # |
uint8 global |
0 to 180 | set by the target |
✓ | ✓ | ✓ | ✓ | |
trust_mag # |
uint8 global |
OFF, ON | OFFneeds USE_MAG |
— | — | — | ✓ |
✓ 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:
acc_high_range, baro_bustype, baro_hardware, baro_spi_device, gyro_1_enabled, gyro_1_i2cBus, gyro_1_spibus, gyro_2_bustype, gyro_2_enabled, gyro_2_i2cBus, gyro_2_i2c_address, gyro_2_spibus, gyro_3_bustype, gyro_3_enabled, gyro_3_i2cBus, gyro_3_i2c_address, gyro_3_spibus, gyro_4_bustype, gyro_4_enabled, gyro_4_i2cBus, gyro_4_i2c_address, gyro_4_spibus, gyro_5_bustype, gyro_5_enabled, gyro_5_i2cBus, gyro_5_i2c_address, gyro_5_spibus, gyro_6_bustype, gyro_6_enabled, gyro_6_i2cBus, gyro_6_i2c_address, gyro_6_spibus, gyro_7_bustype, gyro_7_enabled, gyro_7_i2cBus, gyro_7_i2c_address, gyro_7_spibus, gyro_8_bustype, gyro_8_enabled, gyro_8_i2cBus, gyro_8_i2c_address, gyro_8_spibus, gyro_enabled_bitmask, gyro_high_range, mag_i2c_device, mag_spi_device.
Other sections
- Gyro and D-term filters (27)
- PID tuning (73)
- 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)
- 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.