How to Setup Betaflight OSD

by Oscar

Betaflight OSD is an integrated component and feature in Betaflight flight controllers. It overlays important flight data on your FPV video feed, such as battery voltage, current draw and much more.

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.

You can even use it as a menu to change your quad’s PID, rates, filters, VTX channel and many other settings. This article will go into what Betaflight OSD can do, and how to setup it up.

If you are using DJI FPV System, you need to check instructions here instead, this tutorial only applies to analog FPV system.

OSD Compatible Flight Controllers

Almost all Betaflight flight controllers support OSD these days, apart from very few FC that are designed specifically for the DJI digital FPV system.

OSD compatible FC should have this OSD chip onboard (AT7456E).

betaflight osd chip on FC


Connect your FPV camera and video transmitter to the flight controller. Camera signal goes to the pad “Vin” on the FC, while VTX signal connects to “Vout”.

Setup Betaflight OSD

In Betaflight Configurator, Configuration tab, turn on feature “OSD”.

Enable betaflight osd in configurator

Then click on the OSD tab on the left hand menu, where you can configure OSD settings.

Setup betaflight osd

On the left, you have OSD elements, simply turn on/off the flight data you want to display on the screen.

There are 3 columns for each element, labelled 1, 2 and 3. These numbers correspond to the different OSD profiles that you can switch between from your radio during flight. It helps you look at different flight info on the screen without getting the screen filled with numbers, but normally I just use one profile for all of my flights so I only check the boxes in column 1.

I always pick these OSD elements for my freestyle quads:

  • Battery voltage – MUST HAVE so you know when to land and avoid over-discharging your LiPo. Optimally you can also have “Battery average cell voltage” enabled, it makes it easier as it automatically calculates the voltage per cell for you (for example, instead of 16.0V for a 4S, it will report 4.0V on the screen)
  • Timer2 – flight time, the time since arming (Timer 1 is powered on time)
  • Warning – MUST HAVE, if anything is wrong with the quad, a message will be displayed on screen to help you troubleshoot

There is a preview of the OSD elements, and you can simply drag them around to your desired location.

You can also set and save element position using CLI commands.

betaflight osd preview

On the right side you have a list of OSD related options, though most of these can be left at default. Here’re a couple of important ones that need explaining.

Video Format – choose PAL or NTSC depending on your camera. Usually you can just leave it at “Auto” and it will detect the correct video format for you. But if you find OSD elements disappear down at the bottom, it’s probably due to the video format of your camera. NTSC has a shorter screen, and you need to move your elements up.

Under “Alarms“, you can set the limits for RSSI, Capacity (battery), Minutes (fly time/on time), and Altitude). When these limits are reached the data will start flashing on and off on the screen. It’s useful to set voltage alarm to remind yourself to land.

Let’s walk though the Betaflight OSD menu

Betaflight OSD has a menu that allows you to change Betaflight settings, which is really cool. There are a lot of things you can change, such as PID, rates, filter frequencies, VTX channels etc.

To activate OSD menu in your Goggles, do this stick combination:

  • Throttle center
  • Yaw left
  • Pitch forward

Your throttle should remain at around center during menu navigation.

From here you can scroll through the menu with the pitch stick, use roll stick to select options. Values can be changed with your roll stick.

Pro Tips:

  • To save and exit, simply YAW RIGHT.
  • To go back to the last menu, YAW LEFT.

After you have finished editing the options, make sure to save it by going back to the main menu, and select the second last option “Save * Reboot”.

Note that not all the options in Betaflight Configurator are available in the OSD, so you might still need your computer or Android App to have access to full configuration.

Changing Betaflight OSD Font

You can change OSD font by clicking at the “Font Manager” button located at the bottom right. Select a font preset (My favourite is “Bold”), then click “Upload Font”.

In this window you can also upload a custom logo which will show up as you plug in the LiPo.

Be aware that once you’ve uploaded a new font, it wont’ show it in the preview window. It will continue to show the default one. Don’t worry your OSD will show the most recently uploaded font.


I am not getting OSD text on the screen, why?

Make sure you have chosen the correct video format, try PAL or NTSC see which one works. If not sure just choose auto. Another thing is to check your camera and VTX wiring.

Where to change Craft Name in OSD?

Craft name text field is located in the Configuration tab.

I am getting lots of “V” letters on the screen

This is a sign of missing font file. To fix that, simply upload font again.

OSD Doesn’t Save Font and other settings

The easy fix is to plug in your battery when you are making changes to OSD.

Betaflight OSD has its own chip, and sometimes power from the USB just isn’t enough for the memory writing to work properly. By connecting the LiPo, ensures the OSD chip is fully powered. If you are doing this, make sure you remove your props first just in case.

“Upload Font” not responding

Try plug in the battery to your drone first, before connecting the USB to Betaflight configurator. Now try again.

My OSD Presets

Non-HD (with GPS)

set osd_vbat_pos = 2371
set osd_link_quality_pos = 2179
set osd_rssi_dbm_pos = 2147
set osd_tim_2_pos = 2467
set osd_flymode_pos = 2456
set osd_throttle_pos = 2391
set osd_current_pos = 2421
set osd_mah_drawn_pos = 2404
set osd_gps_speed_pos = 2359
set osd_gps_lon_pos = 2065
set osd_gps_lat_pos = 2048
set osd_gps_sats_pos = 2115
set osd_home_dir_pos = 2190
set osd_home_dist_pos = 2156
set osd_flight_dist_pos = 2435
set osd_altitude_pos = 18508
set osd_warnings_pos = 14601
set osd_avg_cell_voltage_pos = 2339

HD (with GPS)

set osd_vbat_pos = 2529
set osd_link_quality_pos = 2337
set osd_rssi_dbm_pos = 2305
set osd_tim_2_pos = 2625
set osd_flymode_pos = 3670
set osd_throttle_pos = 3606
set osd_current_pos = 3636
set osd_mah_drawn_pos = 2561
set osd_craft_name_pos = 2049
set osd_pilot_name_pos = 2081
set osd_gps_speed_pos = 3382
set osd_gps_lon_pos = 3119
set osd_gps_lat_pos = 3087
set osd_gps_sats_pos = 2369
set osd_home_dir_pos = 2269
set osd_home_dist_pos = 2235
set osd_flight_dist_pos = 2593
set osd_altitude_pos = 18587
set osd_warnings_pos = 14712
set osd_avg_cell_voltage_pos = 2587
set osd_log_status_pos = 1616
set osd_sys_lq_pos = 225
set osd_displayport_device = MSP
set osd_canvas_width = 60
set osd_canvas_height = 22

HD (without GPS)

set osd_vbat_pos = 2499
set osd_link_quality_pos = 2237
set osd_rssi_dbm_pos = 2229
set osd_tim_2_pos = 2563
set osd_flymode_pos = 3596
set osd_throttle_pos = 3532
set osd_current_pos = 3563
set osd_mah_drawn_pos = 2531
set osd_craft_name_pos = 2083
set osd_pilot_name_pos = 2115
set osd_warnings_pos = 14677
set osd_avg_cell_voltage_pos = 2520

Edit History

  • Jul 2017 – article created
  • Apr 2021 – removed info regarding MinimOSD, no longer applicable; updated article with latest info and screenshots

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.


Michael 19th February 2024 - 8:47 am

Hey Oscar. Thank you for your awesome work! Maybe you can help me, since I updated to Betaflight 4.4 the font in my OSD is about double as large as it used to be. It takes up lots of space and just looks silly. I am using PAL (not auto, since it is moving up tings when i leave it on auto).

Do you know how I can reduce font size?

Kind Regards


Guy 5th October 2023 - 2:10 pm

Using the HDzero freestyle vtx, I basically have to choose the HD video format otherwise I loose too much room on the display if I choose PAL, NTSC or AUTO. But choosing the HD video format makes my screen way larger than needed. That is OK I just move the fields around to get them when I want. But my problem is the stats. When the stats are displayed at the end of a flight, I only see the captions as the values are way past the edge of the image. How can I re-center the stats so I can see the values?

Arne 17th September 2023 - 1:47 am

Hi Oscar thank u for some much great information!

Can u how to read out the settings of my personal FC Betaflight Settings especially the OSD Position and Functions wich i use that i can save for my other Quads…and use when i need….

Oscar 23rd September 2023 - 2:52 pm

Sure, go to CLI in Betaflight Configurator, and enter the command “diff”, then copy the snippet that begin with “set osd_”.
The next time you want to apply the same OSD settings, just enter this snippet, with the command “save” at the end.

Jason 31st August 2023 - 8:08 am

my osd dissapears when i arm my quad, this started happening after i flashed bluejay to the esc. any idea what it could be? Speedybee f405 v3 stack

Oscar 3rd September 2023 - 1:40 pm

analog? DJI? or other fpv systems?
does osd come back after you disarm? can you get into the OSD menu using stick commands after disarm?
do you have multiple OSD profile setup and you accidentally get into an empty OSD profile maybe?

Dennis 14th September 2023 - 1:17 pm

I had the same issue today, OSD disappears when I arm. Speedybee F405 v3 stack, Bluejay ESC firmware, analog VTX

Štěpán 16th June 2023 - 6:08 pm

Hello… Is there any way how to reverse (180° ) the image of fpv cam without turning the whole cam upside down or using the hardware buttons ? Like CLI command or something ?? Thanks

Oscar 16th June 2023 - 6:45 pm

This is only possible in the camera settings, if the camera has this capability. You can’t do this in Betaflight settings.

Ert 20th May 2023 - 12:46 pm

with 10.9.0 configurator and 4.4.1 Firmware – i cant save bold letters in my HD OSD Config. Seems that the configurator has som issues… My front manager are grayed out.

And in y firmware setting y must enable both SD and HD too use the widescreen option. if y only choose only HD y cannot see the extended Screen too place y OSD symbols. (or its just a bug from my flightcontroller DarlRC722Dual?

JD Dupuy 9th February 2023 - 3:36 pm

How do I save an OSD profile so I can upload it to other quads?

Oscar 10th February 2023 - 12:24 am

In CLI, type diff, and find the lines that start with “set osd_” (those are your OSD element positions), and copy them to other quads (remember to save before exiting).

Kory 28th December 2021 - 9:02 pm

Anyone ever see the OSD working only when usb is connected? Guessing it would some sort of not enough power issue? Any workarounds? This is on a betafpv 75x on 3s. Has a cap on the power lead.

Phillip 29th June 2022 - 7:52 am

hi kory
I am having the same issue. I have caddx vista unit in my drone. (to replace the analogue system prior) but when I remove the USB connection . I loose OSD after a few seconds even with the battery still connected. Were you able to solve your issue . Please let me know.

Daniel 28th August 2021 - 8:39 am

Hi Oscar! Many thanks for another awesome tutorial. Really enjoyed!

Harry Latorre 21st May 2021 - 6:16 am

Hey Oscar,
I am sure you won’t see my post as your pretty busy but here goes nothing,
On my GEPRC KHX5 i am getting on my Cobra S goggles it says “Black Box=Fault” on the osd screen,do you have any idea what may be causing this message?
My other quads don’t report this issue.
Thanks alot,
Harry L

Isaiah Flores 5th December 2021 - 10:10 pm

Sounds like an issue unrelated to the OSD itself, replied a little late, however I hope I gave you some clarity on the issue.

Adrian 31st October 2020 - 8:51 am

Is there any way to change warnings etc in the OSD.

I would love custom text.

Cheers, Adrian

ps. Thank you for your work!!!

crckdns 20th August 2020 - 10:32 am

Thanks for all of your tutorials and reviews, it helped me a lot for few years now :)

Now I have a weird problem with my Omnibus F4 Pro V3 and Betaflight 4.2
I tried to enable OSD but it won’t show up. Also there is no video-format selection visible in the OSD tab.
At first I thought it’s because the camera (runcam hybrid) is set to NTSC and I can not set it up to PAL ..
but then I disconnected the camera and let only the VTX connected to omnibus, yet there is only grey screen without any OSD, so it’s not a PAL/NTSC problem.
Any idea what could cause this? is the OSD chip (AB7456?) defective? is betaflight not recognizing the OSD chip? would it even show the OSD tab if it wouldn’t recognize it?
Or is it just disabled in Betaflight and I can enable it in CLI?
Thanks in advance for any ideas!

JSKCKNIT 17th December 2019 - 2:09 am

Set the battery voltage to 4.4V

Rodrigo 23rd November 2019 - 2:13 am


Does TransTEC F7 HD 30×30 Flight Controller for DJI have Betaflight OSD setup?

Jay 31st March 2019 - 4:26 pm

I have a cl racing 4fs flight controller, a Foxeer Valkor camera, and a Mach 3 VTX. I have the video out from the camera connected to the CAM_S on the FC and the VTX_S connected to the video input to the MACH 3. I have betaflight OSD turned on. No matter what I do, I am unable to get the betaflight OSD to show up in my Goggles. I can see the video image and the Foxeer OSD material, but nothing else. Is there something obvious that I am missing or do I have a bad FC board? Everything else on the FC works fine.

Bob Pridgen 28th December 2018 - 10:28 pm

I your FC, camera, and VTX all have OSD, does that create a conflict?

Oscar 1st January 2019 - 12:05 pm

They shouldn’t, the OSD probably just get overlap on top of each other.
You should be able to turn off OSD in your camera and VTX?

glenn wardle 28th September 2018 - 3:33 pm

hi oscar, ive got betaflight 3.5 everything seems fine apart from one weird thing .
the “battery usage bar” in the osd .it appears on my screen but is always totally empty whatever the battery voltage..
just leaves an empty rectangle on screen ? any ideas ..thanks glenn

Simon 3rd December 2018 - 11:04 am

I have the exact same issue. any clues? I set my battery capacity to 1500mah and still nothing, though it does flash when its ’empty’

Joe 22nd August 2018 - 10:28 pm

My betafpv board flashed with 3.5 seems to have a weird way of navigating the OSD menu. The sticks are swapped. I have to use throttle to select and roll to scroll the list. Is this a change or a big?

Wild Bill 6th July 2018 - 3:58 pm

Hi Oscar,
Is it possible to ‘Hack the OSD’ so that it can be used as a multiplexer / second camera stream for video overlay or picture-in-picture?
This way you could have a second FPV camera pointing backwards as your ‘rear view cam’.
Just an idea, not sure if it would work.

Andrew McMahon 20th August 2018 - 3:16 pm

Hi All,

Does anyone know if this would work?


Stephen Thorpe 8th November 2018 - 11:12 pm

No, but….
Fit both cameras and use a video switcher, controlled by RC channel switch on TX, to select front or rear view.
Cheers Steve

UnboundUAV 28th August 2018 - 5:59 pm

This would not be possible.
Picture in Picture requires another chip as well as memory.
PIP chips will store the image in memory, format, then play the video asynchronously. It would use way too many resources with our current hardware.

Andrew 31st August 2018 - 3:45 pm

Thank you UnboundUAV

Brigzy 14th June 2018 - 10:23 am

Hi, I have an Eachine QX65 Micro Quad, it has the Beecore FC, I have all the OSD working with BFlight. One problem I have is that the Bat Voltage constantly flashes on the screen when flying, can’t work out where to adjust in BFlight? Do I need to set an alarm limit? Thx Tim.

miguel 13th May 2018 - 9:27 pm

Im using Tramp HV and my camera is hooked up directly to tramp HV, will betaflight osd work on this?

Robert Sederburg 27th June 2018 - 5:31 am

No, you need to have the camera going through the board for the osd to be visible on your screen.

Andrew 22nd February 2018 - 8:01 pm

Is it possible to connect MinimOSD to Betaflight based Flight controller which already has OSD chip on board? I have Kakute board with broken embedded OSD chip. Want to connect external OSD , any advice of how to do so? As i understand when i activate OSD in Features it tries communicate with already know on board OSD…

Oscar 6th March 2018 - 5:42 pm

Yes you can, just connect your MinimOSD to an UART and configure it as shown in this tutorial.

Skyler 20th February 2018 - 5:34 am

Am I assuming the capacity warning is for mAh left? so if I set it to 1000 the alarm will sound when there’s 1000 mAh left in the battery? A reply would be greatly helpful. Thanks!

Oscar 6th March 2018 - 5:32 pm

That’s the “mah drawn” warning, once your “mah drawn” reach “capacity” set by you, you will get the warning.

kronie 28th December 2017 - 6:03 am

Do I need to use the 5v/Gnd pins on the board for OSD to work, or can I power my vtx and cam via PDB? My Omnibus F4 doesn’t seem to have any voltage going through the Gnd/Ram pins, in 12v or 5v mode. When I power VTX/cam off PDB I don’t see OSD, but when I do the TX combination to open OSD menu it seems like the menu opens(even though I can’t see it) as I am unable to spin up the props after that.

egvneto 9th December 2017 - 1:38 pm

Thanks for the post. I have a Kakute F4 (furibee X215PRO) and when I uploaded the Betaflight Font, there’s no OSD anymore. Tried to go back to another font and no success.
Any idea?
Best regards

Sonny Paredes 7th December 2017 - 9:40 pm

can you please explain why I can test a camera external of the quad and get a clear image, when installed THRU the control board the OSD shows clearly but NO camera image shows just the OSD.
What did I fail to turn on in Betaflight?

Oscar 12th December 2017 - 1:56 pm

sounds like something wrong with the Vin pin onn your FC, or the OSD chip is just faulty.
double check your soldering to make sure though.

Kris 23rd June 2018 - 8:01 pm

Have checked connections all ok and betaflight ok, OSD will show for a second and than change to black screen. Please help

Stephen 21st November 2017 - 2:04 am

Hi, I have a few setups with separate mwosd boards and I’d like to be able to use the betaflight firmware on the mwosd board and have the flight controller recognize it as if its an AIO board. Where can I find the firmware to flash to it.
I just want to use the betaflight osd configurator instead of having to go through the serial passthrough and then mwosd configuration….

Thanks .

Oscar 28th November 2017 - 1:58 pm

sorry I don’t know if that’s possible at the moment, wiring is not easy as you need to connect it with SPI as far as i know.

Al 19th October 2017 - 7:34 pm

Is it possible to change the language in BF OSD? My HGLRC F4 V5 is defaulting to Chinese (I think) and I’d like to change it to English, but I don’t know where in the menus I can access this.

Oscar 24th October 2017 - 2:17 pm

Have you tried re-uploading font in the Configurator?

Alain 19th September 2017 - 10:18 pm


Any one knows, how can I select (and if it´s possible) lowband for TBS or Tramp from osd?

Kirk Charlot 17th August 2017 - 2:43 pm

Silly ? Betaflight osd Is the cam required to have osd? I’m thinking yes but often wrong

Oscar 21st August 2017 - 2:46 pm

I am not sure i understand your question fully, but Betaflight OSD does not require the camera to have OSD. The text is generated in the flight controller and overlayed on the camera.

GrannyApple 24th July 2017 - 7:37 pm

Hey is there any chance you can write about using external OSDs with betaflight?

Blue Falcon(RIP) on YT had a micro minum osd working with a sp f3 Board. I tried hooking mine up to a SP F3evo but the osd tab would register the osd. Osd worrks fine and read attitude and voltage and arm/disarm state. Heading and RSSI stopped working.

ysdairy 22nd July 2017 - 1:41 am

Please tell that the reach of the OSD setting screen and the reach of the picture from a camera aren’t identical.
In case of the camera which is pal system in particular, actual indication becomes quite smaller than a setting screen.
When setting an indication element as the end on the screen and the lower end, an element isn’t seen.
I apologize for that in clumsy English.