Not sure where to start, I open this topic here to see if someone can help me or kick me in the right direction
My issue is that I am missing a lot of (maybe all of them, not 100% sure here) sensors on my Radio on my ELRS <> MAVLink, the goal is to view them in the yaapu widget, but since they don’t even exist in the telemetry sensor list, my guess is that the cause lays some where in my configuration or hardware.
I assume the SR1_* params are the decisive ones for your MAVLink stream.
They shouldn’t be 0. The elrs setup guide says:
“Configure all SRx_ parameters to be 1, except for SRx_ADSB, SRx_PARAMS, SRx_RAW_CTRL that should stay 0 (otherwise yaapu will see a few sensors only and GCS might not be able to connect)”.
Also MAVRadio should be selected in RC Protocols if you want RC control.
So my assumption is that my RX (ExpressLRS receiver) is on SERIAL2 so we need SR2_x
In one of my tries I tried putting the SR1_x and also SR4_x to 1 but it didn’t change anything… now I think about it I’m not sure if I rebooted that time.
Is there documentation for this? (I searched, but probably used the wrong keywords )
SRx refers to Mavlink stream number, you have 2 serials configured as mavlink SERIALx_PROTOCOL == 2:
SERIAL0 - USB
SERIAL2 - actual uart
so you will need to confgure SR0 and SR1.
Are you missing sensors compared to just using ELRS with CRSF??
Simply you don’t get all the sensors when using ELRS mavlink. When using CRSF the data is generated by ardupilot and sent to the transmitter via CRSF. On ELRS - mavlink the CRSF data is generated by the ELRS module from the mavlink telemetry so it can only display what mavlink contains.
@mike_tk and @twistedwings
I adjusted the values and (I think) all the sensors are comming in now. There was one strange thing. After setting the the SR1_x values to 1, writing them to the FC and reboot the FC it and the vaues where back to 0… after 2nd try the values remained. I cannot reproduce it again.
But this also means that there is a mistake on the ExpressLRS wiki…
it says “Replace x with the UART number you are using”:
For the below steps, when a UART connection is mentioned, it will be written as SERIALx. Replace x with the UART number you are using.
Configure SERIALx_PROTOCOL=2, SERIALx_BAUD=460, and RSSI_TYPE=5
Configure all SRx_ parameters to be 1, except for SRx_ADSB, SRx_PARAMS, SRx_RAW_CTRL that should stay 0 (otherwise yaapu will see a few sensors only and GCS might not be able to connect)
I think this is where my assumption comes from I will make an issue on the ExpressLRS wiki repo… Does someone knows where this is explained in the Ardupilot documentation? so I can link to it in the issue.
@geofrancis I am probably missing them all but flight mode and ground speed where coming in… while the SR1_* values where all 0. Not sure how this exactly works or where this info comes from… As far as my knowledge goes, CRSF is the serial-based wire protocol ExpressLRS is the Lora-based air protocol.
The initial goal was to setup a ground station and use my existing ExpressLRS hardware. Which I already had working. I was trying to get the sensors working on my RC.
Crsf is only used between the handset and the transmitter module when using ELRS in mavlink mode, only mavlink telemetry is transmitted from the receiver to the tx module where it is then converted.
Regular ELRS uses CFSF telemetry to the handset all the way from the flight controller so you get all the crsf data ardupilot generates not the data the ELRS Tx module is converting from mavlink data it receives.
@twistedwings Thanks for pointing me at this. I opened an issue for this on the ardupilot_wiki repo, because the stable versions are still on v4.6.3… and the page you linked is already quite old, the last change (4months ago) does not invlolve the MAVx <> SRx conversion.
Lets get this cleared and than move on to ExpressLRS