Thread Tools
Aug 31, 2019, 12:42 PM
Registered User
Thread OP

FRSky Vario + AirSpeed + Lua = TE Vario and MacCready

Am I really gaining energy in a thermal, or am I trading speed for altitude?
How fast should you fly between thermals?
How should I adjust my air speed to account for being in sink, or a head wind, or a tail wind?
When am I high enough in a thermal that I should leave for the finish line to get there the fastest?

If you want the answers to these questions then you need a Total Energy Variometer and a MacCready Glide computer. Read more here:

FRSky offers both Variometer and Air Speed Indicator and GPS telemetry now. These provide all the data necessary to do the math to answer the above questions. We just need a few more things. 1. A computer to do the math real time, 2. The polar curve for our specific sail plane, 3. GPS coordinates of our way points.

Has anyone done this for RC already? Is there a Lua script for OpenTX? Is there an established technique to collect the polar data for one's plane?
If not I'm looking for help to develop them.

If you find this discussion interesting, you might really like the Sail Plane Racing simulator Condor or Condor 2. It's excellent practice for cross country flying/racing. It's also lots of fun and very educational to race against other pilots online.
Sign up now
to remove ads between posts
Sep 01, 2019, 11:27 AM
Registered User
TrekBiker's Avatar
My team explored this in a somewhat simplified manner a few years ago. The results in actual XC race conditions were very good and we greatly improved out final glide calcs. What we lacked was an accurate true air speed indicator but by using three set flight mode speed trims for cruise (30mph), speed 1 (40mph) and speed 2 (50mph) we achieved a real world "good enough" set up. Testing on calm days using gps speed on our T3000 telemetry resulted in a rough +/-3mph accuracy in these speed trims. Using GPS ground speed telemetry and these three flight modes we could roughly calculate head and tail wind components.

Most modern F3J wings seem to have a best L/D at around 30mph at high max weight wing loadings (max wt of glider = 5kg). This is based on John Ellias' polar he developed in testing with his modified Xplorer2. I figured our teams Icon2 wing to be about the same. In real world racing conditions we rarely used speed2 but were constantly switching between cruise and speed 1 between thermals. For final glide the goal was to arrive at the finish line under 500 ft and we managed this nearly every time. Contrast this to what it was like before, usually leaving the final thermal with way too much altitude then desperately (and dangerously) trying to burn off altitude at somewhat unsafe chase vehicle speeds. My goal was to keep within posted road speed limits and we managed this for the most part (no more 80+mph crazy rides!!)

I think the big difference between RC XC racing and full scale XC is the need to keep things as simple as possible during real world race conditions. The T3000 is key and a true airspeed indicator would be a good addition to useful telemetry.
Sep 01, 2019, 09:55 PM
Registered User
This is an admirable goal and a few of us have worked on it.

One issue is the slow data down link from frsky, 9600 baud if memory serves me correctly. The vario that I built using it had a two second delay. Now add airspeed, GPS coordinates, and battery voltage to that data stream, then accept that data on the ground in a microcontroller, separate it as individual variables, do all your number crunching, display it somehow useful, interpret what's being presented as the pilot, make a decision of what action to take, then make that action may take 5 or more seconds. If you're trying to maintain a specific speed or react quickly to changing air, that may not be acceptable. For crossing huge areas of sink, it may be fine and very useful.

Simplifying it as Steve has above can be reduced to fly this speed, fly faster, or fly a lot faster. The audio vario can help you make that decision. (Good ones only have about a second of latency.) Coordinating with the driver's speedometer can give you an idea if you have a tailwind or not so you can decide if you want to slow down.

You are correct that flying fast between thermals requires a good Total Energy probe. Without it you'd never know if you're going through lift while flying fast. Nearly everyone that races flies with one of some sort.

The full size glider that I've seen with GPS and speed to fly reduced the whole decision making process to just "push" or "pull" meaning speed up or slow down. You might consider reducing all the info to the pilot to just that.

We already have plenty to keep us busy. Too much data could hamper the results rather than improve them..... " I'm in sink and need to fly faster...but I have a tailwind and could fly slower., but it looks promising ahead near our house thermal and really want to get there quick., but I'm lower than I wish we were...."

It's a good fun project. Keep at it.

Sep 02, 2019, 06:58 PM
Who needs a pilot??
danstrider's Avatar
I'll echo the other two about the potential performance improvements. Around 2009, I was flying XC using an autopilot with a bunch of custom soaring algorithms layered on top. The first time switching on speed-to-fly controls, our average XC speed tripled. Granted, that airplane had a lot more sophistication onboard than an RC pilot has available, particularly the ability to hold a commanded airspeed. (for info on that project, see

To note, we did not use a total energy probe for the algorithms. We had a stock SkyMelody with TEK probe for situational awareness, but it wasn't hooked up to anything. You can calculate the total energy rate using airspeed and altitude rates. Note that differentiating to get the rate of change will introduce noise, so it is useful to filter the sensor reading -- this filtering is what creates time lag (same thing in a full-scale vario), so be careful.

I messed around with the FrSky system to create a custom total energy compensated variometer, that worked reasonably well. I added an air-tight cap over the sensor on my vario and ported to a TEK probe. This system worked fine for a DLG, which was my goal. (see

Of what I can tell of the commercially available FrSky vario, it is really an altimeter sensor that is digitally differentiated to create a rate of change of altitude reading, meaning it is uncompensated. You might be able to add a cap over the baro sensor and run this to a total energy probe for compensation -- know that this means the barometric altitude is no longer valid, but the compensation might then work. If you can get raw barometric altitude and raw airspeed readings in the FrSky transmitter and do filtering and differentials in LUA, now you're talking!

MacCready can be used two-fold, as you may already know. First is to give a calculated airspeed command for a given instantaneous (netto) variometer reading. This hinges on the MacCready number -- really the expected next thermal average climb rate -- which is selected by the pilot. Second is that the MacCready number results in a behavior. If the current thermal strength is higher than the MC number, the pilot should stop and circle, and vice-versa. I used an altitude schedule for the MC number that yielded a behavior to push fast and only stop for good thermals when at high altitude, and gradually slow down and stop for any thermals when at low altitude. (see page 26 of

For an XC pilot's workload, the MC number might be easy to set based on altitude ranges, like I did. Say at 2000 ft and below, MC number might be 200 ft/min to stay conservative, and at 4000 ft and above might be 800 ft/min. If your variometer has known units (calculating from actual altitude and airspeed gives you this, versus using a TEK probe), you can make these calculations. From the MC number and the vario reading, you get an airspeed command -- this could be chopped into three speed settings as well, say the 30, 40, and 50 mph from Trekbiker. All this combines so you as the pilot would get an audible of "use 30 mph setting" or something like that.

As an aside, I measured the SBXC sink polar and found ~26 mph was best L/D at about 25:1, whereas 50 mph was L/D of about 7:1. (see I'd recommend a narrower three trim airspeed settings of maybe 25 mph, 30 mph, and 35 mph. When flying the soaring algorithm in competition with other XC pilots, we routinely bailed from thermals much farther up the course, then held against our max speed of 40 mph for much longer glides than those who rode the last thermal really high and then went CRAZY fast on final glide. On average, our slower flight but leaving the last thermal way back up the course was better. One particular final glide I remember was 11 miles without turning. I didn't keep going to Montague to see first hand, but heard rumor that several teams were adopting this strategy of stretching the final glide by quitting earlier and gliding slower but longer.

Anyway, your ideas indeed make a worthy project, and are distinctly different (and more useful to a pilot) than my prior work. I hope you continue to poke around and make something awesome!

Sep 07, 2019, 06:04 AM
Registered User

Because of Condor too, I have developped a hardware/software solution to mimic racing like in this excellent simulation. You can see some details here .
The sensor board is compatible with Jeti and the first version of the FrSky telemetry protocol. If I remember well I think that I made it possible to link the triangle race skynavigator android application with my board trough JETI bluetooth. Not sure because its been a while since I worked on that. I tried to rewrite my first android application this year but could not find time either. The first version was able to show a live polar curve build from the recorded data, but the main thing was the race features ; build virtual turnpoints and race.
My sensor board has compensated variometer (ported component) and separated altimeter (ported too), Airspeed (ported), GPS, temperature, data output to protocol data input of the radio receiver (format choosen from SDcard file setting ; FrSky protocol 1&2, JETI). I made a few boards some years ago. Sadly dont have much time to use it myself, only flew 2 hours this year...
Oct 22, 2019, 10:14 AM
Sagitta Fanboy
The original FrSKy D8 telemetry is very slow and likely unsuited for this use.

D16 telemetry is faster and probably workable, and ACCESS in 8ch mode should be very fast for telemetry updates thanks to the high-speed interface.

I'd suggest that integrating in the aircraft as jupiter9 did makes the most sense, as that leaves your solution to be independent of the radio link limitations.
Oct 31, 2019, 09:00 PM
Bailed out
Taurus Flyer's Avatar
Another method to realize a (as you call) glide vario is the ‘Old School’ pneumatic way as was known in the past called ‘Netto or airmass variometer’. I use this method in my Sagitta 900. TEK also is realised pneumatic so a pitot and static tube is used.

The Netto or airmass variometer adds to the raw TE vario reading an upward deflection to counteract the sink due to the glider polar at that airspeed. Now, in still air, the vario will read zero at any airspeed if the polar we have assumed is correct. Even if it isn't the differences are likely to be small fractions of a knot and it is much easier to use the vario to pick the best path through the air, by flying faster or slower by using the audio signal. All electronics realized as has been done more than 50 a 60 years ago, analogue, on board and principal of the system is even older and used in 1/1 gliders in the past.
Taurus Flyer
Oct 31, 2019, 10:06 PM
Bailed out
Taurus Flyer's Avatar
A video of the sensor output in audio pulses before (without?) differiating (pneumetic) the pitot and static tube signal.

Netto variometer for model airplanes (3 min 22 sec)
Oct 31, 2019, 10:16 PM
Bailed out
Taurus Flyer's Avatar
A video of the vario output in audio pulses showing the response time. The output starts with a positieve signal due to the glider polar at that airspeed airspeed zero

Model airplane variometer response at low vertical speed. (1 min 30 sec)
Last edited by Taurus Flyer; Oct 31, 2019 at 10:49 PM.
Jan 19, 2021, 01:34 AM
Registered User
Originally Posted by Whorges

FRSky offers both Variometer and Air Speed Indicator and GPS telemetry now.
What kind of range, could ya expect , with a FRSky ?

Last edited by BilleFly; Jan 19, 2021 at 11:01 AM.
Jan 21, 2021, 04:22 PM
Registered User
rrcdoug's Avatar
I would suggest using openXsensor for this . The calculations would be done onboard without the FrSky telemetry delay and could be written in Arduino C++.

Quick Reply

Thread Tools

Similar Threads
Category Thread Thread Starter Forum Replies Last Post
Discussion Question RE FrSky Vario ZSimon FrSky 3 Oct 04, 2015 05:06 AM
Help! FrSky Vario programing with the FrSky FLD-02 - LCD Display gotime360 Radios 5 Feb 23, 2014 01:45 AM
Help! FrSky Vario programing with the FrSky FLD-02 - LCD Display gotime360 Hand Launch 2 Feb 16, 2014 09:06 PM
Thermal computer web site updated with TE vario etc skj DIY Electronics 0 Jan 08, 2005 10:00 AM