I’m trying to send MAVLink packets to my Minim OSD from my STM32 board running C, similar to the stream of telemetry data coming from the Pixhawk controller. I’m using the “standard” dialect of the MAVLink 1 C Library, and the MinimOSD is running the MinimOSD_Extra_Uni.946DV-MAVLINKPX4 firmware release from MinimOSD-Extra.
I’m beginning testing by only sending a MAVLink attitude packet over UART at 10Hz and 57600 baud, and the OSD is displaying “No Input Data!” I expanded the data output to include a MAVLink global position packet, also sent at 10Hz, same result. The MAVLink system ID and component ID are both 1. I’m currently attempting to send some dummy values to confirm the data transfer is working.
Here’s how I’m packing the packets from the C code:
size_t len = mavlink_msg_attitude_pack(mavlink_system.sysid, mavlink_system.compid, &msg, timestamp, 1, //roll, 2, //pitch, 3, //yaw, 4, //roll_rate, 5, //pitch_rate, 6); //yaw_rate); mavlink_msg_to_send_buffer(buf, &msg); len = mavlink_msg_global_position_int_pack(mavlink_system.sysid, mavlink_system.compid, &msg, timestamp, 7, //lattitude, 8, //longitude, 9, //altitude, 10, //relative altitude, 11, //vx, 12, //vy, 13, //vz, 14); //heading); mavlink_msg_to_send_buffer(buf, &msg);
What does the MinimOSD expect from the Pixhawk controller so it will start displaying data? Is there a start byte that needs to be sent before I can send attitude/ground position data? Is there a specific component ID that the MinimOSD expects? Am I using the right versions of my firmware/libraries?