MSP protocol support

There’s no way for “us” to add anything to the DJI Goggles, it’s a closed system, we send telemetry and the goggles render it.
A very good option is to root them and install the msp-osd extension, then by enabling MSP DisplayPort (SERIALn_PROTOCOL=42, OSD_TYPE=5) you would have a full ArduPilot OSD.
Right now you’d need latest master to use this soluition

1 Like

I have been reading about that.

How can we tell if that feature is part of a beta or official release? Is there a particular commit or pull request to follow?

All needed ardupilot fixes/patches have been added to master today, su by using our custom build server or simply waiting a few hours for the build server to push out the new builds you’ll have an ArduPilot setup that fully supports DisplayPort on rooted DJI FPV Goggles, with HD OSD text overlay and color fonts


@fuego Rooting the goggles is only one part of it. The ardupilot support has to also be there.

(posted in the wrong place)

What an incredible info ! This is so marvellous. Thanks Yaapu, Ardupilot team (and WTF team :-).
2 years I love so much flying with yaapu on DJI FPV… We are now facing a new day with ‘native’ OSD.

I rooted my DJI FPV device, install WTF OS and msp package. OSD is displayed but I didn’t find any trace of OSDn_HD_RES_EN or OSDn_HD_FONT parameter on Arduplane master 4.2.3. I generated the firmware for my target ‘Matek F405’ but seems there is no related parameters listed above.

So I will wait my target will be generated on master …

thanks :slight_smile:
Parameter names have changed and it’s only in master, i.e. >= 4.3

OSDn_FONT_INDEX (unused yet)

1 Like

I just set this up and I’m blown away. Full BF style OSD was already a dream come true, but this… with the higher resolution grid and HD fonts it’s a whole new world. Being an OSD junkie, I can place more elements than ever before - and still have more camera view than ever before. Colored HD icons, fantastic as well. The OSD now looks like a really expensive and pro system. :wink:

There were some hiccups when editing the OSD a lot, FC and/or googles had to be rebooted. Also MP is flooded with “SENDING UNKNOWN MESSAGE (50)” but I guess that will solved in no time when MP catches up. For now, X/Y fields have be used for placing the elements on the huuge new 50x18 grid.

For me personally, this is nothing less than the real beginning of digital FPV. The limited OSD bothered me from the beginning. I have no doubt DJI held this feature back on purpose, for the new generation air units soon to come. They could still score though by providing the ability to record the HD OSD also with air units - apparently with their new drone and the new goggles that’s already possible.



I flashed ArduPlane V4.3.0dev (f9bc7e44) and configured OSDn_TXT_RES = 1 (thanks Yaapu)
I have the OSD but stange fonts.

I initially activated MSP_OPTIONS = 4 found in GitHub - fpv-wtf/msp-osd: MSP DisplayPort OSD.

Is there a way to update/change fonts please ?

[EDIT] I figured out that I have to add the fonts on DJI goggle SD card (root) after renaming like specified here GitHub - fpv-wtf/msp-osd: MSP DisplayPort OSD

so, my problem is auto-solved. :slight_smile: I choosed clarity_hd font (the 4 files)

That’s still the BF-style workaround which is not needed anymore. Check out the brandnew wiki section and HD fonts offered by AP: MSP OSD — Plane documentation
and ardupilot/libraries/AP_OSD/fonts/HDFonts at master · ArduPilot/ardupilot · GitHub


Giving these links helps a lot. Thanks !

Result is awesome - congrats to all involve !

1 Like

Well, now I’m having problems. I rooted another Air Unit on a BF quad, and in the process also updated WTFOS on the goggles to make versions match. Then I also updated the first AU running AP.

Since then the OSD either doesn’t show up at all, or incorrectly placed (‘zoomed in’ when using the new large grid). After several attempts it appeared completely and looked like I had set in 2 days ago, but didn’t update at all.

I then generated a new custom version in case there might have been updates, but that didn’t help. On the BF quad it’s working. Hopefully I find a solution soon, as I was planning to fly the plane tomorrow and enjoy the new OSD.

@macfly1202 I don’t know how you found OSD1_TXT_RES in 4.3.0 beta. I checked the git_commit text file for the beta build, for the matek f765-se, and it is from September 12th, which is too old to have the appropriate change. The relevant change was added on September 21st. I don’t know how you guys are using this feature without generating a custom build.

Regarding the custom build server, for some reason the default options for plane don’t enable OSD. What?? Why not make it so the default options are the same options used when generating the official builds?

@yaapu I only see “OSD WAITING…” In a blocky font, at the bottom right corner of the screen, that looks different from the DJI font. I’m assuming there is some way to get this message to go away and the full OSD will appear afterwards, but I’m not sure what needs to be done. The entire system is booted up and armed.

From a previously working DJI OSD setup I changed:
OSD_TYPE from 3? to 5
SERIAL2_PROTOCOL from 2 to 42

I did not add a fonts folder to the goggles SD card. I’m assuming that’s only needed if you want to modify the font to be something other than the default.

Edit: looking a little deeper, in my case, I think I needed to change SERIAL5_PROTOCOL (UART8) to 42 instead of serial 2. Will test tomorrow…

@David82 I used the custom build server to generate the matek f405 (Ctr) I use. I give the hash commit f9bc7e44. For the OSD1_TXT_RES to 1, it is Yaapu who give it some message above. KR.

Edit: most of the time finding the right serial is the most difficult in ardupilot ecosystem. Happily matek site help a lot like for their board. I found the wiring for your board here

David, you need to use the latest master, not beta.
If you require build options different from the ones used by the build server use the custom build server otherwise download the “latest” ardupiltot build.
Follow the steps in the wiki reported above.
Add the 4 font files to the root of the goggles SD card because you need to add custom ArduPilot fonts

In the meantime I discovered the OSD is not completely frozen for me, but updating once every few minutes. What could be the reason for such a slowdown?

Have there been any further changes on the AP side, i.e. does it make sense to try to keep updating/custom building to make my problem go away?

I don’t think so, this looks like a problem on the DJI side

That’s odd, it seems I’m the only AP user with that problem on their Discord. Well, I’ll just fly the BF quad with WTFOSD for now (OSD updating normally). It’s all brandnew stuff, so I’m sure things will sort themselves out after a while.

I used to have a similar problem where the goggles did not detect the MSP “draw” command for some reason leaving the OSD frozen, it would work for like 20 seconds, freeze for 7 and start again, I solved it by removing all wtf stuff power cycling and starting from scratch, it’s a “hack” after all and some hiccups are to be expected