Passthrough telemetry over CRSF (crossfire)

Hi, you want to use a single serial port, if you go mavlink (telemetry + rc) your tbs kit will emulate CRSF telemetry packets based on mavlink data and my script will not work, if you go the CRSF route you’ll loose mavlink but my script will work and you won’t be able to use mission planner

I have installed everything and the telemetry sensors are working I just need to add your lua to finish off. :slight_smile:

Hi,

I need help, the widget was working great but more and more often and now every time, it crashes right after the fc initialisation and display a blank screen with “Disabled” on the top left corner.

My setup:
Matek H743 Wing
Radiomaster TX16S
OpenTX 2.3.12
Arduplane 4.1Beta
Crossfire 4.11

In the telemetry-widget-settings I get the following error:

refresh():?:0: attempt to perform arithmetic on field ‘terrainLastData’ (a nil value)

If I delete the widget and set it again, it works but at next startup it crashes again…

Any ideas?

Hi, which version of the widget?

Hi,
Thank you for your answer and for the great job that you did!
I use the latest version 1.9.4 beta 1.
I use mavlink telemetry next to crsf.

If you can trigger a crash long press TELE, page to the crashed widget page, press wheel and select “widget options” and report back what you get on screen

Hi Alex, I’m having the same problem as @depeurvince. There is also a github-issue where we posted some informations: Horus Widget 1.9.4 beta1 shows only disabled · Issue #116 · yaapu/FrskyTelemetryScript (github.com)

The error in the widget-options is:
refresh():?:0: attempt to perform arithmetic on field ‘terrainLastData’ (a nil value)

Thanks for your help

If I use separate serial ports for a 433TM radio and the CRSF RX, will both work at the same time for both telemetry and RC? Thanks!

should work, but please disable RC over mavlink and keep the mavlink rates quite low, there only is so much bandwidth!

1 Like

it’s exactly what I can too

It crashes at startup but during flight as well.
Re setting the widget makes it working perfectly for a while…

Alright guys, what am I missing here? For reference I started with a working Crossfire Nano Diversity on Mavlink > Ardupilot Telem1 (Pixhawk 1-1M) and get all of the Mavlink telemetry properly. Without changing any wiring I have done the following and still cannot get the additional telemetry from the ardupilot:

  • Changed the same Crossfire receiver outputs from MAV to CRSF.
  • Confirmed my Nano receiver RX/TX pins support CRSF.
  • Made sure Crossfire is at 150hz
  • Disabled RC over Mavlink (not sure if it matters)
  • Flashed the arduplane beta from the OP.
  • Changed Arduplane options as follows:
    SERIAL1_PROTOCOL = 23
    SERIAL1_BAUD = 57
    RC_OPTIONS = (32 + 256) = 288
  • Rebooted
  • Connected
  • Deleted and rediscovered sensors.
  • Tried the force telemetry mode.

RC control works along with basic receiver telemetry, but no additional telemetry is discovered. I’ve checked and double checked and re-done the above multiple times.

Any help is very much appreciated.

1 Like

I got it figured out. Apparently Pixhawk 1-1M doesn’t support Crossfire, and I was using it even though I had the 2M hardware.

matek h743 slim, MatekH743-bds copter firmware
CRSF TX/RX is connected to UART6 (serial7), as written on the matek website
RC_OPTIONS = 288
SERIAL7_PROTOCOL = 23

ArduCopter V4.1.0-beta4 (37070bfe)
25.06.2021 11:43:11 : CRSF: running on non-DMA serial port
25.06.2021 11:43:11 : CRSF: running on non-DMA serial port
25.06.2021 11:43:11 : CRSF: running on non-DMA serial port
25.06.2021 11:43:11 : RCInput: decoding CRSF
Is this a critical error?

It’s not critical but CRSF runs at 416k baud which doesn’t work that well on non-DMA channels

Then what serial is better to use on this FC?
SERIAL3 used for GPS

STABILIZE> ftp get @SYS/uarts.txt -
STABILIZE> Getting @SYS/uarts.txt as -
UARTV1
SERIAL0 OTG1  TX =    9575 RX =     201 TXBD= 26813 RXBD=   562
SERIAL1 UART7 TX*=       0 RX*=       0 TXBD=     0 RXBD=     0
SERIAL2 UART1 TX*=      68 RX*=       0 TXBD=   190 RXBD=     0
SERIAL3 UART2 TX*=       0 RX*=       0 TXBD=     0 RXBD=     0
SERIAL4 UART3 TX*=       0 RX*=       0 TXBD=     0 RXBD=     0
SERIAL5 UART8 TX*=       0 RX*=       0 TXBD=     0 RXBD=     0
SERIAL6 UART4 TX =       0 RX =       0 TXBD=     0 RXBD=     0
SERIAL7 UART6 TX =       3 RX =       0 TXBD=     8 RXBD=     0
SERIAL8 OTG2  TX =       0 RX =       0 TXBD=     0 RXBD=     0

You want a serial port with * (indicates DMA) on both TX and RX

UARTV1
SERIAL0 OTG1  TX =   88484 RX =    3243 TXBD= 16264 RXBD=   596
SERIAL1 UART7 TX =       0 RX =       0 TXBD=     0 RXBD=     0
SERIAL2 UART1 TX =       0 RX =       0 TXBD=     0 RXBD=     0
SERIAL3 UART2 TX*=     854 RX*=       0 TXBD=   156 RXBD=     0
SERIAL4 UART3 TX =       0 RX =       0 TXBD=     0 RXBD=     0
SERIAL5 UART8 TX =       0 RX =       0 TXBD=     0 RXBD=     0
SERIAL6 UART4 TX =       0 RX =       0 TXBD=     0 RXBD=     0
SERIAL7 UART6 TX =   10071 RX =  206120 TXBD=  1851 RXBD= 37888
SERIAL8 OTG2  TX =       0 RX =       0 TXBD=     0 RXBD=     0

only SERIAL3 have DMA…
Why is there only one port with DMA?

Is DMA optional for GPS?

Seems strange - I ran this on a MatekH743 Slim with bdshot on latest master - not sure why your results would be different.

You can get away without DMA on GPS

If ESC telemetry and BIDIR DSHOT are enabled at the same time, then where will RPM for Dynamic Harmonic Notch Filter come from?

It will come from both, but obviously the BDSHOT rate is much higher so will form the majority of the data. If you are using bdshot then you can dial the TRATE right down to 10Hz say.