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!


You need to be a member of diydrones to add comments!

Join diydrones

Email me when people reply –


  • Hi,

    sample how to read telemetry from UgCS - https://github.com/ugcs/ugcs-java-sdk/blob/master/ucs-client/src/ma...

    UgCS Java SDK. Contribute to ugcs/ugcs-java-sdk development by creating an account on GitHub.
  • hi,

    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}}

  • 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!

  • Any luck finding an answer on  this ?

This reply was deleted.