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

Ok, thanks. That’s what I want to try to implement - to make an ability to control some settings via telemetry script.

why not join forces, do you have specific needs or are you thinking about a general protocol?

Nothing very specific at the moment just a common-purpose needs and ideas:

  • to tune on-the-fly failsafe related things: FS mode, battery capacity etc.
  • to tune PIDs
  • to tune navigation things: max vert and hor speeds for Loiter etc.
  • to trigger some ardupilot actions that currently are only could be binded to RC aux switch
    and so on

This will always require some “tinkering” on the ArduPilot side. Would be better to come up with a generic approach that would “link” to existing parsing, like sending Mavlink commands ?

Alex. I didn’t ask anyone to bring up this again :slight_smile:

@LuisVale, I’m a fan of generics too. But I don’t believe Frsky telemetry is suitable for sending native Mavlink stream. This will be very unreliable, I’m afraid. Also taking into account this link must be bidirectional. Please clarify if I understood you wrong.

We should implement in a way that it will not looks like tinkering :slight_smile:

  1. Existing AP_FrSky_Telem class to expose a raw stream of incoming data (i.e. from RC lua script)
  2. New FrSky_Interop class should be able to understand a base set of incoming frsky commands; like read/write [some knonw] settings etc.
  3. Every vehicle could directly use the FrSky_Interop class to achieve base functionality.
  4. Every vehicle could inherit FrSky_Interop class to implement a handling for an axtended vehicle-specific set of telemetry commands.

Amazing really, thanks for all the hard work!

One thing I don’t like about the X9D Plus is too many three-position switches on it. There’s some things I want to be just on/off like engine kill for gassers, belly hook drop, or throttle hold. There’s only the normal throttle hold two-position, which works fine. But the other one on the other side is momentary and I like to use that one for timer resets. So I pulled my Switch G out and replaced with two-position so I got at least one other decent two-position switch.

Frankly, I like my FlySky FS-i10 radio way better than the like the Taranis. It also has a better telemetry system than FrSky, and touch screen on it is more advanced than Horus. If I want to tinker with something then I mess with the FrSky stuff. When I want to fly I grab a real radio.

Chris,
I have never touched a FlySky radio but I have seen it close up in your demonstrations. You are right the Taranis and Horus are full of those 3-position switches.I do have a Horus x10 which is now for my Helis and 2 Planes. The Taranis is for my 2 drones only from now on. Both with OpenTX FW.
For to reset the timer I use the same switch as you.
For Throttle Hold I use a 3 position switch on the right hand side as I used to have it there previous with my Spektrum DX8(used for flight simulator now only).
Now with the 3 position switch I startup in the second position and view the startup of the Heli I want to fly. In about 4 seconds during the Heli spool-up I switch into the third position and the timer starts to count down with minute announcement and the last 10 seconds.
In the middle position the announcement of "takeoff’ is repeating until I have switched into position 3. For ‘stop’ which is also announced ones I flick it into pos. one, the Heli spools down. I like it very much and would not go back to a 2 position switch. It also gives me a chance if I am clumsy and flick the switch by mistake one position. Has not happened yet.
I call it the old man switch. It is in my case ( 69y) increased safety.

@ChrisOlson those are all easy fixes as long as you remember to change the type of switches on the firmware, and with the work that Alex @yaapu has done here is way better than the native RC telemetry stuff we get.

More news coming soon :slight_smile:

Finally had some time to try this out, it’s awesome, thank you Yaapu.

I’m not that familiar with the Horus yet, is there a way to start this automatically at startup or a less annoying way than going trough the sd-card folder structure?
From what i read in the wiki this is not possible: “Note: On the Horus the script needs to be started as a “one time script”, see the wiki on how to do it.”

I don’t think this can be set up to be a telem-screen.

Starting a special-function did not work (unless i did something wrong, which is likely) in “MDL” -> "special functions"
After i copied the yaapux.luac (or .lua) to sd/scripts/functions i could select it and assign it to a switch but it did not execute after toggeling it. (like this lua script example)

And the MDL -> “custom scripts” did nothing for me.

1 Like

What do people use for a magnetic pickup/hall effect sensor for measuring RPM with a smart port system? Horus RC is supposed to have a new Gas Suite available for these radios that has magnetic/hall effect sensor for headspeed, engine temp and fuel flow, but it appears to be made of unobtanium. I’ve had one on order for two months and it never shows up. Otherwise all they have for sensors is for electric stuff and I don’t fly electric. That’s why I use the FS-i10. You can actually get the sensor modules you need and it uses iBus (which is the same as SBus) for the sensors.

Hi @Nando unfortunately there’s no way to auto start the script in its current form, a widgets version is currently being tested though

1 Like

Why not integrating those sensors on ArduPilot, and let ArduPilot report them by whatever telemetry protocol is in use ?

you’re talking about a generic sensor hub with support for “dialects”? HOTT,IBUS,SBUS?

FrSky does not have any decent magnetic pickup/hall effect sensors for headspeed on gas helicopters. They have the Gas Suite but it has an in/out for CDI ignition and only measures to 10,000 rpm. Helicopter engines run 10,000 to 14,500 rpm. I’m trying to get some FlySky sensor modules to work with the Smart Port on a X8R. FlySky, with FS-iA10B receiver uses SBus and it is supported by Cleanflite but so far can’t get these sensors to talk to the Smart Port. I modified a XSR receiver to get the uninverted signal from the driver transistor on the SBus circuit but it still doesn’t work.

With gas engines you need rpm and cylinder head temp. ArduPilot has no support for temp sensors. FrSky has no support for rpm, except electric. The N2 Industries mini hub might actually support hall effect rpm and temp with the old TEMS-01 sensor. That’s my next investigation to see if the FrSky radio system can actually be made to be usable with gas engine aircraft.

I now have this working on my X9D Plus with a SP2UART and a Pixhack V5. Works really good too!

Glad it works :slight_smile:

Just out of curiosity what do you use the SP2UART for and what kind of bandwidth do you get?

BTW I took a look at cleanflight ibus telemetry code and cleanflight only supports sensor emulation, it does not seem to support reading physical ibus sensors.

But qba667 the author of the flysky i6 tx custom firmware did extend the radio with support for many sensors so the protocol is known, he also coded a mavlinktoibus converter

Maybe an ibus to sport converter firmware could be a temporary solution waiting for a better one, something like Luis suggested that could make “all” sensors available to ardupilot and eventually to other telemetry dialects,

I bought the SP2UART from Aloft Hobbies because it looked like a handy thing to have to communicate with a Pixhack controller on Serial 4. I want my own custom telemetry on a regular OpenTX telemetry screen with:
Headspeed (don’t have working yet - trying to build a suitable sensor)
Engine Temp (comes from the Gas Suite, which I do have working)
Fuel Flow (comes from the Gas Suite, which I do have working)
System charging voltage (equipped with generator so only monitor voltage - comes from the PM).
Altitude
Ground Speed
Heading
RSSI (comes from the receiver)
Internal Voltage (comes from the receiver as RxBt)

That could work, however, there is still a problem with bandwidth on the FrSky link. So my new plan is to put on the smart port only what I need if I don’t fly with a ground station and let MavLink handle the rest otherwise, if I do fly with a ground station. I might add some extra things like distance to home. But ArduPilot does not support the critical need-to-know mechanical parameters of combustion engine helicopters. It is electric-centric for multcopters. And I see no real advantage to running that data thru ArduPilot when the smart port protocol can handle it better with little to no latency.

Hi Chris,
I do not fly helis (yet) and know close to nothing about RC gas engines so if you have ideas on how to improve my script in order to support both please give me some feedback, I’m willing to help out

BTW Flying helis is on my todo list, I have a very small CP heli sitting there waiting for some “love” :slight_smile: