Passthrough telemetry over CRSF (crossfire)

  1. now I get what you say: YES when we know in advance that a value is positive the sign bit is overwritten to save bits for othe data.

This data format predates my involvement in the project so, just like you, I had to “adapt” to it

This is the protocol in it’s current form, Frsky Passthrough Protocol - Google Sheets

concerning your FrSky question: What I actually think could be a (very!?) worthwhile thing to do is a MAVLink message which can carry an array of passthrough datagrams. IMHO this would have two advantages:

  • some of the data required for converting to passthrough are not so easily obtained from the MAVLink messages, like e.g. battery parameter values and other. So one could e.g. just send the missing data, or in fact just send them all given it’s not very spaceous.
    (which - what a coincidence - would be then essentially your idea, just wrapped into MAVLink)(and motivated form a different angle LOL)
  • it could be a “better” kind of high latency message. I must admit I am not excited about the new HIGH_LATENCY2 at all, as it misses quite some data one would often want to have, so it is useful onyl for really specific cases. However, given that the passthrough telemetry is time proven, such a MAVLink message would indeed deliver a more widely useful high latency message, and more over, it would be very flexible in its content!

I think it could really address a number of issues.

EDIT: one in fact could just use the existing TUNNEL message !!! I guess I should do a sample implementation…

  1. ok
  2. ok
  3. ok (yeah, I know that google sheet very very well by now LOL)


haha @olliw42 I knew you’d give it a try, would solve all your issues in an elegant and transparent way :slight_smile:
MAVLINK TUNNEL is the way to go, really good idea

it works :). (the mLRS and telem app thing, not the tunnel thing)
Many thx for your help, much appreciated.


What a great job, congrats!

Got almost everything working. Taranis X9D Plus, EdgeTX, ELRS and Yaapu Telemetry. The only problem I have is with altitude. The correct altitude relative to home is displayed on the telemetry page. ASL altitude is also correct. However, if I try to display the relative altitude on another telemetry page using the variable Alt, I always get the same value as GAlt. I can’t figure out why I can’t properly display Alt. Thanks.

Hey Alex, here is a first attempt at implementing the passthrough via mavlink idea: SPort Passthrough telemetry via MAVLink (WIP, do not merge) by olliw42 · Pull Request #21781 · ArduPilot/ardupilot · GitHub. Is for copter, hope you may have a look at it nevertheless :slight_smile:

1 Like

Hi @olliw42 I saw your PR and quickly read through it, you already know I like the idea :slight_smile:

1 Like

I can make the script running on my Radiomaster TX16 with Nano RX and CUBE ORANGE wit Plane 4.3.0 beta1

I am working on a new build with a MATEK H743 SLIM V3, I loaded latest Beta and connect to SERIAL1 (Mapped to USART and it is working as I can read MavLink) but I cannot get Telemetry reading

I mad a custom build with these features, but still no data
{“selected_features”: [“EKF3”, “UBLOX”, “BMP085”, “BMP280”, “BMP388”, “DPS280”, “FBM320”, “ICM20789”, “KELLERLD”, “LPS2XH”, “MS56XX”, “SPL06”, “AIRSPEED”, “CRSF”, “QUAD”], “git_hash_short”: “ad6bf648e9”}