Here at Airborne Projects we have been hard at work with new ways to bring MAVLink telemetry to the ground without extra parts. Specifically we are working on an Antenna Tracker that needs information about the whereabouts of the Drone, but this is for another post.

Because of our needs for wireless DRONE position information without the extra radio link we have developed a module that connects to the external module compartment of the Taranis Plus and retrieves the Frsky telemetry our Airborne Projects converter sends to the ground through the SmartPort protocol. This module transmits through Bluetooth the MAVLink data and in the video below you can see this working with DroidPlanner application in Android.

This converter is receive only, as the SmartPort as far as we know does not allow for sending.

We are able to reconstruct many messages from the information our converter sends to the ground, but even so we have been testing sending extra information through unmarked sensor IDs. This is going to be available with a free of charge firmware update to our customers.

Below is the data MAVLink data which is populated by our telemetry module:

mavlink_msg_heartbeat_pack(1, 1, &message, mavlink.mav_type, 3,
        mavlink.base_mode, mavlink.custom_mode, mavlink.system_status);
    uint16_t message_len = mavlink_msg_to_send_buffer(buffer, &message);
    Serial.write(buffer, message_len);

    mavlink_msg_sys_status_pack(1, 1, &message, ~0, ~0, ~0, 0, mavlink.battery_voltage,
        mavlink.battery_current, mavlink.battery_remaining, 0, 0, 0, 0, 0, 0);
    message_len = mavlink_msg_to_send_buffer(buffer, &message);
    Serial.write(buffer, message_len);

    mavlink_msg_gps_raw_int_pack(1, 1, &message, 0, mavlink.gps_fixtype,
        mavlink.gps_latitude, mavlink.gps_longitude, mavlink.gps_altitude,
        mavlink.gps_hdop, 0, mavlink.gps_speed, 0, mavlink.gps_satellites_visible);
    message_len = mavlink_msg_to_send_buffer(buffer, &message);
    Serial.write(buffer, message_len);

    mavlink_msg_global_position_int_pack(1, 1, &message, 0,
        mavlink.gps_latitude, mavlink.gps_longitude, mavlink.gps_altitude,
        0, 0, 0, 0, mavlink.heading * 100);
    message_len = mavlink_msg_to_send_buffer(buffer, &message);
    Serial.write(buffer, message_len);

    mavlink_msg_attitude_pack(1, 1, &message,
        millis(), mavlink.roll * 3.14 / 180.0, mavlink.pitch * 3.14 / 180.0,
        mavlink.heading * 3.14 / 180.0, 0, 0, 0);
    message_len = mavlink_msg_to_send_buffer(buffer, &message);
    Serial.write(buffer, message_len);

    mavlink_msg_vfr_hud_pack(1, 1, &message, 0.0, mavlink.groundspeed,
        mavlink.heading, 0, mavlink.bar_altitude, mavlink.climb_rate);
    message_len = mavlink_msg_to_send_buffer(buffer, &message);
    Serial.write(buffer, message_len);

Lets us know what you think, or any suggestions.

E-mail me when people leave their comments –

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

Join diydrones


  • @Artem Hey. Regarding the frskyD protocol I dont know how it works and don't have the hardware for me to test. If I take a look at it and have news I will post it. If you happen to know of a source where the differences are well explained I might give it a try.

    @James, no I have not thought of that. To be honest I never even worked with it but it seems interesting. The only problem I see is that to make a product that works without configuration it would have to create a Wifi network and clients of this network would not have access to the internet. This is a deal breaker for some people which only have one wifi radio available. The other way would be a simple web interface for advanced users to choose the network to which the ESP8266 would connect but that already creates some complications, as I noticed with the Emlid's REACH module.

    @Hugues: You can see the other way around. You get another "free" telemetry channel for redundancy :D

    Thanks for the comments

  • MR60

    unfortunately, i consider telemetry through another radio link as a critical safety link redundancy. Excellent for non critical non professional uses though!

  • finally, a working solution for hobbyist where we do not need full scale bidirectional mavlink. 

    can you please implement it for the older frskyD protocol for use with openlrs/openlrsng hardware for long range? this would've been just awesome- feeding my AP antenna tracker!  

This reply was deleted.