Passthrough telemetry over CRSF (crossfire)

You have access to a subset of ArduPilot parameters, the same ones you would see via the OSD

https://ardupilot.org/copter/docs/common-paramosd.html

But bear in mind that it really only works on the transmitter itself, the CRSF TX does not have a powerful enough CPU to cope. If you have an OpenTX transmitter you can go to the crossfire menu. Also TBS have released some new AgentX scripts that should work a bit better.

I’m digging into the code because there is a discrepancy in the ExpressLRS documentation. In some sections it says they only support a subset, and in other sections it says they now support all CRSF telemetry. I asked about this in the ExpressLRS Discord group and was told that the documentation Wiki is open to edits by anyone, so that is their explanation for the inconsistency.

The ExpressLRS devs have updated the documentation, to show that they are passing all CRSF telemetry data.

I’m getting 22 telemetry types with ELRS and 23 with Crossfire/Tracer. It seems like the only type that I don’t see in OpenTX when using ELRS is FM/Flight Mode. Yaapu telemetry says No Telemetry.

I’m on 200hz refresh rate with 1:2 telemetry rate and I’m using a TX16S.

3 Likes

that’s cool, I must have a spare R9 kit around, I’ll try it myself

2 Likes

@yaapu Have you run into anyone having late frame rate errors that trigger a fail-safe? I had one recently, and now there’s another post about it. His log has more examples, but I’ll post mine if it’s needed too.

Eagerly awaiting the outcome. It’s the only reason I haven’t tried ELRS on my R9 hardware.

Thanks guys, and (OT) I had totally forgotten about the OSD based parameter menu. I think it was back in 2019 when I saw a video by Basti demonstrating it but in spite of OSD5_ENABLE and OSD6_ENABLE it didn’t work for me - it requires a 2MB flash FC which I didn’t have.

But if I understand you correctly @andyp1per , I should be able to access those AP parameters also via the new “Agent Lite” LUA script/app? It was already my to-do list to try it out soon. Even if those parameters indeed showed up on the little OLED screen of the Crossfire module, it surely wouldn’t be much fun to edit anything that way.

It’s quite convenient - you can edit PID values and certain settings. Which ones are controlled by the ones selected for the OSD parameter menu.

1 Like

I have a tracer setup and have never had a failsafe. Are you on a DMA channel for CRSF?

I’m going to plead a little ignorance here and say I’m not sure about the DMA.

Matek F405-STD. CRSF on TX3/RX3 (Serial 1, USART3), and MAVLink on TX4/RX4. (Serial 2, UART4). Does that S in USART vs UART provide a clue?

Best way to check is fire up mavproxy and then do
ftp get @SYS/uarts.txt -
here is what the output looks like on my matek:

STABILIZE> ftp get @SYS/uarts.txt -
STABILIZE> Getting @SYS/uarts.txt as -
UARTV1
OTG1     TX =   37692 RX =     411 TXBD= 26804 RXBD=   292
UART2    TX*=       0 RX*=       0 TXBD=     0 RXBD=     0
UART7    TX*=       0 RX*=       0 TXBD=     0 RXBD=     0
UART1    TX*=     262 RX*=       0 TXBD=   186 RXBD=     0
UART3    TX*=       0 RX*=       0 TXBD=     0 RXBD=     0
UART6    TX =      12 RX =       0 TXBD=     8 RXBD=     0
OTG2     TX =       0 RX =       0 TXBD=     0 RXBD=     0

The * indicates DMA - you want DMA on both RX and TX for CRSF

1 Like

I recently began migrating my models from a QX7 to a TX16S. So far I finished two AP ones, and for one of them Yaapu telemetry just won’t pick up any sensors. They’re all there in OTX.

I did a sensor re-discovery, restarted TX16S including Crossfire module, the craft itself, re-assigned the widget, all multiple times, but it just keeps displaying “No Telemetry”. The craft name is also not shown in the top left corner. It looks like script doesn’t even notice the model it’s assigned for.

I also compared the Yaapu settings to the ones of the model on which the script runs perfectly. CRSF is enabled on both.

Differences: Not working on ArduPlane 4.1.0 dev (a month old - ok maybe I should try updating that…) with Nano Diversity RX - Working on ArduCopter 4.1.0 dev (3 weeks old) with Nano RX

Hi Dave, I had a nice chat with @CapnBry, for now there’s no support for custom CRSF telemetry, only standard crossfire is supported.
The ELRS dev team has to decide whether to support such an extension or not :sleepy:

Hi, I don’t use sensors, for passthrough over CRSF I need RC_OPTIONS += 256 to enable custom telemetry over crossfire.
The craft name is shown only once telemetry is there so it really looks like it’s not receiving passthrough packets for some reason

Thanks, the script was working perfectly before on the QX7 and I didn’t make any changes on the craft (RC_OPTIONS += 256 already set - but will check again). I will try simply updating AP tonight to see if that makes it work again.

UPDATE: That did it. Around a month ago there must have been a dev version that didn’t properly work with passthrough telemetry.

Hello Alex
First, thank you for your great work.
I’m an ardupilot newbie that just made a long range quadcopter build that have a holybro kakute f4 v2 aio FC and crossfire nano.
I have a Taranis qx7 and Tbs Crossfire Micro Tx v2 . I m able to use crossfire and I can get the telemetry data . I have successfully installed yaapu telemetry to my radio and set it to Display screen 1 as yaapu7.

I m getting the “yaapu telemetry ready sound” but there is a “no telemetry” notification on top. But I m getting many INF packages .

Latest beta arducopter fw is installed as I see it supports this. And made the RC_OPTIONS 288(256+32) and set enable CRSF: yes.
Everythings is working except the widgets are not changing and “no telemery” is appearing.

I m suspecting of the radio firmware because its a custom one : TBS (e305bb2d) that I flashed to use CRSFshot. Can you help me out? I really want to use this and trying to get it to work for 2 days. Thank you so much

I recently wired up a Nano RX, and the passthrough is working just fine. I actually like to see the messages on my bench w/o having to look in MP. I wired up ports 3 & 4 on the RX to Serial1. Can I have bidirectional Mavlink and CRSF passthrough at the same time? Thanks.

Yes, but…

You can set up Mavlink on one serial port, and CRSF on another. It does work. But it’s not great yet. There’s been enough updates that I can get it to work reasonably on the bench, but when I get to the field it always seems to be sketchy and unstable. I have one quad set up with it, but I’m not rushing to convert my other stuff over to CRSF just yet.

There is only so much bandwidth and both mechanisms are competing for it, I suspect this is not a great idea to fly.