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.
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).
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”.
Then click on the OSD tab on the left hand menu, where you can configure OSD settings.
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.
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.
- 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
- Jul 2017 – article created
- Apr 2021 – removed info regarding MinimOSD, no longer applicable; updated article with latest info and screenshots
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?
How do I save an OSD profile so I can upload it to other quads?
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).
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.
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.
Hi Oscar! Many thanks for another awesome tutorial. Really enjoyed!
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.
Sounds like an issue unrelated to the OSD itself, replied a little late, however I hope I gave you some clarity on the issue.
Is there any way to change warnings etc in the OSD.
I would love custom text.
ps. Thank you for your work!!!
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!
Set the battery voltage to 4.4V
Does TransTEC F7 HD 30×30 Flight Controller for DJI have Betaflight OSD setup?
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.
I your FC, camera, and VTX all have OSD, does that create a conflict?
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?
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
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’
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?
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.
Does anyone know if this would work?
Fit both cameras and use a video switcher, controlled by RC channel switch on TX, to select front or rear view.
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.
Thank you UnboundUAV
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.
Im using Tramp HV and my camera is hooked up directly to tramp HV, will betaflight osd work on this?
No, you need to have the camera going through the board for the osd to be visible on your screen.
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…
Yes you can, just connect your MinimOSD to an UART and configure it as shown in this tutorial.
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!
That’s the “mah drawn” warning, once your “mah drawn” reach “capacity” set by you, you will get the warning.
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.
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.
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?
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.
Have checked connections all ok and betaflight ok, OSD will show for a second and than change to black screen. Please help
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….
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.
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.
Have you tried re-uploading font in the Configurator?
Any one knows, how can I select (and if it´s possible) lowband for TBS or Tramp from osd?
Silly ? Betaflight osd Is the cam required to have osd? I’m thinking yes but often wrong
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.
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.
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.