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
BATTERY
ATTITUDE
FLIGHT_MODE
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?
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.
@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.
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:
Which FCs have dma on multiple UARTs? I have a mix of F405 Wings and pixhawk cubes in my fleet.
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
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?