Servers by jDrones

Mavlink to FrSky S.Port Passthru Converter for LRS or PX4 Pro

(Eric Stockenstrom - zs6buj) #1

So my Orange RX / TX 1W LRS UHF units arrived about a month ago, and after a steep learning curve I eventually had it all working. All except my trusty Taranis display. After using FlightDeck, and then also yaapu’s excellent LUA script for a while, I found it very difficult being without quick and easy flight data. Since the ground Orange RX has a Mavlink serial port it’s easy enough to hook up (by cable or BT) a laptop or tablet and run your favourite GCS app, but I sure missed that Taranis screen!

There are some great Mavlink/Taranis converters around, like this excellent one published by athertop et al on GitHub, but they output native FrSky S.Port sensor telemetry. FlightDeck and yaapu’s script are designed for the FrSky DIY sensor number range 5000, or “Passthrough” protocol, implemented in Ardupilot 3.5 and later (but not in PX4 Pro to the best of my knowledge).

Long story short, and out of necessity, I’ve written Mavlink to Passthru converter firmware for the Teensy3.x, which works with FlightDeck and/or yaapu’s LUA script. Many thanks and acknowledgements to yaapu for his wise and insightful advice, also to florent for guidance on FlightDeck requirements, athertop for testing ideas and Craft and Theory for the Passthrough protocol.

The beta of the firmware is here

Feel free to use it at your own risk

The target board I used is the Teensy 3.2, but at a push the firmware should run on a cheap STM32F103C, if, for example, we forgo the debug serial and / or the auxiliary Mavlink port.

The MavlinToPassthru converter comes in two versions:

  1. For use on the air-side: Mavlink telemetry in, Passtru telemetry out into a suitable S.Port equipped FrSky receiver, like the XSR or XM+

Comment out this line // #define Emulation_Enabled

  1. For use on the ground-side, likely in the back bay of a Taranis (or Horus), to convert Mavlink out of the Orange RX / TX 1W into passthu telemetry for feeding into the S.Port pin of the Taranis. Mavlink is available on serial3 of the Teensy 3.2 for connection to a Bluetooth adapter (like the HC-06), or anything else.

Un-comment out this line /#define Emulation_Enabled

For the auxilliary mavlink port, un-comment this line #define Aux_Port_Enabled

Taranis Back Bay

In this image I use pin 8 for the S.Port. Default is pin 1.

Taranis Display

Ground side with Orange 1W and HC-06 BlueTooth

Air side with FrSky XSR receiver and Pixhawk

(Alex Apostoli) #2

very well done Eric, great job!

(Eric Stockenstrom - zs6buj) #3

Thanks Alex.

Paul mentioned that ground speed is fluctuating up to a few m/s while at rest. I’ll look at that this morning. I think I misunderstood vx, vy (vz) from APM, but should be easy to fix.

(Eric Stockenstrom - zs6buj) #4

Hi Alex

I downloaded your latest Taranis script. Love it. Your blog is also stunning, with all the detailed diagrams and useful information!

Spent some time fine-tuning my passthru converter, and it’s much faster now. Perhaps you could give it a try when you get a chance.

(Travis Bridges) #5

WOW this is great this gives my idea hope. Would a setup like this be possible with your converter?

Right now, I have my modem set up this:

Would it be possible to instead set it up like:

Using the RFD900x PPM pass through, and get telemetry scripts running on the taranis?

Telemetry with PPM?
(Eric Stockenstrom - zs6buj) #6

Hello Travis

Welcome to our humble tread.

Yes, simply use the #define statements to set the Passthru converter to Air_Mode, and supply Mavlink at 57600 b/s.

Alternatively, don’t bother with the X8R, feed the converter S.Port output directly into the back of the Taranis if the ground RFD900x is nearby.

Your proposed solution will give you more flexibility to walk around though. If the X8R is too close to the Taranis it might misbehave.

(Travis Bridges) #7

Great news This worked well. All except for the X8R since it doesn’t support PPM. I used an XSR instead.

Thanks so much for this.

(Matthew ) #8


Just so I am clear how you have that hooked up is the XSR will never be on the UAV but will also be on the ground close to the rfd and the RFD is sending PPM passthru to the RFD on the UAV? I have been looking how to do this for awhile and it seems as though you have figured it out. Why did you have to use a separate script when RFD900x already supports PPM passthru?

(Travis Bridges) #9

Yes the XSR stays on the ground, the script on the teensy allows Mavlink Pass-through scripts like Yaapu and Flight Deck to run on the taranis.

The only link from ground to air is through the 900x.

(Matthew ) #10

That makes sense as to why you had the teensy. If these scripts were not needed you only need to hook up the xsr to the ppm pin on the rfd900 that is on the ground and setup that way. Might have to look into the yaapu script stuff looks very interesting for a quick down and dirty display. I was hoping you were using the teensy so somehow make s.bus work hahaha have a bunch of s.bus receivers but no PPM so I ordered a XSR.