There are many questions about the unavailability of MSP_OSD. I had same
problems.
Hi everyone,
Iām trying to set up the DJI O3 Air Unit with OSD on PX4. Iāve flashed version 1.15 with MSP_OSD enabled and connected the DJI O3 Air Unit to TELEM1. However, Iām only seeing the main battery voltage displayed on the OSDāno other telemetry data appears.
Interestingly, when I tested the same setup with a Caddx Vista, the OSD works as expected, showing all relevant telemetry data.
Does anyone have experience with the DJI O3 Air Unit and PX4 MSP_OSD? Is there a specific configuratioā¦
Greeting!
Iāve just successfully used ELRS-MAVLink for telemetry. Itās quite simple MAVLink - ExpressLRS can be helpful.
Note that both the Tx and Rx should be running ELRS version >3.5. After updating, you can simply modify a few parameters of PX4 in QGC, and everything should work.
Good luck!
Iām also looking for solutions for OSD because I couldnāt get my Avatar HD to work with PX4 (no OSD information on the screen, although the msp_osd status seems fine).
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
The message function filed( message[4] ) in betaflight and ardupilot are all B6(182)
// External OSD displayport mode messages
#define MSP_DISPLAYPORT 182
But this filed PX4 every one is different
[image]
I have analyzed the MSPOSD drawing process of the latest betalight.
[image]
If you want to draw the pitch in OSD, such like in the picture above.
The complete data flow is as below. itās base on subcmd in the message[5].
24 4D 3E 01 B6 00 B7 // Release the display aā¦
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
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
main
ā Li-Tianming:v1.15.4-br_osd_mod
opened 06:48AM - 09 Apr 25 UTC
### Add MSP_OSD support for DJI O3/O4 and OpenIPC OSD rendering
There are lot ⦠issue about the not working of MSP_OSD module for DJI O3 and Walksnail. I had same
problems.
https://discuss.px4.io/t/msp-osd-support-for-walksnail-vtx-and-avatar-goggles/40134
This PX4 forum topic (https://discuss.px4.io/t/msp-osd-code-changes-to-support-openipc-dji-o3-and-other-digital-vtx-osd/44723) list all links that mention this issue
### Solution
- Change Message content which same as lasted Betaflight and Ardupilot.
- Change Message flow which same as lasted Betaflight and Ardupilot.
### Changelog Entry
For release notes:
```
```
### Alternatives
### Test coverage
- Unit/integration test: ...
- Simulation/hardware testing logs:
### Context
This is the final osd display result
OpenIPC Pixelpilot

DJI O3 goggles

For layout

3 Likes
Awesome thank you! I will check it out
2 Likes
alnI3S
April 9, 2025, 8:13am
7
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
2 Likes