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
I have analyzed the MSPOSD drawing process of the latest betalight.
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 after clearing and updating
24 4D 3E 01 B6 02 B5 // Clear the display
24 4D 3E 0A B6 03 09 22 00 15 2D 30 30 2E 34 B6 // Write a string at given coordinates,this pit icon and data
24 4D 3E 01 B6 04 B3 // Trigger a screen draw
// repeat whole process again and again
The subcmd
is this below
In third line.
24 4D 3E 0A B6 03 09 22 00 15 2D 30 30 2E 34 B6 // Write a string at given
Data is
09 22 00 15 2D 30 30 2E 34 // data content
09 22 // Y and X position to draw in the screen
00 15 // X and Y index of pit icon in font_btfl.png
2D 30 30 2E 34 // this is message in char -00.4
The supported icon, you can find in this file