Passthrough telemetry over CRSF (crossfire)

depends on the environment and the antennas, but around 5km.

1 Like

Yes, up to 5…7 km
You can use tbs Longshot antenna to extend it up to 15… 20 km

1 Like

Well… Express LRS looks promising.
They have BetaFPV RX with 100mw telemetry

900 MHZ, of course.

And expresslrs way of firmware updating is like a cherry on the top :slight_smile:

ExpressLRS team promises longer telemetry range because of more oprimal rf protocol.

FWIW 6.10 seems to have fixed this for me

No more CRSFv3 freezes for me either with 6.10 and Diversity Nano, at least not on the bench. :+1:


this is a follow up to @james_pattison great summary

There are some differences between CRSF and ELRS.
ArduPilot 4.1 supports official CRSF and as long as ELRS behaves the same as CRSF it will work.
Current ELRS stable version is 1.x.
With ELRS 1.x RC works fine with SERIAL_PROTOCOL 23 just beware of the way ELRS handles RC channels since it uses compression to save bandwidth.
Telemetry is another story, right now ELRS 1.x only supports a small subset of all CRSF telemetry frames:

  • GPS

OpenTX will be able to discover them and use them as standard sensors.

For this project (passthrough over CRSF) I added custom telemetry frames to the CRSF protocol and shared the specs with TBS who agreed to include it in their firmware. ELRS 1.x does not support this custom extension and my scripts will not work with it!

Now the good news.

I’m collaborating with the ELRS devs to add official ArduPilot support to ELRS 2.x. We agreed on adding dedicated queues for our custom frames which paired with some tuning in the ArduPilot code allowed to have passthrough over ELRS 2.x even on a 50:2 link which is not bad at all considering that the bandwidth is only 125B/s. It’s not perfect, we drop a status text every once in a while and there’s some latency on the artificial horizon but IMO is plain good for a long range setup.
Right now this requires a custom ELRS branch, a custom ArduPilot branch and a custom version of my scripts.
ELRS 2.x will also support device ping frames (not yet in the ELRS 2.x custom branch) allowing ELRS auto detection and auto configuration of the ArduPilot custom ELRS code.



Not sure what I am missing. Running RadiomasterTX16S w/ OpenTX (v2.3.9) with Full TBS Crossfire connected to Nano Rx. Flight Controller is Matek F765 Wing w/ Arduplane v4.1.2.
I know the telemetry is working between the transmitter and receiver, as I can browse the Telemetry screen (on the radio) and I see all the sensors and their data.
However, I don’t see any of the output on the Yapuu screen. Oddly, after about 10 minutes the GPS coordinates show up - but nothing else.
Any ideas?

Hi, double check you enabled passthrough on Ardupilot by setting RC_OPTIONS += 256 and CRSF in my script by enabling it in the config menu

1 Like

Great stuff. Does the MatekF765-Wing image work for the newer -WSE? the -Wing is currently EOL.

Matek F765-WSE
And here:
Matek F765-WSE

Good news: current ELRS master branch now includes support for ArduPilot.

For testing you need:




Nice news!

But what do you mean “support”?

I was flying with “non-support” versions and everything was working fine. (Ardupilot + elrs + yaapu scrip)


Hi, good question :slight_smile:

ELRS support means being able to detect ELRS vs CRSF and tune telemetry for high and low data rates. Just as an example a 100Hz air rate with 1:64 telemetry ratio was wrongly detected as fast telemetry whereas the patched code would detect it as a slow rate.
With ELRS “support” 50:2 (50Hz air rate and 1:2 telemetry ratio) is quite ok delivering both status text messages and telemetry.

1 Like


what parameters would we need to set in this to run yaapu? would it be the same as in your post here?; >Passthrough telemetry over CRSF (crossfire)

@yaapu, I’ve just tried setting up the 1.9.6dev version of the script you posted here for EdgeTX 2.5. It doesn’t seem to be working with CRSF Micro TXv2. I’ve only got the one quad on CRSF and it was working before on OpenTX. The radio is getting sensor data as you can see in the photo.

If you think this is a bug or error, let me know what data I can get for you.


From the screenshot you have not enabled CRSF support in the widget config menu

is there any thing new on 1.9.6 for open tx=horus 10s

Well I’m a little embarrassed. That was it. Thanks for the easy fix!



Hi Martin, 1.9.6 has EdgeTX support and ELRS compatibility fixes

1 Like

I have recently been working to get the kinks worked-out with wifi connection/telemetry from the Crossfire TX to a device (laptop/tablet/phone). Finally, it looks like there is a stable, working solution. In my tests, I noticed I had to set the crossfire nano rx to output mavlink and on my matek f405 I had to use serial 1, presumably due to the dma issue discussed in this thread. As a result, I am unable to use yaapu telemetry over crossfire and have the yaapu script telemetry working now. I guess I can’t have the best of both worlds.

Two questions:

  1. Which FCs have dma on multiple UARTs? I have a mix of F405 Wings and pixhawk cubes in my fleet.

  2. If I were to enable CRSF and Mavlink on the nano RX and TX, would there be a conflict/instability since the FC would be receiving commands from two different protocols?