I am using a rpi 3 with mavsdk and python to subscribe to telemetry updates, specifically attitude_euler. I am connecting to a pixfalcon on /dev/serial0, with the latest version of Ardupilot, configured for Multi-Rotor, and frame type of Octa Quad. When running a script, I get no updates from the device. My test code is pretty basic;
asyncio.ensure_future(print_attitude(drone)) async def print_attitude(drone): async for angle in drone.telemetry.attitude_euler(): print(angle)
I can successfully get telemetry if I flash the pixfalcon with Ardupilot configured as plane, or if I flash the pixfalcon with PX4, configured for Multi-Rotor. In fact, I can leave the script running and have the pixfalcon running Ardupilot, Multi-Rotor and get nothing, then without disconnecting any wires or cables, flash the pixfalcon to PX4, immediately start seeing telemetry on the console.
I’ve tried mavlink 1 and 2 protocol and I have compiled a c++ program to pull the telem instead of python and receive the same result. Qgroundcontrol can see telemetry just fine. The serial port settings are the exact same between working configuration and non-working configuration. If I run mavsdk_server, it discovers the autopilot and starts showing mavlink commands. When I run telemetry.py example, it only displays In Air: false on the non working configuration. If the pixfalcon is running PX4, then I see all telem (In air, position, battery, gps) from the telemetry.py example script.
Does anybody know if mavsdk with work with Ardupilot and Multi-Rotor? What I’m missing?