Miami Mike's blog View Details
Posted by Miami Mike | Apr 16, 2020 @ 01:52 PM | 8,845 Views
"You'll be glad when this it what? You didn't finish your sentence! Over."

Brian and Stewie Over (0 min 59 sec)

Posted by Miami Mike | Mar 19, 2020 @ 11:08 AM | 8,721 Views
The COVID-19 pandemic is real. Learn as much as you can about it from reliable sources and accept that you'll have to deal with it, because it's going to be with us for a long time and will get much worse before it starts getting better.
Posted by Miami Mike | Nov 30, 2019 @ 01:02 PM | 7,129 Views
Early in 2019 I won a Taranis Q X7 in a raffle at a club fun-fly. At first I thought I'd have no use for it because it doesn't have enough switches for my sailplane setups, but then I realized that an OpenTX radio can be useful for other applications beside controlling a model.

Presenting the OpenTX ALES Flight Group Launching System

...Continue Reading
Posted by Miami Mike | Oct 09, 2019 @ 08:06 PM | 7,764 Views
My Taranis X9D Control Assignments for Sailplanes
  • LS is replaced with a push-button that activates the Kapow function.
    • When the button is pushed the ailerons go up to their extreme limits, followed by the flaps after a 0.1 second delay to prevent flap-aileron collisions due to the wing's polyhedral break.
    • When the button is released the flaps return to their neutral positions regardless of the flap stick position, in order to prevent them from digging into the ground.
    • If the flap stick was down when the button was pushed, normal flap stick function is restored when the stick is returned to its up position.
    • Down elevator can also be part of the Kapow function and can be varied between the extremes of no down elevator (plane simply drops) to full down elevator (plane dives into the ground). TrmT (the throttle trim switch) is used to adjust the elevator position for Kapow while the Kapow button is held in.

  • SE has different functions for winch-launched gliders and electric-powered gliders.
    • When winch-launching a pure gilder,
      • SE↓ selects FM4-Launch mode. When in Launch mode, TrmT adjusts the amount of camber in that flight mode only, and TrmE (the elevator trim switch) adjusts the elevator position in that flight mode only. The flight mode is announced when it is selected.
      • SE↑ selects FM5-Zoom mode. When in Zoom mode, TrmT adjusts the amount of reflex in that flight mode only, and TrmE adjusts the elevator position in that flight mode only. The flight
...Continue Reading
Posted by Miami Mike | Sep 17, 2019 @ 08:45 AM | 8,160 Views
Reports are appearing of a recent Windows 10 update disabling and replacing the driver that enables use of an FrSky radio as a USB flight simulator controller.

Here's the first report I saw, along with a fix:
Originally Posted by filago
Hello folks, I frequently use my Taranis (X9D, using OTX 2.1.9) as the controller for PicaSim flight simulator on a Windows 10 PC, and yesterday it suddenly wouldn't work for that.

In case it helps anyone else, here is a quick summary of how I got it working again.

Symptom: After a Windows update, the game controller functions (joysticks, switches) no longer do anything in Windows.

Cause: Windows update installed a new driver "libusb0.sys" in "C:\windows\system32\drivers" which was now being used for the Taranis USB inputs.

Solution: Revert back to the previous Windows driver.
  • Turn Taranis ON, and attach to PC via USB as normal for using flight simulator.
  • Go to Control Panel > Devices and Printers. Right click on item "FrSKY Taranis…" Select Properites > Hardware > USB Input Device > Properties > Change Settings > Driver > Update Driver > "Browse my computer…" > "Let me pick…"
  • Windows had switched mine to "BETTER_USB_HS" (which in this case was NOT better!)
  • I switched it back to "USB Input Device" and all is good again.
It is once again using the driver "hidusb.sys" in the same directory as above, and the game controller functions are working as before.

- John
I found that in my case the procedure to get to those settings was different than what was described by John, so it's not necessarily the same for everybody.

Here are some other reports that I've spotted so far:

Dcchr -

Griggs2121 -

David Galati -

Please post below with any questions, comments, corrections, alternate procedures, videos, additional resources, etc.
Posted by Miami Mike | Aug 29, 2019 @ 07:01 PM | 6,392 Views
Helmut Stettmaier in Bavaria, Germany, originally described the Shepard Tone Vario concept in the March 2018 issue of the now-defunct Radio Controlled Soaring Digest. It's the first article in that issue and the title is "An Innovative Method for Acoustically Rendering Climb Data for Model Gliders Using Shepard Tones."

The idea is that when your glider is circling in and out of lift and alternating between rising and falling, all you'll hear from a conventional variometer are high-pitched beeps while you're rising and lower tones while you're descending. The problem is that it won't tell you whether you're achieving a net profit or loss in altitude with each circle. Helmut offered a solution for that, which I call the Shepard Tone Vario.

The Shepard Tone vario isn't technically a variometer because it doesn't directly indicate vertical speed. Instead it produces a tone with a pitch that varies directly with altitude. It's a sort of audible altimeter that produces rising and falling tones instead of numbers. If you're circling in and out of lift you'll hear the tone rise and fall as you go around and your glider rises and falls, and you'll be able to hear whether the highest pitch you reach during a circle is higher, lower, or the same as the highest pitch you reached during the previous circle.

But the magic is in the Shepard tones. Shepard tones are auditory illusions. They can seem to continuously rise or fall yet never go beyond your range of hearing....Continue Reading
Posted by Miami Mike | Aug 14, 2019 @ 01:47 PM | 6,116 Views
Looking back at the 2019 MidSouth ALES and F5J competitions and comparing them to the same contests at the 2019 Soaring NATS, it occurred to me that there was an unexpected benefit in the way it was done at the MidSouth, which was to interleave rounds in the two events and allow participation in one or the other but not both. At the Soaring NATS, ALES was held on Saturday and Sunday while F5J was held on the following Monday and Tuesday, allowing fliers to enter both contests.

At the MidSouth there were 17 in ALES and 15 in F5J, which was almost an even split. As I see it, the serious competitors who prefer strict rules, practice hard and often, and strive to master complex strategies, were separated from the less serious who were there mostly to enjoy soaring and socializing with those who share their hobby. In other words, the MidSouth one-contest-or-the-other structure separated the FAI crowd from the AMA crowd and, I suspect, made the event more appealing and enjoyable for everyone.

I'd like to see this format catch on, at least in major events, and perhaps it could even be extended to Thermal Duration vs. F3J.
Posted by Miami Mike | Jun 29, 2019 @ 01:58 PM | 14,374 Views
I'd like to get a discussion going here about tent camping, or "primitive camping", during the 2019 Soaring NATS. I've never done this before so hopefully I'll hear from people who have and we can all share thoughts and ideas.

Here are some links and images:I was told that there are showers at Site #3 and at the back of the museum. Here's a Google Maps aerial view of the layout as I understand it. Please let me know if it's wrong:

If an access code is required for the showers, what time do you have to arrive to get the code? If the office is closed, can someone else get you in?

What's a good time to arrive so that you'll have plenty of time to set up and relax?

Also, I'd appreciate any advice on what to bring, what to do about meals, etc.

Posted by Miami Mike | Apr 04, 2019 @ 06:15 PM | 9,994 Views
I've updated my gldsim.lua Glider Simulator script with a new look, a new feature, and compatibility with all of the "Taranis" line of FrSky/OpenTX radios running OpenTX version 2.2, while maintaining compatibility with OpenTX version 2.1.

It not only works with the Taranis X9D, X9D+, and X9E...

it also works with the Q X7...

...Continue Reading
Posted by Miami Mike | Mar 10, 2019 @ 03:26 PM | 10,406 Views
This is an extension of a discussion that started somewhere around here. It's a mix script that will convert a horizontal output and a vertical output into a pair of outputs that are confined within the boundary of a circle. Stick input that falls outside of the circle will be clipped.
--[[ circle.lua - a mix script to confine horizontal and vertical sources within a circle. By Miami Mike, 3/10/2019 ]]
local input = {{"Horz", SOURCE}, {"Vert", SOURCE}}
local output = {"newH", "newV"}
local function run_func(X, Y)
	X = X / 1024
	Y = Y / 1024
	local angle = math.atan2(Y,  X)
 	local R = math.sqrt(X ^ 2 + Y ^ 2)
	if R > 1 then -- clip.
		R = 1
	newH = R * math.cos(angle)
	newV = R * math.sin(angle)
	return 1024 * newH, 1024 * newV
return {input=input, output=output, run=run_func}
If you're working on a way to accomplish this without Lua then this is what you're trying to duplicate. I don't think it can be done but I could be wrong.

When monitored with the mon ch.lua Taranis X9D+ telemetry script included below, circle.lua produces an output like this when the stick is moved around, with the original output displayed on the left and the processed output displayed on the right:

To set it up:
  1. Download circle.txt, rename it to circle.lua, and store it in SCRIPTS/MIXES.
  2. Set up a model memory for testing with the horizontal and vertical stick outputs on channels 1 and 2, respectively. Leave channels 3 and 4 empty
...Continue Reading
Posted by Miami Mike | Feb 01, 2019 @ 10:10 PM | 14,909 Views
I like the Castle Creations Phoenix Edge ESC's auxiliary input with the white wire. For my ALES sailplanes I programmed mine in the RX ARM LOCK mode so that Channel 8 on my receiver operates the motor safety lockout. It plays a little tune through the motor when I arm it and a different tune when I disarm it.

I also have ALES CAM limiters installed, which I leave active at all times, even for practicing and sport flying. Since the recommended CAM Limiter hookup routes the entire plane's electrical power through the limiter, its cables, and connectors, which is an arrangement that I don't like, I instead swapped the orange and white wires on my ESC so that the orange throttle signal wire is alone on one plug and the white aux wire, red (+) wire, and brown (-) wire are together on the other plug.

In other words, I changed this:

to this:

...Continue Reading
Posted by Miami Mike | Nov 29, 2018 @ 02:19 PM | 17,529 Views
There may be some interest springing up in Germany in the Shepard Tone Vario setup that I developed for OpenTX earlier this year. See my Shepard Tone Vario for OpenTX and Shepard Tone Vario testers wanted posts from February and March of 2018.

Here's the complete package with setup instructions.

Demo video :

Shepard Tone Vario Demo (5 min 54 sec)

Edit: According to this post, the RC Soaring Digest has released its final issue. My Shepard Tone Vario setup was inspired by an article by Helmut Stettmaier in the March 2018 issue of the RC Soaring Digest, titled An Innovative Method for Acoustically Rendering Climb Data for Model Gliders Using Shepard Tones, so if you're interested in reading it download it now, just in case the site goes offline.
Posted by Miami Mike | Aug 19, 2018 @ 08:38 PM | 18,586 Views
When the OpenTX Wizard creates an elevon mix, it looks like this:

I2:Ail Ail Weight(+100%)
I3:Ele Ele Weight(+100%)


CH2 I2:Ail Weight(-50%)
 += I3:Ele Weight(+50%)
CH3 I2:Ail Weight(+50%)
 += I3:Ele Weight(+50%)
The weights are set at 50% so that the combined effect of the mixes for each channel won't exceed ±100% and cause clipping. That's important because when a channel mix reaches ±100% its control surface is at its limit and any further stick movement away from center won't result in any additional control response from that channel. For a more detailed explanation of this, please see this post, which includes a graphical illustration.

However, a 50% weight for the aileron input and a 50% weight for the elevator input isn't necessarily the best combination for a slope wing. The sum of the two weights should never reach beyond ±100%, but that doesn't mean they have to be equal to each other. In the case of my Weasel Trek and generally most other slope wings, the best setup will have a lot more aileron throw than elevator throw. In fact, if the CG is forward of but very close to the neutral point, a wing will require very little elevator throw. On the other hand, slope wings are generally more fun to fly with the quick and snappy rolls you can get with extreme aileron throw.

So here's an alternate OpenTX elevon setup that allows you to adjust elevator throw in flight and get it just right for smooth, stable pitch control, and...Continue Reading
Posted by Miami Mike | Aug 06, 2018 @ 03:35 PM | 17,130 Views
  • A link can be a web page URL by itself, such as In that case you can simply enter the URL in your post and tags will be automatically added when previewing or posting (unless you've already added them yourself). They'll look like this:


    It's customary to precede this type of link with a description of where the link will take you.
  • A link can contain text that appears in place of the URL, like this:

    Miami Mike's Blog

    The tags for a link with text look like this:

    [url=]Miami Mike's Blog[/url]
  • It's possible to use an image in place of text in a link:

    ← This is a clickable link.

    The tags for a link that includes an image look like this:

  • Beware of adding a link to your post that includes a page number because posts per page is a configurable option for RCGroups users, so a link with a page number won't necessarily take others to the same place it takes you. This is a problem that Google has when returning a link to an RCGroups post. If you've increased your Number of Posts to Show Per Page in Thread Display Options on your Edit Options page then a link from Google will
...Continue Reading
Posted by Miami Mike | Jul 01, 2018 @ 04:36 PM | 18,490 Views
Here's a Lua script and custom set of WAV files for OpenTX version 2.1 or 2.2 to speak the time of day in a natural-sounding format, such as "twelve o'clock PM" or "nine oh two AM."

The WAV files are in a folder in the root directory named SAYTIME, and saytim.lua is stored in /SCRIPTS/FUNCTIONS/.

On your Special Functions page, set saytim to be played with the Play Script function whenever a hardware or logical switch of your choice is true. For example, this will play the time of day when SA is switched to position SA↑:

Beginning with OpenTX version 2.2.1, saytim.lua can alternately be called with a Global Function.

The script and set of WAV files were revised on July 3, 2018 to allow for times from 12:00 AM to 12:59 AM. The revised script looks like this:
-- Function script saytim.lua by Miami Mike, July 3rd, 2018
local path, lastcall = "/SAYTIME/", 0
local function run_func()
	local newcall = false
	local time = getTime()
	if time > lastcall then
		newcall = true
	lastcall = time + 10
	if newcall then
		local datetime = getDateTime()
		local hour, minute, ampm = datetime.hour, datetime.min, "am"
		if hour >= 12 then
			ampm = "pm"
			if hour >= 13 then
				hour = hour - 12
		playFile(path .. "timeis.wav")
		playFile(path .. hour .. "h.wav")
		playFile(path .. minute .. ".wav")
		playFile(path .. ampm .. ".wav")
return {run=run_func}
Instructions are included in a file named readme.txt. Please post any problems or special requests below.

Posted by Miami Mike | Jun 25, 2018 @ 01:35 PM | 19,002 Views
In November of 2016 I described my SetFail flight mode, which allows you to experimentally determine your best Custom failsafe settings for each of your models, but it's a bit involved and some might consider it adequate to just set the failsafe option to Custom and set all your controls to neutral, except the throttle, which should be fully closed.

I just want to point out that if you decide to do it that way then you shouldn't assume that this will work, because it won't:

It's not as simple as that.

The values you enter on your Setup page for Custom failsafe are the actual values that will be sent to your servos and do not take into account any Subtrim, Min, or Max settings on your Outputs page, or any mixing, or flight mode-specific trim settings, etc. that occur when your sticks are in their neutral positions. To know what those Custom failsafe values really need to be for neutral control surface positions, or whatever positions you want them to take when control is lost, you have to read them from your Channels Monitor.

On a Taranis X9D+, before you begin setting up your model, it looks like this:

But after you've set up the model, with the sticks neutral and the throttle off, it'll probably look more like in this random example:

...Continue Reading
Posted by Miami Mike | May 27, 2018 @ 05:43 PM | 17,731 Views
There's a bug in the trim steps and trim limits in OpenTX that has apparently been around for a long time, and which I reported on Github back in February of 2017.

Briefly, trims have a maximum integer value of 250 instead of 256.

256 is 2^8 or two raised to the eighth power, and would be exactly 1/4 of the maximum integer value of 1024, which is 2^10 or two raised to the tenth power. But 250, which is 2 x 5^3 or two times five raised to the third power, is 24.4140625% of 1024. In the midst of a system neatly based upon powers of two, there's an awkward and illogical value that's the cause of a big mess!

This appears to have been the result of a programmer confusing the percentage value of 25% with the integer value of 250, and in OpenTX version 2.1, one of its consequences is an odd behavior that I described to the developers in an attempt to prove my case:
Here's an oddity that fixing this bug will cure: In any trim step setting beside "Extra Fine" (2 steps per click), the values accessible when you start from zero are interleaved with the values accessible when coming back from maximum or minimum. For example, if your trim setting is "Fine" (4 steps per click) then if you start from zero you can select settings that are multiples of 4, such 4, 8, 12, 16, etc.

But if you go all the way to the current unintended limit of 250 and come back, you can only get to settings that are equal to 250 minus a multiple of four,
...Continue Reading
Posted by Miami Mike | Apr 05, 2018 @ 09:48 AM | 18,273 Views
Because I have several full-house sailplanes that use exactly the same basic setup, I've recently adopted a policy of leaving everything on the Outputs page at default values except for the six curves for the six servo channels. My flaps and ailerons are all controlled by 9-point curves with the flaps adjusted to be
  • at their least common physical upper limit at +100%,
  • 7.5° up at +75%,
  • even with the trailing edge at +50%,
  • 7.5° down at +25%,
  • and from there to their least common physical lower limit in five steps of equal degrees, ending at -100%.
My aileron curves are adjusted to be
  • 30° up at +100%,
  • 22.5° up at +75%,
  • 15° up at +50%,
  • 7.5° up at +25%,
  • even with the trailing edge at +0%,
  • 7.5° down at -25%,
  • 15° down at -50%,
  • 22.5° down at -75%,
  • 30° down at -100%.

To do these settings I use digital helicopter pitch gauges...

... and a 16-point "stair" curve that's part of my Calibration mode.

(Actually, I use different flap/crow elevator compensation curves for each model as well, but aside from those differences the setups are the same.)

The "stair" curve is an expansion of an idea inspired by Mike Shellim.

As an example, here are my two Shadow 2 electric-powered gliders:

...Continue Reading