Passthrough telemetry over CRSF (crossfire)

Yes, and works fine as long as I disconnect TBS Agent, WiFi alone does not trigger the issue on my setup either AP or STA, not sure what’s different.

I won’t be adding parameters for shaping the rates, it already is quite complex handling RF mode 1, 2, tracer, parameters, all while ensuring CRSF legacy telemetry is still delivered.
This is the way I’d like it to be merged in master right now, it’s tested and working quite well, once it’s in I’ll consider adding new features

1 Like

Fantastic, I have it successfully working, simultaneous telemetry to the Taranis yaapu screen as well as Mavlink over bluetooth to a Mac laptop running QGroundControl. Huge thanks to yaapu for your work on this. It definitely took a fair amount of troubleshooting, but 80% of that can be chalked up to my novice status on these matters. I think moving the CRSF from serial6 to serial1 on the Kakute F7 was key, though I fixed so many other things that I had incorrectly setup that I can’t be sure (and at this point I don’t feel like moving it back to serial6 just to double-check). Again, thank you so much! Looking forward to this being standard soon.

sorry for the delayed reply, bad internet living in wilderness.
i followed the directions and got the .tlog file hope this will help resolve this issue for memav.tlog (279.4 KB)

Edit: btw this is a new build and the esc is not attached to the motor yet i hope this has nothing to do with any of this

Hi, I don’t need the mav.tlog sorry, should have made it clear, I need the file produced by my debug script on your radio sdcard in /LOGS/

image

and the mavproxy window text capture which should be similar to

APM: CRSF: RF mode 1, rate is 160Hz
CRSF: multi passthrough
APM: ArduPlane V4.1.0dev (62ce1aa9)
APM: ChibiOS: 331fe75d
APM: MatekF405-Win 00470043 304B5013 2036334
APM: RCOut: PWM:1-10
APM: IMU0: fast sampling enabled 8.0kHz/1.0kHz
CRSF: text passthrough
Received 1317 parameters (ftp)
Saved 1317 parameters to mav.parm
Flight battery 100 percent
CRSF: single passthrough
APM: CRSF: RF mode 2, rate is 159Hz
CRSF: text passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough

hope it’s clear now :slight_smile:

Happy to report that custom CRSF telemetry has been merged into master :slight_smile:

Thanks to all who contributed!

Alex

3 Likes

ok got the log and the mavproxy text capture, i hope this helps to resolve the problem.

Auto-detected serial ports are:
COM4 : ArduPilot (COM4) : USB VID:PID=1209:5741 SER=2000400013504D4259343420 LOCATION=1-1
Connecting to COM4 : ArduPilot (COM4) : USB VID:PID=1209:5741 SER=2000400013504D4259343420 LOCATION=1-1
Connect COM4 source_system=255
Running script (C:\Users\jogezai\AppData\Local.mavproxy\mavinit.scr)
Running script C:\Users\jogezai\AppData\Local.mavproxy\mavinit.scr
-> set moddebug 2
-> module load help
Loaded module help
Unknown command ‘graph timespan 30’
Log Directory:
Telemetry log: mav.tlog
Waiting for heartbeat from COM4
APM: EKF3 IMU0 buffs IMU=19 OBS=7 OF=17 EN:17 dt=0.0200
online system 1
ARMED
Mode MANUAL
Arming checks disabled
APM: CRSF: RF mode 2, rate is 120Hz
APM: CRSF: RF mode 2, rate is 149Hz

APM: GPS 1: detected as u-blox at 230400 baud
APM: CRSF: RF mode 1, rate is 156Hz
APM: CRSF: RF mode 2, rate is 155Hz

APM: ArduPlane V4.1.0dev (62ce1aa9)
APM: ChibiOS: 331fe75d
APM: MatekF405-Win 00400020 424D5013 2034345
APM: RCOut: PWM:1-10
APM: IMU0: fast sampling enabled 8.0kHz/1.0kHz

CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: text passthrough
CRSF: single passthrough
CRSF: single passthrough
Received 1433 parameters (ftp)
Saved 1433 parameters to mav.parm
Flight battery 100 percent
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: text passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: text passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: text passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
Failed to create log directory /APM/LOGS : ENOSPC
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: text passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
CRSF: single passthrough
arwing-20210121_110330-plog.zip (248 Bytes)

ok, this proves that there’s no custom telemetry received by the radio but that it is being sent all right from the FC, mhmm

Many thanks to you and to all who contributed this!

Now it would be wonderful if someone could make a short howto page in the Ardupilot documentation. Me, and I think maybe others, got are a little bit lost during the development process here in this thread.

Thanks a lot!

hmm i thought so as well something was off because all settings wiring seems good…
so what do you suggest now?

@yaapu congrats for your PR being merged, thanks a lot for all your work on this again, same to @andyp1per of course.

i’ve been on hold with crsf stuff for a while, had to replace my TX’es broken ESP-12S wifi module plus needed a while to recover from the holidays’ alimentary excesses and get back to working temperature…

just flashed current CRSF 4.08 fwares, 1.9.3 scripts and fresh ardupilot master to find everything crsf / passthrough from your code working like a charm. i still see some residual crsf firmware issues and it seems like passthrough performance still varies depending on what actual UART is used for RCIN, i haven’t seen any serious performance dips anymore like i had in previous versions.

keep up your great work,

basti.

@vierfuffzig you deserve some credit yourself :slight_smile:

As for the not so ideal UART performance I have great faith in @andyp1per’s skills :slight_smile:

I’m puzzled even more now, the only reason the script would not see packets coming in would be that incoming frame IDs are not recognized as valid ones…

HI Alex,
Thank you very much for all your effort and the patience with our countless questions.
Without your engagement this would not be possible.
:+1: :+1:

Thanks Sascha, sharing is the best part of this and yes it requires a little patience :slight_smile:

i hope there is a solution, i will try to reset everything both FC paramteres settings etc and also the TBS crossfire and try from start if you suggest that, otherwise will just wait.

yeah, try creating a new OpenTX model from scratch that helps at times, running out of ideas :frowning:

ok no problem, this is what i will try then and report here hopefully tomorrow

I have a taranis x9d+ and my flight controller is pixhawk 2.1 black cube with crossfire. Was wondering if this passthrough will work with yaapu script? right now I’m running the latest firmware on the Taranis with LUA enabled and the only issue I have at this moment is I cant get yaapu script from the SD CARD SCRIPTS/Telemetry folder to run. I get an error “script syntax error” I have not flashed the firmware on the blackcube yet. Also to get telemetry from the cubeblack to the recicver do I need to make a custom serial cable that goes into the output channel 7-8 on the crossfire receiver to the telemetry serial on the pixhawk 2.1 board? On my crossfire settings I have channel 7 - 8 set to mavlink.

@Nezumi runs well even on a first gen x9d nonplus @otx 2.3.4
mind there seem to be issues with otx2.3.5
check documentation for proper setup: Installation on Taranis radios · yaapu/FrskyTelemetryScript Wiki · GitHub
with yaapu’s script running, long press “menu” to enter config screen, scroll way down and set “enable CRSF” to “yes”

you want to use CRSF_TX + CRSF_RX on respective pins to connect your crossfire transceiver to your FC’s serial port.

You need to setup the script as a telemetry script, please read the wiki on my github, you’re running it the wrong way