Passthrough telemetry over CRSF (crossfire)

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?

Did you ever get yappu working with the kakute F7? The script works just fine on all my other systems, but the kakute F7. Iā€™ve tried all serial ports. Iā€™m now running 4.2-dev. and btw Iā€™m using tracer.

I think there is something missing in the ardupilot firmware for the kakute F7 . But I donā€™t have the skill set to investigate that. These are only 3-4 sensors showing up in the Telemetry list on the radio, aside from their normal Tracer sensors. And those sensors donā€™t update. I understand yappu doesnā€™t need sensors but itā€™s a sign that ardupilot is not communicating over crsf

Hi, you need to use the custom build server and manually enable CRSF and all other features that you need, note that the build can fail if you enable too much and exceed the KakuteF7 flash size

please note that the current version of the build server only supports building latest master

I am using the custom build with crsf, crsf text turned on.

Btw I also have msp osd turned on, which does work with my dji hd system. I also tried turning on as many sensors as I could. This is on a 5ā€ quad. ā€œCopterā€ build.

I did just rebuild the custom kakute F7 code maybe you could have a quick look at the log?

Does regular CRSF work? Are you able to discover standard CRSF sensors?

ā€¦and

  • did you enable passthrough on ArduPilot by setting RC_OPTIONS = current_value + 256
  • did you enable CRSF support in my script/widget?
  • are you using version 1.9.5 or 1.9.6 of my scripts/widgets?

Yes tried the latest script. Same problem with 1.9.3 1.9.4, 1.9.5 etc. I donā€™t think itā€™s the script, as I said all works on my other FCā€™s. Btw I did have a kakute F7 1.5 and a kakute F7 HD. They both have the same problems. Iā€™m switching the kakute F7 hd to expresslrs this weekend.

I do get crsf Rx sensors but I only get 3 ardupilot sensors. And those sensors donā€™t update.

Rc_options = 288. Note in ardupilot 4.2 dev you get a menu when selecting this option. I just selected crsf passthrough.

The crsf does work with full control.

Thatā€™s more a function of Mission Planner Beta. Itā€™s available for current Stable V4.1.1 also.

Yes, but I wanted msp osd and the ā€œnormalā€ build doesnā€™t have that for the kakute f7.

Without msp osd and yappu not working Iā€™d have no telemetry at all.

I was just saying you donā€™t need 4.2 dev to get that menu option in Mission Planner.

I think you have a very special Crossfire Micro Nano TX and RX because I can only get 50 till 100m with Mavlink telemetry on my GCS only, until the connection is broken again.
Iā€™m not talking about the RC link that is working fine for a very long range but the MavLink telemetry is just crap and useless.
I would never buy a Crossfire system again!

1 Like

RF mode is set from the transmitter LUA and is fixed. Here is the page on the relevant signal health indicators:

1 Like

Hi,

DMA enabled uart on Matek 743 slim? Maybe a very dumb question butā€¦ How do i know which one it is? Link below says UART6 NODMA. I know very stupid. But if I swap to another available UART I reduced the risk of dropped frames/failsafe?

Andy Pā€™s video has been a great help and the Yappu script is a nice addition. Just donā€™t like the errors popping up.

Regards,
JOSH

Hi! I made a industrial-grade RC with CRSF TX/RX link. As Iā€™m able to decode the CRSF messages, Iā€™m not able to decode the Passthrough messages as I have no idea of the protocol. Can you post a link or a Passthrough spec so I can add this in the RC? Here a screenshot of my telemetry screen. What Iā€™m missing is Magnetic Heading, Relative Altitude, GPS Type.
Telemetry_Page1-VLOS_v5

The only spec is the code: ardupilot/AP_CRSF_Telem.cpp at master Ā· ArduPilot/ardupilot Ā· GitHub

Hmmmā€¦ Why I donā€™t find any reference to the CRSF IDs 0x80, 0x7F, 0xF0, 0xF1 and 0xF2?
Ardupilot is sending out this frames, so there must be defined somewhere, not?

Hi, Frame 0x80 is just a container for passthrough frsky frames,

there are 3 types of 0x80 frames identified by the first payload byte:

  • status text frames
  • single passthrough telemetry frame
  • multi passthrough telemetry frame

you can get an idea of the decoding algo by checking my widget lua code, here

each passthrough telemetry frame is then fed to the processTelemetry() function which does the passthrough decoding here

1 Like

Thanks to all! Will glide into it.
Just for clarity: How will Magnetic Heading, Relative Altitude and GPS Type be sent? There are no native CRSF messages, right?

yes, if you rather use native frames just check in the ardupilot library for the relevant calc_ functions