Passthrough telemetry over CRSF (crossfire)

Would be interesting. I have two MicroTX V1 where only RC is working.

1 Like

Hi Alex and Markus,

Yes I have tested the MicroTX V1 successfully on PT over CRSF.
I still believe some things got mixed up here. Markus was referring to the
Micro RX V1

From my understanding the “Micro RX V1” can’t be used for telemetry (with or without passthrough) due to a hardware limitation. Please feel free to correct me if I am wrong.

1 Like

ahhhh, you’re absolutely right, please excuse me, Markus was referring to the RX and I was referring to the TX… thank you guys!


Yes, the Micro RX V1 has the hardware limitations.

1 Like

@yaapu, I have a question for you, maybe obvious to some, but not to me, so I’ll ask it and if you can help share some knowledge here that will be great.

Is it necessary to use the CRSF protocol to get this telemetry onto your script running in OpenTX? Why would this be done rather than using MavLink and getting the same information from it? I am assuming that it has to do with sensors being made available to OpenTX and maybe there is no way to get or create sensors using only MavLink?

I ask because I wanted to get both your script working on my radio and also be able to feed MavLink information to a ground station, to have both at the field. I got this to work with two UARTs on the FC (Matek F405 Wing) I am running CRSF on Serial1 and MavLink on Serial5. The data from CRSF is being displayed on the screen of the TX16S and the crossfire wifi module provides the MavLink information to the ground station. It would make sense that since a lot of the information is duplicated from both protocols, that one would be used? MavLink would be the candidate in my mind and then your script would work with any FC through a MavLink connection?

I looked through this thread, but couldn’t find information related to this, so I figured I would ask this question directly. Thanks!

1 Like

I’m looking to do the same as you have set up here. Can you tell me what crossfire TX module you’re using? How did you setup the wifi link?

I agree, it would be nice if this could be done with one UART but at this point if I could get Yaapu telemetry on my TX16S and a full telemetry link on the MP at the same time I’d be pleased.

1 Like

Well, assuming that you have followed all the instructions from @yaapu on the first post on this thread, which means you will need his updated script and the custom version of arduplane/arducopter for your board you should have the script working on your radio.

This document from TBS describes how to get the Wifi module working for that: Page 61 includes the follwoing Note: in 1.17 there is a bug which turns the Mavlink option off everytime time you shut your transmitter down. So every time you power on, you have to go to the wifi configuration and re-enable the Mavlink option.

Basically, you need to make sure you have the wifi module enabled and working, visible from AgentX. I am using a full TX module, but it should be possible with all of the TX modules that have wifi built into the JR bay module. These are modules made since 2017 or newer, the modules prior to that did not have wifi built in. I bought mine just over a month ago, so it does have it. When you connect your TX module to your computer via USB and run AgentX you should see the wifi module in the list of TBS devices. Here you can turn on Mavlink, you can also do it from the crossfire lua script or from the screen on the full module.

I believe the wifi module also has to be configured to log on to the same network as your computer, and use port 8888 to get Mavlink via UDP. I read somewhere that ppl were having trouble trying to connect the ground station computer directly to the crossfire wifi module, so I am of course testing on my workbench, connected to my home computer. In the field I plan on using my phone as a hotspot for both the wifi module and the ground station computer

@Allister Let me know if this information helps you, or I could make a post with more detailed instructions for you.

1 Like

i hope you guys will be successful in your mission.


Hi, from my very little (mavlink over CRSF) experience there are at least 4 ways to do mavlink:

  • mavlink emulation (MavEmu) which is mavlink generated by decoding CRSF telemetry packets sent by the FC, this requies only 1 UART (one way only, mavlink messages are a small subset)
  • full bidirectional mavlink + CRSF which requires 2 UARTS
  • full bidirectional mavlink + sbus, 1 UART + RCIN
  • full bidirectional mavlink + RC over mavlink (guess should work), 1 UART

Would be great to have that info somewhere in the wiki.


Thanks @yaapu, I guess I got the 2nd option to work, with 2 UARTS, I’ll try and see if turning on RC over mavlink lets me get it down to 1 UART. I will report back what I find out.


Hey @yaapu, as expected, as soon as I disconnected the CRSF UART, I lost all of the ardupilot sensor data on the radio, though all of the crossfire sensors seemed to keep updating. Turning on RC over MavLink did allow me to keep radio control and MavLink information that the Wifi module relays to the ground station, but unfortunately your script is no longer getting sensor data… :frowning:

The telemetry page shows the sensors and I can see the little * flashing for 23 out of the 28 sensors, though the radio did report the last 5 as sensor lost; these are the VFAS, VSpd, GAlt, IMUt and ARM. These changed color to red on the telemetry page, and although the other sensors are black and the * flashes ocassionally, I can see that the sensor data is not updating. So your script does not report “No Telemetry”, but the data is not updating, things like mode change, etc. are not being reported. (Edit - On a full restart I do get the “No Telemetry” message from your script)

I am guessing that wherever you grab the sensor data are not tied to the MavLink data stream, but to the CRSF instead. Let me know if there is a way for me to help you look into whether getting data from MavLink is possible, otherwise I can live with using two UARTS to get radio and ground station working.


1 Like

Hi Jorge, this was somewhat expected, sorry if I made it unclear that CRSF protocol is a requirement for my script to work.
So it looks like Mavlink can be emulated when using CRSF and CRSF sensors can be emulated when using Mavlink,
thanks for your help!


Got it, thanks for clarifying CRSF as a requirement for your script. Dedicating 2 UARTS for getting all of this functionality is totally worth it. Definitely would want to have bi-directional for the ground station and your script on the radio.

I don’t mean to push the point, but would like to understand, why is the MavLink data stream not a possible place to get the data needed for your script? I should probably take the time to really understand how your script works, I hope you don’t mind me being lazy and just asking you… :slight_smile:

We are having snow here on the US east coast, I’m looking forward to a bit of nicer weather and get out using this new setup on an ARWing Pro and log some good hours with it!

1 Like

…well OpenTX has no access to mavlink data, nor does LUA.(unless you use @olliw42 custom OpenTX mod)
All widgets and scripts have access to are telemetry frames, either CRSF or frsky, and LUA allows “raw” access to them.
ArduPilot encapsulates data into otherwise legit telemetry frames which are delivered to the radio just as ordinary sensor data and LUA unpacks them, so my scripts do not use ordinary sensors but rather use the transport to deliver custom data.
Hope this makes sense to you


Thanks Alex, it does, enough to understand the mavlink data not being available to scripts. I see that the place where this would be possible is if the Crossfire module took the MavLink data and made it available to OpenTX as part of those telemetry frames, just like they do their own sensor data. Unfortunately, the firmware running on the module is closed and I doubt that TBS would be interested in doing that. May be worth logging an enhancement request to them regardless since their modules run on mostly OpenTx radios.

This makes sense and helps understand the need for the setup with 2 UARTS; thanks a lot!

1 Like

Thanks @jimenezlee! The discussion you’ve been having here today has given me some insight to how I need to set this up.

I was able a while back ago to get the Yaapu script running on Crossfire, and before that I had MAVLink running for my GCS. But not together. Reading now that you need to use two UARTS is the clue I was missing.

The forecast this weekend is -25c and snow, so I think I’ll be tinkering with this.


i am also using a v1 TX and its working flawlessly and its mostly in RFMD 2 without any lag or getting stuck

1 Like

First of all, thank you very much @yaapu for investing so much time and effort in this community. I just got the Script running on my Horus x10. I got one major Problem and a tiny one.

First of all my Setup: Horus x10 with the full Crossfire TX, Crossfire Nano RX v2 and my FC is the Matek f405-Wing.

I was able to set up everything, I have all the Sensors (23), my horizon is moving, speed and alt is beeing displayed and also my GPS coordinates. So I dared to do the next step and tried to setup the maps (I am using the latest Yaapu script 1.9.3-beta2 and it runs great btw.). I followed step by step the awesome video from the Youtuber “Built from Home” on how to download the tiles using GMapCatcher and convert them to 100x100. But unfortunately after finding a Lock on the Gps my Horus ist just showing the NO MAP tiles.

So I went into Mission Planner, fetched tiles and convertet them using the tool you included in the TOOL directory in the new YAAPU 1.9.3-beta2 ZIP. So far so good, all files 100x100 but somehow .jpeg. Dragged them onto my SD, plugged into horus and still NO Map tiles. Arrow moves, it shows my home location but it just wont display the satellite tiles. My Settings in YAAPU CONFIG are DMS, Google, GoogleSatelliteMap, min zoom 1, max zoom 20 (it won’t let me change max/min zoom, I only have 2-18).

So yeah, thats my main Problem, the other one is, that my horizon is moving, but delayed and during rapid movements it laggs, is this normal or did I overlook something?

If you, or anyone else who maybe experienced the same problem, find time to help me with this, I would be very thankfull. I am going to record a detailed Video once I figure this all out on how to setup the whole system and will also post a link here.

Thank you very much in advance.

1 Like

UPDATE: I got it working! The problem was, beacause it wouldnt let me change the max zoom I was stuck at 20 times, but as soon as I zommed out the tiles would apear.