Betaflight OSD element positions: CLI settings
One `osd_*_pos` value per OSD element. The number packs the element's column, row, visibility per OSD profile and variant into one integer, which is why it reads like a random large number in a `diff`.
90 settings in Betaflight 2026.6.
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 |
|---|---|---|---|---|---|---|---|---|
osd_adjustment_range_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_ah_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_ah_sbar_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_altitude_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_anti_gravity_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_aux_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_avg_cell_voltage_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_battery_profile_name_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_PROFILE_NAMES |
— | — | — | ✓ | |
osd_battery_usage_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_camera_frame_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_compass_bar_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_craft_name_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_crosshairs_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_current_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_custom_serial_text_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, ENABLE_OSD_CUSTOM_TEXT |
— | — | — | ✓ | |
osd_debug2_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
— | — | ✓ | ✓ | |
osd_debug_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_disarmed_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_efficiency_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_esc_rpm_freq_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_esc_rpm_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_esc_tmp_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_flight_dist_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_flip_arrow_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_flymode_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_g_force_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_gps_lat_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_gps_lon_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_gps_sats_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_gps_speed_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_home_dir_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_home_dist_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_lidar_dist_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_RANGEFINDER |
— | — | ✓ | ✓ | |
osd_link_quality_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_RX_LINK_QUALITY_INFO |
✓ | ✓ | ✓ | ✓ | |
osd_link_tx_power_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_RX_LINK_UPLINK_POWER |
✓ | ✓ | ✓ | ✓ | |
osd_log_status_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_BLACKBOX |
✓ | ✓ | ✓ | ✓ | |
osd_mah_drawn_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_motor_diag_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_nav_map_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_OSD_NAV_MAP |
— | — | — | ✓ | |
osd_nheading_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_nvario_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_VARIO |
✓ | ✓ | ✓ | ✓ | |
osd_pid_pitch_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_pid_profile_name_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_PROFILE_NAMES |
✓ | ✓ | ✓ | ✓ | |
osd_pid_roll_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_pid_yaw_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_pidrate_profile_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_pilot_name_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_pit_ang_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_pos_hold_ready_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_POSITION_HOLD |
— | — | — | ✓ | |
osd_power_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_profile_name_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_OSD_PROFILES |
✓ | ✓ | ✓ | ✓ | |
osd_rate_profile_name_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_PROFILE_NAMES |
✓ | ✓ | ✓ | ✓ | |
osd_rcchannels_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_ready_mode_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_remaining_time_estimate_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_rol_ang_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_rsnr_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_RX_RSNR |
✓ | ✓ | ✓ | ✓ | |
osd_rssi_dbm_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_RX_RSSI_DBM |
✓ | ✓ | ✓ | ✓ | |
osd_rssi_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_rtc_date_time_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_stick_overlay_left_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_OSD_STICK_OVERLAY |
✓ | ✓ | ✓ | ✓ | |
osd_stick_overlay_right_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_OSD_STICK_OVERLAY |
✓ | ✓ | ✓ | ✓ | |
osd_sys_bitrate_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_MSP_DISPLAYPORT |
✓ | ✓ | ✓ | ✓ | |
osd_sys_delay_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_MSP_DISPLAYPORT |
✓ | ✓ | ✓ | ✓ | |
osd_sys_distance_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_MSP_DISPLAYPORT |
✓ | ✓ | ✓ | ✓ | |
osd_sys_fan_speed_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_MSP_DISPLAYPORT |
✓ | ✓ | ✓ | ✓ | |
osd_sys_goggle_dvr_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_MSP_DISPLAYPORT |
✓ | ✓ | ✓ | ✓ | |
osd_sys_goggle_voltage_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_MSP_DISPLAYPORT |
✓ | ✓ | ✓ | ✓ | |
osd_sys_lq_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_MSP_DISPLAYPORT |
✓ | ✓ | ✓ | ✓ | |
osd_sys_vtx_dvr_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_MSP_DISPLAYPORT |
✓ | ✓ | ✓ | ✓ | |
osd_sys_vtx_temp_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_MSP_DISPLAYPORT |
✓ | ✓ | ✓ | ✓ | |
osd_sys_vtx_voltage_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_MSP_DISPLAYPORT |
✓ | ✓ | ✓ | ✓ | |
osd_sys_warnings_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_MSP_DISPLAYPORT |
✓ | ✓ | ✓ | ✓ | |
osd_throttle_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_tim_1_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_tim_2_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_total_flights_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_up_down_reference_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_vbat_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_vtx_channel_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_warnings_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_wh_drawn_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD |
✓ | ✓ | ✓ | ✓ | |
osd_wp_current_alt_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_GPS |
— | — | — | ✓ | |
osd_wp_current_lat_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_GPS |
— | — | — | ✓ | |
osd_wp_current_lon_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_GPS |
— | — | — | ✓ | |
osd_wp_direction_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_GPS |
— | — | — | ✓ | |
osd_wp_distance_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_GPS |
— | — | — | ✓ | |
osd_wp_eta_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_GPS |
— | — | — | ✓ | |
osd_wp_next_number_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_GPS |
— | — | — | ✓ | |
osd_wp_number_pos # |
uint16 global |
0 to 65535 | set by the targetneeds USE_OSD, USE_GPS |
— | — | — | ✓ |
✓ 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:
osd_core_temp_pos, osd_gps_lap_best3_pos, osd_gps_lap_curr_pos, osd_gps_lap_prev_pos.
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)
- VTX and camera control (12)
- Blackbox and debug (20)
- Telemetry and serial (44)
- LED strip and beeper (12)
- Sensors and board alignment (35)
- System and hardware (25)
What changed between releases: 4.4 → 4.5 · 4.5 → 2025.12 · 2025.12 → 2026.6. Machine-readable: params.json (2026.6.2), GPL-3.0 like the firmware it comes from.