Passthrough telemetry over CRSF (crossfire)

Yes, it worked once with a previous ardu firmware.

I didnā€™t test the performance as I want to migrate processing MAVLink to EdgeTX anyway but prototyping is easier done in Lua.

My idea is to tunnel MAVLink from the receiver to the handset over CRSF so there is no need to implement TX/RX control over MAVLink (we could technically generate tunnel frames on the air side for TBS).

2 Likes

Hi Alex,

I am sorry if I am breaching some etiquette as I understand this forum is intended for developers, but I have read this thread and tried to get answers on AP discourse without success so this is my last chance it seems. I really appreciate all that you and all the AP developers have done but I have not succeeded in getting passthrough telemetry working on CRSF.

I have experience with drones and betaflight and now I am developing a sailboat system and it is my first try of ArduPilot. I have most things working including a windvane I built with an AS5600 chip; I can see the windvane data in MP I just cannot get it on the telemetry screen of my TX16S.

Here is the setup:

TX16S with CRSF micro Tx FW v6.19
TBS nano Rx FW v6.19
Mode 8 Ch
Telemetry ON
RF Profile Dynamic
Failsafe mode Cut
RC by MAVLink Off
Rx Batt Sensor Off

Matek H743-SLIM V3 running ArduRover 4.5.7

The Nano Rx is connected to Tx6/Rx6 (SERIAL7).
BRD_ALT_CONFIG 1
SERIAL7_BAUD 57
SERIAL7_OPTIONS 0
SERIAL7_PROTOCOL 23
It seems to work fine, the sticks move in MP radio calibration screen, servos move appropriately, and some telemetry data makes it to the Tx.

The AS5600 chip has analog (0-3.3v) output connected to the RSSI pad on the FC, which is pin 8.
WNDVN_DIR_PIN 8
WNDVN_DIR_V_MAX 3.292397
WNDVN_DIR_V_MIN 0.0249756

The wind_dir is displayed in the MP status window and in the Quick window and changes appropriately when I rotate the windvane.

Now to try and get passthrough telemetry working:
RC_OPTIONS += 256 (= 288)
RSSI_TYPE = 3 (I also tried 1 as the input to the RSSI pad is analog, but the wind vane works either way).

When I go to the TX16S telemetry screen and Discover new, I get 25 sensors listed, of which 1-3 and 7-16 are active (I can list them if necessary). There is an add new button but I donā€™t know what info should be added here to add the wind vane (if that is possible). If I Discover new again it does not find any more sensors and the button changes to Stop indefinitely.

I installed the Yuupa script on the TX16S. In Yaapu config I set
Enable CRSF support = yes
Enable WIND support = yes

This does not seem to have changed the behavior of Discover new sensors. The Yaapu telemetry screen displays, although sometimes it displays a banner ā€œno telemetry dataā€.

I ran the Yaapu Debug CRSF script and the result is attached.

Some questions:

1. There must be something I am missing, or?
2. There is an airspeed pad (pin 4) on the FC, might that work?
3. In the Yaapu config I found Wind Direction as an option under plot telemetry source 1/2 - I set that parameter but what does it do? I don't know where that should be displayed.
4. In this thread there is much discussion about telemetry speed needs to be >25HZ  (or a ratio of 1:4 or 1:2) but I cannot figure out where to set these values. On the MP Config Planner screen there are telemetry rates, do I need to set these to 25? I tried setting them all to 50 but did not discover any new sensors.
5. Is the Yaapu script necessary for passthrough to work? For a boat, I don't really need the provided telemetry screen. I might have a go at writing a lua script to display a windvane (if I can get the data to the radio).

boat-crsf-19700101_000927_plog.txt (27.2 KB)

Thanks so much for any help you can provide! I have even less hair now than when I started! Cheers, Chris

Hi,
Yaapu script does not use sensors, CRSF native telemetry is not used at all.

Your setup seems about right, key points:
Ardupilot:
RC_OPTIONS = 288

Yaapu Widget:
Enable CRSF support = yes
Enable WIND support = yes
(plot telemetry is not needed and is used by an additional screen you can define to actually plot the wind speed)

Telemetry ratio is critical, it is the ratio between your link rate 100Hz, 200Hz, 500Hz etc and your telemetry rate.
Example, you have a 250Hz link rate and you want a telemetry rate of 50Hz you need a ā€œratioā€ of 1:4 or better (1:2), 1:8 wonā€™t work because 250/8 < 50
You want a telemetry rate of 25Hz or better, the higher the better.

Passthrough telemetry needs to be decoded, so a decoding lua script is needed

1 Like

Hi Alex, thanks so much for getting back to me, much appreciated. It seems my link is too slow, in the Yaapu debug CRSF screen it says the link is 10 Hz. But I cannot find anywhere where to view or change the link rate and the telemetry ratio. Where are these settings? Iā€™ve searched the Tx, the TBS Agent settings, AP settings - where are they? Also you mention the ability to use plot telemetry and define a screen to show wind speed; please can you tell me where it is documented how to do this? Also, is it possible to simply get a list of the detected pass-thru telemetry data on the tx (similar to the sensor display)? Just so I can see what if any data are coming over the link. Sorry if these questions are stupid! I am no dummy and I do have programming and other kinds of experience, but I am really struggling with this. Cheers, Chris

Sorry, forget the question about how to set up plot telemetry. I found the wiki on github. I donā€™t often use github, my apologies. Iā€™ll read through it all and see if my other questions are answered there as well.

OK, I have read through the wiki and I understand how to configure screens etc. I still cannot get it to work.

In TBS Agent Lite I can change RF Profile from Dynamic to 50 Hz or 150 Hz - so I changed it to 150Hz. There appears to be no setting in TBS software for telemetry ratio. I asked Blunty and he said that it can be changed in ELRS (I had previously found this info in the AP docs) but as far as he knows it cannot be changed in CRSF. After changing the Rate Profile to 150 Hz, I ran the Yaapu CRSF debug script and it is still only reporting a rate at top right on the order of 10-11 Hz - so clearly not fast enough. I donā€™t understand how anyone can get this working over CRSF if the telemetry rate cannot be changed. Am I missing something or do I just need to give this up and get ELRS? At this point on the Yaapu screen I just get ā€œno telemetry dataā€ although this was not always the case yesterday. Thanks - Chris

What version of EdgeTx are you running? And what version of the script are you using? Can you post a photo of the radio screen when youā€™re connected to the boat? The script will work with all that hardware, and I say that because Iā€™m running pretty much exactly the same (H743-wlite, but close enough) and it works. So thereā€™s got to me something small missing.

On TBS you canā€™t change the link rates like ELRS. You can only choose between 50 and 150. Both will work, but the update rate at 50 is pretty slow, but 150 works fine.

Iā€™m running EdgeTx 2.8.1, and Yaapu script v2.0.0_beta3, downloaded yesterday. Attached are screenshots of the telemetry page and the debug page. Yesterday I was getting at least some telemetry, now none at all. For good measure, Iā€™m attaching my parameters in case I inadvertently messed something up.
CJ H743-Slim.param (21.7 KB)


I just updated to EdgeTx 2.10.5. Everything looks the same.

First thing that jumps to mind is the yaapu config. I know you said itā€™s correct but it doesnā€™t look like it is. Configuration is per model. You mentioned the script worked at one point. If you created a new model, or re-named the model that will re-set the yaapu configuration. Can you humour me and just double ( or triple, quadruple as needed) check that the yaapu config for the model Boat has CRSF turned on?

In the mean time Iā€™ll keep digging.

Edit ā€¦ Iā€™m second guessing myself. Still doesnā€™t hurt to double check the yaapu config but I was wrong about what I was looking at.

Yes, itā€™s still on. Thanks for getting involved. Iā€™ve been at this a few days!

Try deleting all the sensors then discover new again. Iā€™m showing 26 sensors.

Double check all the wiring. Is the TX from the controller still good the RX on the receiver.

What else did you work on since yesterday when it worked?

On my Nano RX:

Output 1, CRSF TX
Output 2, CRSF RX
Mode, 12 ch  (shouldn't matter)
Telemetry, on
RF Profile, Dynamic
Failsafe Mode, Cut
RC by Mavlink, On (but this is up for debate)
RX Batt Sensor, Off

On the TBS Micro TX V2

Dyn. Power, On
Encryption, off
Op. Mode, Normal.

In Yaapu Config

PX4 Flightmodes, no
CRSF Support, Yes
(on this model, Wind and RPM are off, but I have it turned on on others so I know it won't change anything)

Thanks! Iā€™ll try all that tomorrow. I donā€™t think I changed anything yesterday but Iā€™ve been thrashing around with this thing so much, I might have done. Good call on the wiring - this isnā€™t in an actual boat, I am literally breadboarding it, so something could have come loose. My settings only have minor differences from yours, but something must be wrong with it so I will try them all.

1 Like

OK, Iā€™ve done a few things:

I had a parameter backup and it reminded me I changed all the telemetry rates in AP (Config>Planner) to 50, so I changed them all back to 2 or 4. This had no effect.

Re your settings:
On Rx:
I changed Mode from 8 Ch to 12 Ch
I set RF Profile to Dynamic (from 150 Hz)
I turned RC by MAVLink On
Everything else was already the same as yours
On the Tx and in Yaapu Config, my settings were the same as yours

I checked the wiring and itā€™s fine.
Moving the Tx sticks moves the green bars in AP>Setup>Mandatory Hardware>Radio Calibration. If I delete all sensors, 26 come back, so I was pretty sure the Rx and Tx were working.

I power-cycled everything.

Still no go.

At some point I had enabled OSD5 and fiddled with it in response to something I read in the AP docs, but I didnā€™t think that would have affected anything.

However, for no particular reason I removed and reinstalled the Yaapu widget on the telemetry screen and it started working! So Iā€™m not sure which of the above changed things but now at least it IS working (see attached)! The various components move as expected (heading indicator, artificial horizon, etc) when I move the the FC and GPS/compass around. So thatā€™s good. Now to see if I can get the wind direction data from the wind vane over. Thanks so much for your help (and to Alex for the code and his help too)!


:

1 Like

Iā€™m thinking I might get an ELRS Tx/Rx anyway; from what Iā€™ve read it would have more bandwidth for the pass-through telemetry, assuming I am understanding everything correctly.

BTW, have you used the widget to display wind vane data on your system?

Thatā€™s good that itā€™s working.

If all youā€™re going to use is the Yaapu telemetry then thereā€™s going to be no real functional advantage of switching to ELRS. ELRS is working on porting Mavlink telemetry to a laptop so you can use Mission Planner or QGC. TBS is supposed to be able to do that but it doesnā€™t work very well, so if ELRS can get it stable and solid then maybe Iā€™ll switch.

Iā€™ve used Yaapu to display wind data, but itā€™s all been from in-flight calculations. I havenā€™t done it from a weather vane so I canā€™t offer much help there.

OK, thanks. The fact you were able to display that suggests it is possible to display other data anyway, so Iā€™ll keep plugging away. Thanks again for your help.

OK, I got it working by setting plot telemetry source 1 as Wind Direction, then setting up a telemetry screen with screen type 6. However, the wind direction shown on the Tx is fairly slow to respond compared to that shown on MP (which of course is connected to the FC via USB) and I notice that its range is different to wind direction shown in MP, for example MP has a range 0-360 and sometimes the two show the same values, but other times the Tx shows values >360. I calibrated the wind direction sensor in AP, but the widget does not seem to have the same calibrated values as are shown in MP.

Also, it sometimes (often) errors out with ERROR in refresh(); I have to remove and reload the widget when that happens and sometimes the widget then displays a single number but does not stream data.

Iā€™m not sure how to trouble shoot this and/or if it might be related to the slow connection (which is still around 10 Hz in the debug screen). Is it possible to prevent some of the data that I donā€™t need in a boat application from coming over the connection, and would that help?