Telemetry - OpenLRS and APM


I have been trying to get telemetry to work with my OpenLRS RX and TX. Been trying out different setups and baud rates but not got it to work.


The transparent serial bridge is working perfectly but when I try to connect the RX to the APM Telemetry port (port 3) I cannot connect via Mission Control. Running a serial monitor I can see traffic - ascii in the beginning saying something like "<startup_mode: ground>" and then binary. Seems to be ok... but not good enough to connect.


I think the problem might be related to bandwidth. OpenLRS supports 750 byte/seconds from the RX to TX. After looking at the documentation and source code I have not figured out how much data MAVLink protocol is configured to send per second.

Does anybody know?



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

Join diydrones

Email me when people reply –


  •  I am not trying to promote other forums.  I have been looking at this same subject for several weeks.  I happened upon this thread.  They are taking two 1W tx and making one a receiver on the plane.  Should mesh well with this work already done I believe.  It would significantly improve downlink range over the current 100mw that the rx is capable of.

  • Id like to try this using openlrsng and my 9x (er9x)

  • Martin, Is your fork compatible with 2.76?
    Do I still need to modify the GCS_mavlink.pde? (it looks like it has been changed with the new release)

    I cannot get it to work. What baud rate for the serial link do you use Herman?

  • Hi anyone have wiring diagram both on the transmitter side and the computer side and how code. should be set?
  • Glad to see that you guys are taking this further. Got less garage time now but just got back into the OpenLRS world. Thanks for the work! Hope kha would bring this into the main code instead of more forks and another OpenLRS spinoff. openlrsng is amazing

  • I am thinking of taking on a project to do what you set out to accomplish. I am currently using FrSky and playing around with jd-IOBoard to get APM telemetry over the FrSky telemetry link, but want to use LRS instead. I have both an OpenLRS TX and RX, and am looking to send MAVLink over the OpenLRS raw serial link.

    With the FrSky stuff, the data is sent far less often than traditional APM mavlink commands, so in the OpenLRS RX code, I would read in the raw MAVLink data, but only funnel it over the telemetry link at a much slower rate - enough to update the ground station and drive an antenna tracker, or what not.

    Any chance you have any code from when you were hacking on this project?

  • Success!

    The OpenLRS transparent serial bridge as carrier of MAVLink protocol works. I ran QGroundControl instead of Mission Planner which had lots of more functionality and configuration possibilities regarding telemetry.

    Throughput was at 700-850 bytes per second. Not sure if this was limited by OpenLRS or the protocol. But I suffered 30% receive loss and 78% send loss. Tweaking of data link did not help.

    Even HUD worked pretty smoothly.

  • I had another look at the specification for MAVLink.

    • "The minimum packet length is 8 bytes for acknowledgement packets without payload"
    • "The maximum packet length is 263 bytes for full payload"
    • "heartbeat every 60, 30, 10 or 1 second (1 Hz is recommended, but not required)"

    This means I could in theory send two full payload packets at 2 Hz via the OpenLRS RX/TX link. Very nice.

    ... back to the garage for some testing! :)

  • @Jesper


    I've been pondering on using the OpenLRS as a telemetry-only TX/RX so will be interested to see how you progress with this.



  • Looking at the source code there are several occasions where the MAVLink send algorithm is called. In the main loop, medium_loop and slow_loop. 

        gcs_data_stream_send(<freq min>,<freq max>);


    Some questions I hope someone can answer,

    - What is the maximum amount of data (in bytes) sent when gcs_data_stream_send is called?

    - Would MAVLink protocol still work if the gcs_data_stream_send under fast_loop and medium_loop are disabled?

    - Is it possible to strip down the MAVLink protocol on the APM without changing anything in Mission Planner? So for example it only sends position without info like gyro/IMU etc.

This reply was deleted.


Laurie J. Troy liked Jasper Kueppers's profile
Apr 1
Timothy Miller liked Joseph Udofia's profile
Mar 18
Joseph Udofia liked Joseph Udofia's profile
Mar 3