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.

SettingTypeRange or valuesDefault 4.44.52025.122026.6Notes
osd_adjustment_range_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_ah_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_ah_sbar_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_altitude_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_anti_gravity_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_aux_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_avg_cell_voltage_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_battery_profile_name_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_PROFILE_NAMES
———✓
osd_battery_usage_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_camera_frame_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_compass_bar_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_craft_name_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_crosshairs_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_current_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_custom_serial_text_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, ENABLE_OSD_CUSTOM_TEXT
———✓
osd_debug2_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
——✓✓
osd_debug_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_disarmed_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_efficiency_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_esc_rpm_freq_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_esc_rpm_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_esc_tmp_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_flight_dist_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_flip_arrow_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_flymode_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_g_force_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_gps_lat_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_gps_lon_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_gps_sats_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_gps_speed_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_home_dir_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_home_dist_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_lidar_dist_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_RANGEFINDER
——✓✓
osd_log_status_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_BLACKBOX
✓✓✓✓
osd_mah_drawn_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_motor_diag_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_nav_map_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_OSD_NAV_MAP
———✓
osd_nheading_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_nvario_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_VARIO
✓✓✓✓
osd_pid_pitch_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_pid_profile_name_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_PROFILE_NAMES
✓✓✓✓
osd_pid_roll_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_pid_yaw_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_pidrate_profile_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_pilot_name_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_pit_ang_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_pos_hold_ready_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_POSITION_HOLD
———✓
osd_power_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_profile_name_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_OSD_PROFILES
✓✓✓✓
osd_rate_profile_name_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_PROFILE_NAMES
✓✓✓✓
osd_rcchannels_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_ready_mode_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_remaining_time_estimate_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_rol_ang_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_rsnr_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_RX_RSNR
✓✓✓✓
osd_rssi_dbm_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_RX_RSSI_DBM
✓✓✓✓
osd_rssi_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_rtc_date_time_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_stick_overlay_left_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_OSD_STICK_OVERLAY
✓✓✓✓
osd_stick_overlay_right_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_OSD_STICK_OVERLAY
✓✓✓✓
osd_sys_bitrate_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_MSP_DISPLAYPORT
✓✓✓✓
osd_sys_delay_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_MSP_DISPLAYPORT
✓✓✓✓
osd_sys_distance_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_MSP_DISPLAYPORT
✓✓✓✓
osd_sys_fan_speed_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_MSP_DISPLAYPORT
✓✓✓✓
osd_sys_goggle_dvr_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_MSP_DISPLAYPORT
✓✓✓✓
osd_sys_goggle_voltage_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_MSP_DISPLAYPORT
✓✓✓✓
osd_sys_lq_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_MSP_DISPLAYPORT
✓✓✓✓
osd_sys_vtx_dvr_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_MSP_DISPLAYPORT
✓✓✓✓
osd_sys_vtx_temp_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_MSP_DISPLAYPORT
✓✓✓✓
osd_sys_vtx_voltage_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_MSP_DISPLAYPORT
✓✓✓✓
osd_sys_warnings_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_MSP_DISPLAYPORT
✓✓✓✓
osd_throttle_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_tim_1_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_tim_2_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_total_flights_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_up_down_reference_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_vbat_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_vtx_channel_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_warnings_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_wh_drawn_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD
✓✓✓✓
osd_wp_current_alt_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_GPS
———✓
osd_wp_current_lat_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_GPS
———✓
osd_wp_current_lon_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_GPS
———✓
osd_wp_direction_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_GPS
———✓
osd_wp_distance_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_GPS
———✓
osd_wp_eta_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_GPS
———✓
osd_wp_next_number_pos # uint16
global
0 to 65535 set by the target
needs USE_OSD, USE_GPS
———✓
osd_wp_number_pos # uint16
global
0 to 65535 set by the target
needs 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

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.