MSP_OSD code changes to support OpenIPC, DJI O3, and other digital VTX OSD

There are many questions about the unavailability of MSP_OSD. I had same
problems.

After some research and code reading, I found that the MSP_OSD rendering process of PX4 is very different from the latest Betaflight and Ardupilot

After comparing the Betaflight and OpenIPC MSPOSD code, I modified the code of PX4 MSP_OSD, and the OSD now can be rendered.

The current code are only examples and have not been completed. Full support may take some time.

My testing equipment is OpenIPC and O3/O4 Air unit.
It has already been tested in OpenIPC. I will test it on O3/O4 in the future

Thanks for looking into this. If you get it fixed up and working can you submit a PR?

1 Like

Definitely I will. :smiling_face_with_three_hearts:

1 Like

Tested on DJI O3 Airunit and it’s OK (2025-04-07)

I have completed the modification of MSPOSD function
The final rendering effect is as bellow:

The current OSD can already cover a lot usage scenarios. So, I have opened PR.
If there have any suggestions or modifications, I would be like to continue following up :smiling_face_with_three_hearts:

3 Likes

Awesome thank you! I will check it out

2 Likes

Thank you very much @Li-Tianming,

You did a nice work for the community.

I’m also working by porting Audupilot msp osd to PX4 by creating a new protocol for osd devices instead of modifying the existing PX4 code. There are 107 osd symbols instead of 22 for PX4 for now. Your work help me to simplify the porting.

Thanks again :wink:

2 Likes