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

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:

On any heli I like to have headspeed, with pistons I like to have engine temperature. I like to monitor voltage in two places - the receiver has an internal voltage sensor that tells what the operating voltage is of the flight control system. The actual battery voltage I monitor but it never changes and the battery never depletes because it has a generator that keeps the battery charged up. So that’s kind of like the battery warning in your car - if the alternator quits you get a warning.

I wrote a custom script for the things I need for gas heli’s. I like it as the screen is quite small on the X9D so it doesn’t really crowd the screen, and it gives me all the stuff I need to fly the heli home with FPV (screen mounted on the radio) if the GPS and ground station quits. All I need is baro altitude and which way the heli is pointed if everything else goes bad.

I test flew it on a 20 mile flight late yesterday after I wrote it and it works great. I added in the timers in the RC too for current flight time (timer2) and TTE (Total Time Engine), which I keep track of with Timer 1. Don’ t need any widgets or graphical display because I don’t feel the screen is really big enough for that. With the Horus that’s probably great, but the X9D (and QX7 is worse) just doesn’t have the screen real estate for it IMO.

And then I did some maths in my script to convert metric values to imperial. I’m probably not done with yet, as I’ll likely add some audio warnings for low headspeed, engine over-temp and maybe for low battery voltage if the generator quits or something. These things fly for two hours or so and my gas suite came with a fuel flow sensor but I’m not using it. Fuel burns by the clock, not by the gauge, in all aircraft so that’s what the flight timer is for.

100_0236

Hi Chris,
I understand that your script covers your needs but if you feel like trying a different solution I might modify the right panel of my script to display

  • Engine RPM
  • Headspeed
  • Engine Temp

I would need the sensor names used to get those 3 values (or 2 if 1 is calculated) and the name of whatever other sensor you need to be displayed, btw how do you get baro alt?

Alex

The engine rpm is measured with RPM (standard FrSky SPort sensor). Headspeed is calculated by entering the number of teeth on the gears in the main transmission and the script does the maths.

I’m using SPort telemetry and not pass-thru. ArduPilot has repurposed the temperature senders, as somebody figured they aren’t important. So I had to re-define my engine engine temperature sensor as T1 instead of Tmp1 (which is the FrSky standard, but ArduPilot grabbed that one for Flight Mode.

My simple script works great on the Taranis. I found out it won’t run on the Horus X10. I haven’t figured out the problem with that yet. But from what I understand the Horus does not support telemetry scripting (I have OpenTx 2.2.1 in it). And to execute a script you have to browse to the SD card, select the script and then “Execute” - except when I tried it it failed to run.

I haven’t got the Horus totally figured out yet. It came with FrOS in it which I did not like at all. So I put OpenTx in it but it’s not as easy to navigate and make settings as the Taranis, IMO.

I’ve compared these two radios side by side and IMO the X9D Plus is still a better radio than the Horus X10

I love the display but as you said taranis style telemetry scripts are missing and this is a problem if you need scripts with user interaction like menus and such.

I ported my script to a widget and by running it full screen you get close to telemetry scripts, I was afraid that OpenTX would lower widget scripts priority but it does not and I get the same performance as a one time script, I do loose user interaction though.

So widgets are not that bad after all and on the Horus you also get much more memory to play with.
IMO the one and only real limit of the X9D is memory, complex scripts need a lot of it.

Yeah, what’s really strange is that FrSky sells the Gas Suite and there’s a Lua script for it that has menu options to set it up, set the fuel quantity in the tanks, etc… So the Gas Suite unit itself has firmware in it that calculates total fuel burn based on the fuel flowmeter readings, and the outputs from this are on the SPort telemetry. You can display the telemetry from the Gas Suite either with its dedicated Lua script, on one of the normal telemetry screens, or blend it with other SPort sensors (including ArduPilot SPort) with a custom Lua script.

The problem with all this? It’s not really a problem at all - the X9D runs it all fine, which ever way you want to use it. The Horus can’t. It is only supported on the X9D Plus, QX7/QX7S - see the downloads here:

So the Horus X10 has been re-flashed with FrOS, set back to factory defaults and is going on eBay. It is totally useless to me. I had high expectations based on all the glowing reviews. But I quickly came to the realization that people must be buying them to admire the screen indoors, and fiddle with it, and nobody has ever actually flown a helicopter with one yet. So why downgrade to a X10 when I already got the Legend that “just works”? :grinning:

Chris, I agree the Horus has some problems the Taranis X9D does not have. But I find the color screen much better on my Horus X10 than what I see in your video demonstration.
I have attached 2 photos out of my head-cam video I took during testing of my RC-JetRanger last week. Look for your self. It was even more clear in real than you see on those photos. You have a lot of options to get that screen nice.


Forget about that note paper stuck to the TX.

Hi All,
new release for the Horus radios:

This version is also available as a full screen Widget that auto starts at power on and can run in the background while other telemetry pages are displayed

instruction on how to setup the script as a widget are here

image

Horus Widget Version 1.6.2 (beta1)

  • no more latency on HUD
  • added support for FlowHold and Follow new copter flight modes
  • added groundspeed/airspeed unit configuration as menu option
  • moved flight timer to OpenTX timer 3
  • added spoken flight time to flight timer alert
  • added support for dual FLVSS + single power monitor with split load in dual battery view
  • fixed mavlink message severity unpacking
  • fixed first timer alert would not play
  • added dedicated sounds for critical/non critical messages
  • added simple/supersimple support with vocal alerts
  • improved cell count detection with new algorythm
  • added german language support
  • added IMU temp support as custom IMUt sensor (experimental)

code is on github

4 Likes

Fred, how did you make the white on black theme? That’s what I was attempting to do but didn’t quite find the right combination to get the contrast I wanted.

The other thing I noticed is that the screen on the Horus does not seem to have the range of viewing angles the one on the X9D has.

I had it at full brightness in my video demo of the two side by side.

I’m sticking with the X9D anyway. I don’t like the reach to the sticks on the Horus, don’t like the way it feels - it doesn’t have the natural ergonomics of the X9D. It’s like they tried to turn a tray radio into a handheld.

GREAT - will test it
Using the script about 50 flights with copter - works well
The widget probably is the more comfortable solution

Thanks so much :star_struck: