The lack of full Betaflight OSD support has been one of the biggest complaints of the DJI FPV goggles, but with the public beta release of the fpv.wtf MSP OSD project, this is going to change. DJI FPV Goggles can now use all the elements in Betaflight OSD! I will show you how to do it in this post.
Apart from full support of OSD elements, you can also use the OSD menu and get custom fonts. It’s very easy to setup. Not only Betaflight, basically any firmware that supports HDZero MSP DisplayPort will also work, such as iNav and Ardupilot.
Table of Contents
Root, Install WTFOS and Package
Follow this tutorial to root and install WTFOS on your DJI FPV Goggles as well as Air Unit / Vista.
Once that’s done, go to packages (https://fpv.wtf/packages) and install msp-osd on your goggles and Vista. This will give us full Betaflight OSD support.
Goggle Settings
In your Goggles, you should disable Settings => Display => Custom OSD, otherwise you will get some duplicated OSD elements.
Betaflight Configuration
Go to the “Ports” tab, under “Peripherals”, select “VTX (MSP + Displayport)” for the UART to which the VTX is connected. The MSP option should automatically be selected, if not please enable MSP for that UART as well.
Then apply the preset (just search for “OSD for Fpv.wtf, DJI O3, Avatar HD”). Once applied you can then skip ahead to configuring in the OSD tab.
The preset is the same as entering this command lines in CLI.
set osd_displayport_device = MSP set vcd_video_system = HD save
In OSD tab, select HD in video format.
Then enable and place your preferred OSD elements, just like analogue.
You can check in the goggles while adjusting the position of the OSD elements, it should update in real time. Try to put the elements around the center of the screen so they don’t go beyond what can be displayed in the goggles.
This is how I setup my OSD, you can just copy and paste them in CLI if you wanna try mine.
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 save
It looks something like this:
Custom Font
The default font looks too “blocky” and low resolution for the HD screen, I highly recommend using a different font. Here’s how to upload a new font.
There are four .bin files to every font, simply put those files in the root directory of the SD card and insert it to the goggles, that’s it. You don’t need to do anything to the Vista.
You can download other fonts here: https://github.com/bri3d/msp-osd#choose-a-font
- For simple white font, this is a great one: https://github.com/Knifa/material-osd/releases/latest/
- If you like HD color fonts, there are a couple of options:
Here are some preview of the fonts:
Knifa Material
Sneaky Color Font (Conthrax)
Sneaky Color Font (Blinder)
Sneaky Color Font (Sphere)
Vicewize Italic Color Font
If the font you downloaded doesn’t have the same names as the screenshot above then you should rename them by replacing the name of the font to the word “font”, like this:
font_bf.bin
font_bf_2.bin
font_bf_hd.bin
font_bf_hd_2.bin
OSD Overlay in DVR
Unfortunately it’s not possible to have OSD burned into the recorded video straight out of the goggles due to hardware limitations, but we can overlay the OSD in the DVR manually in post thanks to the work by FPV WTF team! Actually it might be better as we have the option to keep the clean feed or have DVR overlayed. This is still an experimental feature therefore setting it up is still a bit cumbersome, but I will show you how here.
Make sure your goggles and Vista have been rooted and have WTFOS installed. Install MSP-OSD packages on both Vista and Goggles.
Power on your goggles, and connect USB cable to your computer.
Go to the CLI on fpv.wtf: https://fpv.wtf/cli
Enter the following command lines and hit enter (copy line by line, right click mouse to paste if keyboard shortcut doesn’t work), this will enable OSD recording.
package-config set msp-osd rec_enabled true package-config apply msp-osd
After that, power cycle your goggles and quad. Now go out and fly! It should generate a .osd file along with the DVR video file and srt file.
To overlay the OSD in your DVR, use this web browser tool: https://knifa-develop.fpv.wtf/osd-overlay
Select the video file (your DVR footage), the osd file and the font files you want to use in the overlay (remember there are 4 files for each font, so upload all of those font files).
Click Start, and save your video with OSD somewhere. That’s it.
If you update WTFOS to 0.91 or newer on your Goggles, they’ve added “rec_pb_enabled” configuration option. By enabling this option, the OSD overlay will be added when you play back DVR inside the goggles. This might be useful for checking GPS coordinates after you crash for example.
To enable it, go to CLI on fpv.wtf: https://fpv.wtf/cli, and type the following (line by line, hit enter, then the next line)
package-config set msp-osd rec_pb_enabled true package-config apply msp-osd
Improved OSD Canvas in Betaflight 4.4
The new OSD canvas in Betaflight 4.4 utilizes the whole 16:9 screen area, there’s more space available to place your OSD elements. It makes the font and screen much appropriately sized for HD FPV videos.
To enable it, simply select HD in Video Format in the OSD tab.
Make sure to update both of your FPV goggles and Vista to the latest WTFOS version in order to get the correct display grid size. Also you need to enable compressed transmission to get the grid size to work reliably, otherwise you’d have to rely on certain bootup order to get it work, i.e. power up the quad first then the goggles. Hopefully this will be fixed in future version of WTFOS.
Edit History
- Sep 2022 – tutorial created
- Nov 2022 – added instructions on how to change font
- Jan 2023 – added instructions on how to overlay OSD in DVR, added links to HD color fonts
- Feb 2023 – updated instructions for BF4.4 (OSD canvas improvement)
73 comments
Im only getting 2 .bin files!
Could you please provide information about what the reading (first image, at the top of the page) of 14.6V with an upward arrow represents? I have a feeling it’s the total battery voltage, but I’m not sure. Thanks in advance!
Hi Oscar. Hands down, thanks for your excellent tutorial, as always! I suggest a minor point about the two CLI commands you posted in this article. You may like to point out that there is a carriage return (Ie. Enter key) that the user would have to hit to get the commands to work. If one fails to do so, they will be welcomed with an error message, “must specify package, key and value”.
package-config set msp-osd rec_enabled true
package-config apply msp-osd
package-config set msp-osd rec_pb_enabled true
package-config apply msp-osd
I have a v2 Google so can I see the GPS parameters of betaflight with o3
Dear Oscar, i have the V2 goggles and i use it with a small 3,5″ with Caddx vtx, and on another 5″ with DJI O3. May i need to root my goggles anyway? My current firmware is the 01.04.0000, and betaflight is the 4.4.3 version. I have the osd but without data from gps and O3, i have just numbers and text empty
You can use the V2 with both O3 and Vista, but i recall you might have to rebind each time you switch between these video transmitters. I haven’t followed up on the issue as I don’t have this setup anymore (I fly the Goggles 2 now).
you probably allready know by now.. but vista / airunit no need for rebind. as for 03.. Lets say you own 5.. rebinding 1 of em unlocks all 5 again ( so when you have one that is hard to reach.. no issue )
I use both Arduplane and INAV. The on screen OSD works perfectly with both. However when I do the post processing overlay procedure, I get strange artifacts and some of the elements don’t show at all.
Maybe you loaded the wrong font file for a different firmware? Copy the font files on your goggles. Try different ones if you are not sure.
so I have the wtfos installed and my gps installed and everything set up correct, but for some reason the gps info doesn’t show up only flickers on the screen but never really stay on. is it something I did wrong or do you have any suggestions on what I should do?
Oscar,
Have you tried to use video steaming from Google to WideFPV (for example) with colourful osd fonts? Fonts in the googles change to default when you try to stream(
Hey Oscar, followed the tutorial on Goggles V1 with Vista, in get an OSD waiting in the corner of the screen and nothing else is going on or updating from betaflight
Hey oscar, love your content. I have tried to download the Color HD fonts and the default font shows up. i have tried on bf 4.2.9, 4.3.1, and on my kiss ultra those fonts actually are HD Color Fonts. But not Betaflight. any idea what is going on?
you need to update BF to the latest version (4.4), then enable HD Canvas in the Video format option in the OSD tab.
Thanks!
It seems the osd overlay feature is not working anymore, I asked the support on discord, I didn’t get any answer, I trued it on different computers and on different browser, no success :(
did you get it working again? im new into this, bf 4.4, nothing works with the osd..
Everything worked great! New fonts upload and show now better over backgrounds! Great tutorial Oscar.
One question – How do I remove the Vista Temp that is visibly on my Goggles OSD now on the right?
its’ still there after you arm the quad?
Care to make howto tutorial on inav 6 with wtfos on dji goggle v1/v2 ?
so osd wont work on vista + goggles 2 unless you have the wtfos installed on both?
No, you don’t need WTFOS for this combo to work.
can the fonts be changed using the same method on the goggles2?
Had the OSD warnings working on one of my quads, then switched my o3 air unit onto a different frame with a different flight controller and its not working. Do I have to root everything again ? Could I be doing something wrong? Any help would be great.
You shouldn’t need to root the O3, it should work out of the box.
Make sure you are updated to the latest version in Betaflight, and you included “OSD (HD)” in the Build option when flashing your FC.
I got LQ 0:0 on my OSD and lq Warning all the times but quad flies fine, no failsafe etc. Anyone know how to put correct lq value?
what receiver are you using?
Good day Oscar what’s up,
I got a question. I’m trying to get my osd working on my DJI vista its rooted but it’s on a serial poort and that one i snot on the preset tab. Any idea ho wi can make it work. I’m on serial 11.
Thanks and stay safe
Hi Oscar, excellent tutorial. I’m commenting because it’s the only one of yours that I can’t get to work on a Foxeer F722v4 board. I bought two of these from five33 to build two Switchback HDs, and I have a Vista connected as shown in the board’s images. What I find interesting about your tutorial and other places is that everyone talks about the SBUS port (which goes to my RX1), but no one talks about what to do with the Vista’s TX and RX (which I have connected to UART5). Shouldn’t we configure the Rx of 5 in the Ports tab? (in my case). I also noticed that when I apply the preset, the font manager is no longer enabled. I tried connecting the drone first and then the USB without success. Thank you very much.
Hi Oscar,
many thanks for the useful and very up-to-date tips!!!!!
Hey Oscar probably a stupid question but how can i find the defalut fonts?
If you update WTFOS to 0.91 or newer on your Goggles, they’ve added “rec_pb_enabled” configuration option. By enabling this option, the OSD overlay will be added when you play back DVR inside the goggles. This might be useful for checking GPS coordinates after you crash for example.
How do you enable this?
i have added instruction, please check again.
Thanks Oscar! Done!
Hy , i want with inav 6 on googles2 with caddx vista… is very difficult can you please HELP me?
Hello Oscar and Thanks for your fantastic tutorials that teach everything and more: this hack/mod to have osd on dji goggle+vista can also work on my Fettec F7 FC+osd fettec board connected and if it is possible how should I connect the tx and rx wires of the caddx to the Fettec osd board/
F7 FC ?? Thanks and best regards
Odino
Fettec uses Kiss firmware? I am not sure I don’t really use Kiss stuff, sorry.
yes, kiss firmware
Hi Oscar, Thanks for your tutorials! Issue I am facing is when I attempt to render the OSD using the Knifa link oonline. The rendered video is of a very low quality blocky and almost unplayable. From the videos i see online the quality is almost a good as the goggle DVR quality. Is there any setting that I missed out resulting in a very low res video being churned out?
Hello Oscar,
there is a change, which made me almost crazy to find out.
set displayport_msp_serial = X is no longer valid
it changed to this:
https://github.com/betaflight/betaflight/pull/11913
It is a PITA to get TBS Tracer LQ and RSSI to show up in wtf.osd . everything shows up in HD OSD, but not the part with 1:100. ok, i detail 1:100 shows up, but never changes.
i tried a custom build and went back to core, if this is maybe the problem.
i still try out some combinations. i got every detail running in osd, even those fonts are cool, osd recording everything, but not that 1:100 :-)
Yea, you can just set it up in the ports tab then apply the preset that’s it you don’t need to enter CLI commands anymore.
Good evening, I have a question regarding the O3 aerial unit, I installed the entire wtfos system, and I have the following question, I made the code in the rc_pb_enable cli, but I can’t get the osd in my recordings, both in the glasses and in the videos taken from the SD card ..I need the information from the osd because as a long range flight with gps, I end up not having the coordinates after a failsafe, and for the ling range this is paramount .what would be the solution, thank you very much…..
Check github.com/fpv-wtf/msp-osd for : rec_pb_enabled (enable OSD playback if .msp file is stored alongside video.) Hope that helps!
I see waiting on OSD menu then disappears. Then nothing. no fonts. Please help. Cant find solution
did you root and install WTFOS on both the Goggles and Vista/Air Unit?
did you install the MSP OSD packages?
did you disable custom osd in the goggles menu?
did you setup Betaflight as shown in this post?
—
Try to connect your vista/goggles to your computer and update WTFOS to the latest version.
how to enable “rec_pb_enabled” ?
Enter these two lines in FPV.WTF CLI:
package-config set msp-osd rec_pb_enabled true
package-config apply msp-osd
Then press Enter
Unreal the information you provide. You just got me up and running. The setting in the googles fixed my issue. Thank you!
Great article firstly. Before you continue reading. I have noticed in your article the step:
Go to the Presets tab, and search for “wtf”, the “FPV.WTF MSP-OSD” preset should pop up, in options, select the UART you’ve connected to the Vista unit.
Instead of preset I did enter:
set osd_displayport_device = MSP
set displayport_msp_serial = x (should be 1 less than the UART number, e.g. if UART1, enter 0 here)
save
My Vista is on UART 3.
This is what I have done.
I have an issue, after doing all the hack. I am able to see custom OSD in my V2 goggles. But at same time I can see DJI OSD overlapping. So I have some OSD twice…
It looks good in BetaFlight configurator 10.8.0. The problem is in DJI V2 goggles itself. I can either turn off custom OSD (which is the one I want only) if I do this. I will be able to see only DJI OSD not me. If I keep custom OSD turn on. I will see both OSD my (custom from BetaFlight) and DJI OSD simultaneously. So my question is HOW I can turn off, disable DJI OSD in my V2 Googles and keep only the ones from WTFOS. Both Air unit Vista and Goggles have been rooted accordingly, WTFOS INSTALLED. Package loaded into vista and Googles. All is working expect I see DJI OSD and WTF OSD (Betaflight) at same time with same indicators placed in goggles twice. H_E_L_P!!!!
Yes, you need to turn off Custom OSD in the Goggles, you know this, so what’s the issue exactly? I don’t quite get it.
Hi Oscar, I have the exact same problem, the “old” OSD overlapping with the HD OSD, one shifted with the other, and this doesn’t disappear by allowing custom osd on the goggles. I can’t see how to get rid of the old low resoluton OSD on the goggles (Betaflight 4.4, WTFOSD).
Well, I think I have the problem solved! In my case at least, I need to have Custom OSD set to OFF AND I need to start the Goggles (DJI, V2) before the quad or else I still get either the old low resolution OSD (if custom OSD set to OfF) or both the low resolution OSD and the new high res one (if Custom OSD set to ON), but shifted on the screen. If I power the goggles first, wait for the Waiting for OSD prompt and then power the quad, I then get the beautiful high res OSD, well centered as set in Betaflight.
Guys, is there any way how to record flight video to sd card in goggles with this WTF OSD?
Because when I record the flight now, the record contains only DJI OSD, not WTF OSD.
I got GPS onboard and its quite important to me have recorded GPS position if I will crash somewhere far away.
Thanks
Do I need to activate my DJI Goggles V2 before adding the FPV.WTF hack? I’m concerned that if I activate them, it will require a firmware upgrade before I can root…
I don’t think you have to upgrade the firmware during activation. I think after activation it will ask you if you want to update to the latest version, you just need to click Cancel or No. I could be wrong as I don’t have the V2 goggles, only the V1, but I just activated a brand new Vista last week and that’s what happened.
So are you saying if I do this mod it will work with my betaflight quads.. And also my inav planes?
.
Thanks for the great tutorial as usual. I was able to update everything and get the OSD working for all elements except the warnings. Which is pretty important. They simply don’t show up whereever I put the element in the screen.
I have warnings such as arming disables selected. Why wouldn’t it feed through the OSD? Is there another betaflight config I may be missing? Im getting all other OSD info like Bat V, RSSI, alt, etc.
Is there a full list of currently supported elements anywhere? I couldn’t find anything on the wiki.
Thanks
Warning should be working. On the right side panel in the OSD tab, under Warning, have you selected the type of warning to display there? Try enable Battery not full, then plug in an empty battery and see if you get battery < full warning?
I ended up figuring it out. Had custom osd turned on so it wasn’t using the wtfos osd and i didnt realize. That’s why some things were displaying and some not.
Thanks though!
just had this hack/mod and its the best thing that happen to google v1 and v2 since like forever. but do note, i had to revert back the autorecord button as it makes the goggle ui laggy and sometimes responsive and corrupted recording file. will have to do a test flight with this mod.
In my Case LQ is not displayed and shows RSSI LOW error
I did this and had my first ever black out mid flight. Day 1. Pisses me off!!
Broke an arm, motor and Hero 11…..
Paying $100 for ruined parts now and reverting back to stock.
How’d you go back to stock?
It’s always good to do a safety flight test when adding ANYTHING to a quadcopter. You don’t have to load your recording camera to do a test.
Thanks Oscar and Team FPV.WTF! This now makes the DJI System the best overall HD system for FPV today!
can the osd data be saved into an SRT file like before? wait, will goggle-side DVR even work anymore?
I am not able to display gps coordinates, speed and some other items. Some show and some others don’t. When I enable custom OSD then it shows the gps coords old style but shows some duplicate entries.
Any ideas ?
I have the same issue. Did you solve it?
I’m also having the same issue.
I had same issues on a iFlight Chimera 4. No items visible. After doing upgrade of Betaflight to latest version everything I configured for OSD is visible.
Same problem here… Tmotor F7 HD and I see all items double. If someone knows a fix please tell!
“Do you really need this?”
The answer is an absolute yes for me. Not necessarily because it gives me God Mode and lets me fly merely by changing where my eyes go in the goggles. But because the goggles are finally rootable and we can enjoy more custom firmwares that let us actually accomplish these (barely) useful things.
Rooted goggles make me happy. Because well, root.
#
Take care with the process and the temperature of the air unit and caddx vista.
Maybe you get an error while are getting the wtf software.
And try back, reset the Googles and getting crazy for something that works easely.
But really after 3 years, dou you need this? Take care and enjoy your life!!
Thanks for ever Oscar ;)