An Open Source Frsky Telemetry Script for the Horus X10,X12 and Taranis X9D,X9E and QX7 radios



This project is what I’ve been working on in the last couple months, an open source lua based telemetry script for the Taranis X9D, X9E and QX7 radios, it uses the frsky passthrough protocol and requires opentx 2.2 and a recent release of ardupilot.

The script supports all the telemetry DIY 0x5000 packets sent by ardupilot’s frsky passthrough protocol library.

The project is hosted on github


dual battery view



mavlink messages



configuration menu





min/max values view




  • configuration menu, long press [MENU] to display
  • per model configuration saved in MODELS/yaapu/modelname.cfg
  • flight mode (modes are displayed based on the frame type:copter,plane or rover)
  • artificial horizon with roll,pitch and yaw with numeric compass heading
  • mini home icon on yaw compass at home angle position
  • battery voltage from 3 sources (in order of priority), short pressing [ENTER] cycles between the sources
    – frsky FLVSS voltage sensor if available (vs is displayed next to voltage)
    – frsky analog port if available (a2 is displayed next to voltage)
    – flight controller via telemetry (fc is displayed next to voltage)
  • battery lowest cell if available or cell average if not
  • battery current
  • battery capacity and battery capacity used in mAh and %
  • power as battery voltage * current
  • vertical speed on left side of HUD
  • altitude on right side of HUD
  • gps altitude
  • gps fix extendend status (2D,3D,DGPS,RTK)
  • gps HDop
  • flight time
  • rssi value
  • transmitter voltage
  • home distance
  • horizontal ground speed or airspeed if configured in mission planner
  • home heading as rotating triangle
  • mavlink messages with history accessible with +/- buttons short press
  • english, italian and french sound files for selected events: battery levels, failsafe, flightmodes, alerts and landing

Advanced Features

  • dual battery support (dual FLVSS and/or dual battery from ArduPilot) short press [ENTER] to display second battery info. If a second battery is detected there will be a “B1+B2” label on screen.
  • capacity override for battery 1 and 2
  • min/max for battery/cell voltage, current, altitude, ground and vertical speed, short press [MENU] to display min/max values
  • vocal alerts for battery levels, max distance and min/max altitude (vocal fence)
  • configurable vocal timer alert every n minutes
  • sensors VFAS,CURR,Alt,VSpd,GAlt,Hdg,GSpd,Fuel,Tmp1,Tmp2 are exposed to OpenTX

feedback is very welcome!


and a lot of achievement in a short time
many thx, sir


Thanks @olliw42 it’s been a lot of work but I was very motivated!

1 Like

What a exceptional job @yaapu :slight_smile: alex

1 Like

I utilize this script for more than two months now without any problems. Improvements on each version, this is the perfect solution for my Q X7, thanks for the good job Alex!

1 Like

Excellent Alex. It’s applied to all my models running Ardupilot now.

1 Like

thank @chris661 you really are an early adopter and gave me a lot of feedback!

im not so good at these things eg computer programes I run crossfire and get most things on my screen now but would love this is there an easy way to download it,thank you for your hard work,Marty

1 Like

Looks Terrific Alex! Looking forward to trying it.
Thank you

@MartyMcFly … follow the github link , the instructions and download are there.


I would also like to thank @marco3dr for the feedback, especially for plane and vtol related “advices”

Thanks for this job!

Is possible to configure with TBS Crossfire ?

1 Like

Awesome Job!! Subscribed!!

1 Like

@renatux unfortunately my script does not support the crossfire telemetry protocol at the moment

Hello thank you for this beautiful work it work but I have a problem of display

this is the standard message when telemetry is no more connected, for example when you switch off the receiver.

Yes I understand but I have this image when the telemetry works and when the radio is lit(switched on)

Hi, please check if you are getting the sensor value “RxBt” which is the rx voltage in your model telemetry page, I use it to check for valid telemetry

Hello Alex yes I have well a value “BtRx” of 4.7v, But I maybe made a bad regulation somewhere else I fetch!

ok, easy fix, the sensor in french is “BtRx” whereas in english and italian is “RxBt”, I’ll fix it by switching to RSSI to detect telemetry, in the meantime please try to rename the variable to RxBt to verify my temp solution

Thanks to you Alex I am going to try to rename(reappoint) in Rx Bt