Refresh

This website oscarliang.com/cli-osd-position/ is currently offline. Cloudflare's Always Online™ shows a snapshot of this web page from the Internet Archive's Wayback Machine. To check for the live version, click Refresh.

Using CLI Commands to Set Betaflight OSD Element Position (DJI and Analogue)

by Oscar

Every time you update Betaflight or setup a new quad, you have to re-configure the OSD, rearranging element positions, isn’t that annoying? Well, you can actually save your OSD config, and just copy and paste it in CLI. Works for both analogue and DJI FPV systems.

Some of the links on this page are affiliate links. I receive a commission (at no extra cost to you) if you make a purchase after clicking on one of these affiliate links. This helps support the free content for the community on this website. Please read our Affiliate Link Policy for more information.

Just copy the below command lines in Betaflight CLI, and you won’t need to move the OSD elements around manually.

These are just my personal setups, you can make your own by moving the elements in the OSD preview window to the desire positions, and get the new values in CLI.

I am using these OSD elements in the following examples

  • Battery current draw (requires current sensor)
  • Battery current mAh drawn (requires current sensor)
  • Battery voltage
  • Craft name
  • Disarmed
  • Link Quality
  • RSSI dBm value
  • RSSI value
  • Throttle position
  • Timer 2
  • VTX Channel
  • Warnings

DJI OSD Layout (Simple)

set osd_warnings_pos = 2346 set osd_vbat_pos = 2438 set osd_rssi_pos = 2119 set osd_current_pos = 2483 set osd_mah_drawn_pos = 2470 set osd_disarmed_pos = 2284 save

Because the DJI FPV Goggles has such massive FOV, I prefer to have the elements closer to the centre so I can see them more easily.

DJI doesn’t support Link Quality, RSSI_dBm, Craft Name, Warnings, Throttle Position, and Timer yet.

How it looks in the DJI goggles:

DJI OSD Layout (Long Range with GPS)

set osd_vbat_pos = 2274 set osd_rssi_pos = 2518 set osd_flymode_pos = 2392 set osd_craft_name_pos = 2080 set osd_gps_speed_pos = 2360 set osd_gps_sats_pos = 2264 set osd_home_dir_pos = 2190 set osd_home_dist_pos = 2297 set osd_altitude_pos = 2326 set osd_avg_cell_voltage_pos = 2306 set osd_disarmed_pos = 2369


Analogue (PAL)

set osd_warnings_pos = 14634 set osd_vbat_pos = 2466 set osd_link_quality_pos = 2082 set osd_rssi_pos = 2114 set osd_rssi_dbm_pos = 2146 set osd_tim_2_pos = 2486 set osd_disarmed_pos = 2283 set osd_vtx_channel_pos = 2516 set osd_throttle_pos = 2475 set osd_craft_name_pos = 2088 set osd_current_pos = 2507 set osd_mah_drawn_pos = 2498 save

I use VTX channel for confirming channel in my receiver. Sometimes you can get signal even when you are on the wrong channel, but it’s not going to work reliably.

Time 2 is flight time, it only starts counting after you arm.

How it looks in the goggles (I forgot to put Current draw and mAh Drawn in the picture):


Analogue (NTSC)

set osd_warnings_pos = 14570
set osd_vbat_pos = 2370
set osd_link_quality_pos = 2082
set osd_rssi_pos = 2114
set osd_rssi_dbm_pos = 2146
set osd_tim_2_pos = 2390
set osd_current_pos = 2411
set osd_mah_drawn_pos = 2402
set osd_disarmed_pos = 2251
set osd_vtx_channel_pos = 2420
set osd_throttle_pos = 2380
set osd_craft_name_pos = 2088
save

Similar to the PAL version, but most of the elements have to be moved up the screen as the bottom is cut off in NTSC.

Leave a Comment

By using this form, you agree with the storage and handling of your data by this website. Note that all comments are held for moderation before appearing.