Forwarding telemetry data (NOT the MAVLink stream!) from Mission Planner or other GCS


I want to forward the parsed telemetry data (such as roll pitch yaw and altitude) from a ground control station over a UDP or UART port so that I can receive it in another software on the same PC. Is there a way to do this? Which GCS do I need? (Windows-based)

Consider that I do not want to forward the telemetry stream, as I can't properly parse the stream to extract the data; I want the extracted data.

Any help would be much appreciated!


Views: 1022

Reply to This

Replies to This Discussion

Any luck finding an answer on  this ?

No, I found nothing. I have stopped looking for answers since long ago though, there might be new ways to do this now after many updates and changes.

Good luck!


Missionplanner secretly (shhhh!)   outputs subsets of its internal data in response to html requests, in   JSON.     Take a look at     while Missionplanner is connected to a real plane or to a SITL aircraft.  (results below).     It returns lots of useful stuff in JSON, although it lacks SYSID and battery info.   I have some python code somewhere that parses this in an amateurish manner if you want me to dig it out, but it aint hard

And for other hidden jems of Missionplanner, poke this into a browser while it is running:

some vague pseudo-python code that might point you in the right direction (no guarantees, it is late at night here!!!) ... 

url =  ""
urllib2.urlopen(url, timeout=.05)
request = urllib2.Request(url)
contents = urllib2.urlopen(request).read(4096)

parsed_json = json.loads(contents) 
    alt = parsed_json["VFR_HUD"]["msg"]["alt"]
    airspeed = parsed_json["VFR_HUD"]["msg"]["airspeed"]
    throttle = parsed_json["VFR_HUD"]["msg"]["throttle"]
    heading = parsed_json["VFR_HUD"]["msg"]["heading"]
    roll = parsed_json["ATTITUDE"]["msg"]["roll"]
    pitch = parsed_json["ATTITUDE"]["msg"]["pitch"]
    target_bear= parsed_json["NAV_CONTROLLER_OUTPUT"]["msg"]["target_bearing"]
    lat = parsed_json["GPS_RAW_INT"]["msg"]["lat"]
    lon = parsed_json["GPS_RAW_INT"]["msg"]["lon"]
    heading = parsed_json["VFR_HUD"]["msg"]["heading"]
    climb = parsed_json["VFR_HUD"]["msg"]["climb"]


    print "Beware the target bear!!!!"

Parsing the telemetry stream itself is not trivial  (although I am currently trying to work out that via pymavlink), but I hope something like the above should do the job for you.











"META_LINKQUALITY":{"msg":{"master_in":1631,"mav_loss":0,"mavpackettype": "META_LINKQUALITY","master_out":81,"packet_loss":0.0},"index":0,"time_usec":0}}

Reply to Discussion



Season Two of the Trust Time Trial (T3) Contest 
A list of all T3 contests is here. The current round, the Vertical Horizontal one, is here

© 2020   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service