Miami Mike's blog View Details
Posted by Miami Mike | Mar 03, 2017 @ 10:13 AM | 16,145 Views
Mixes are for mixing, inputs are for selecting.

Note: Since I first wrote this, Inputs have also become my preferred choice for applying curves and functions.

It may be that you're performing operations on your Mixes page that could be done instead on your Inputs page. The Inputs page isn't just good for selecting rates and exponential for your sticks, you can move virtually any operation that consist solely of selecting, rather than mixing, to the Inputs page. This can be useful for removing clutter from your Mixes page and more evenly distributing your setup across the two pages, which both limit their number of lines to 64.

Here's an example from my glider setup, where I use TrmT to adjust reflex and camber in four different flight modes. It started out on the Mixes page:

CH10(RfxCam)  TrmT Weight(+50%) Flight mode(Zoom) Offset(50%) [Zoom]
           += TrmT Weight(+25%) Flight mode(Speed) Offset(25%) [Speed]
           += TrmT Weight(+25%) Flight mode(Thermal) Offset(-25%) [Thermal]
           += TrmT Weight(+50%) Flight mode(Launch) Offset(-50%) [Launch]
Channel 10 was being read by the aileron and flap output channels with mix lines similar to this one (this is not exact):

CH01 (RtAil) CH10 Weight(+100%)
This worked fine but my mix lines were starting to run short and I wanted to clean up the page, so I moved the operation to the Inputs page and added a "catchall" at the end to make sure that the input explicitly contributes a value of zero when not in a flight mode that incorporates reflex or camber:

[I4]RxCm TrmT Weight(+50%) Flight mode(Zoom) Offset(50%) [Zoom]
         TrmT Weight(+25%) Flight mode(Speed) Offset(25%) [Speed]
         TrmT Weight(+25%) Flight mode(Thermal) Offset(-25%) [Thermal]
         TrmT Weight(+50%) Flight mode(Launch) Offset(-50%) [Launch]
         MAX Weight(0%) [Default]
Now, on the Mixes page I read the input with lines similar to this:

 [I4]RxCm Weight(+100%)
With this technique I've relocated quite a few of my mix lines to my Inputs page, and now I have plenty of space open for new mixes.

Posted by Miami Mike | Feb 15, 2017 @ 03:39 PM | 16,994 Views
Presenting Miami Mike's F3J/TD Glider Simulator for the FrSky Taranis X9D

Instructions for downloading, installing, and running glidsim.lua
  1. Click here or the link below to download glidsim.txt.
  2. Rename the file to "glidsim.lua".
  3. Store it in your OpenTX Companion SDCARD folder and on your radio's SD card, under /SCRIPTS/TELEMETRY.
  4. Open an eepe file containing an F3J/TD glider setup, and open the glider for editing.
  5. Select the Telemetry tab, scroll to the bottom, and select an unused Telemetry screen tab.
  6. For Custom Screen Type select Script, then glidsim.
  7. Select Simulate at the bottom of the page.
  8. Select the Taranis Simulator tab.
  9. On the Taranis simulator, long-press the PAGE button to get to the Glider Simulator page.
  10. To set flap offset, move the radio controls to their flap-neutral positions and press PLUS (+).
  11. To switch between cross-tail and v-tail, Press MINUS (-).
  12. To exit the simulator, long-press EXIT.
  13. After setting up all of your gliders for glidsim.lua, be sure to save the modified eepe file.
  14. When running the simulator on your radio, move the controls to their flap-neutral positions before switching on, clearing a switch warning, or selecting a model. Flap neutral will be set automatically when a model has finished loading.

Please post questions, comments, suggestions, bug reports, and general discussion of the glider simulator in the comment section below.

Posted by Miami Mike | Feb 11, 2017 @ 09:41 PM | 15,582 Views
Taranis: glidersim.lua - A New Tool For Setting Up Your Glider

This is a preview of my new Glider Simulator, which runs on the Taranis or OpenTX Companion just like a telemetry script. It's not quite ready for release because I still have to add V-tail support, but here's a demo of the X-tail mode. As soon as I get it finished and well-tested I'll release it to everyone for free. I think you'll find it to be a valuable aid to F3X/TD glider setup, especially with its clipping indication feature.

Clipping means that a control has reached a position such that even if more movement in the same direction is available, it won't do anything. It doesn't mean that any stress or damage is taking place because the Outputs stage prevents that, but I still consider it to be undesirable and have eliminated it in my own setups. I'll post more on that later, but meanwhile, enjoy the demo.

glidersim.lua - A glider simulator for the Taranis screen (11 min 0 sec)

Posted by Miami Mike | Jan 15, 2017 @ 12:11 PM | 15,016 Views
Adding V-Tail Differential to Mike Shellim's F3J/TD Setup, Version 2 or 3

Last updated on January 16, 2017.

If your V-tail glider changes pitch when you apply left or right rudder, the cure is to add V-tail differential. Here's a mod for Mike Shellim's F3J/TD Setup for the Taranis, Version 2 or 3, that not only adds that capability but also provides convenient in-flight adjustment!

There are other radio brands that have V-tail differential capability but I'm not aware of any that provide a way to adjust it in flight. The usual method is to try a setting, land, tweak the setting, launch, and try again. This modification features a way to avoid having to make several test flights and landings. Instead, you'll be able to adjust differential in flight with the throttle trim switch (TrmT).

To add this feature you'll need to free up a global variable (specifically GV6) that's currently used to set reverse differential, which is a setting that applies when both ailerons are raised during Landing mode (known as "crow"). After you've found the best V-tail differential setting you'll have a choice of several options, including restoring GV6 to its original use.
  • Free global variable GV6
    The first step is to free up GV6. Currently it's read by the two aileron channels, CH01 and CH02, and can have any value from 0% to 100%. Personally, a reverse differential setting of 100% seems fine to me, and the setting won't even matter unless you have crow enabled in
...Continue Reading
Posted by Miami Mike | Jan 02, 2017 @ 11:33 AM | 15,106 Views
Here are some examples of experiments you can do to determine the order in which data is processed by the OpenTX Inputs and Mixes pages:

Experimental Testing of OpenTX Data Flow
  • Set up a new model memory for testing.
    1. Create a single input on the Inputs page.
      [I1] Ail Weight(+100%)
    2. Create a single mix on the Mixes page.
      [I1]Ail Weight (+100%)
    3. On the Outputs page, ensure that all channels are set to the defaults of
      • Subtrim = 0.0%
      • Min = -100%
      • Max = +100%
      • Direction = ---
      • Curve = ---
    4. Test the basic setup.
      • Start Companion simulator and move the aileron stick left and right. Observe that the CH01 indicator moves left and right from -100% to +100%.
      • Exit the simulator.
    5. Create a special test curve.
      • On the Curves page, create a 7-level, 12-point, stair-step curve.
        • Select Curve 1.
        • Select 12 points.
        • Select Custom X.
        • Enter these values:

  • You are now set up to perform experiments to determine the order in which data are processed in the Inputs and Mixes pages by OpenTX.
  • Testing the Data Flow in Mixes
    1. Experiment #1: In Mixes, which is processed first, Weight or Curve?
      • On the Mixes page, copy the mix from CH01 to CH02.
      • Add Curve 1 to the CH02 mix:
        CH02 [I1]Ail Weight(+100%) Curve(1)
      • Start Companion simulator and move the aileron stick left and right. Observe how the CH02 indicator steps through a range of 7 discrete levels as it moves left and right from -100% to +100%.
      • Exit the simulator.
...Continue Reading
Posted by Miami Mike | Dec 21, 2016 @ 03:36 PM | 14,980 Views
Here's an interesting thread for competition R/C sailplane pilots on the "Kapow" spot landing technique developed by Bob McGowan, who gives a detailed description of it in this post. The technique was dubbed "Kapow" by Daryl Perkins, who has posted a series of videos on YouTube of Kapow in action:

Daryl perkins and the X3 (0 min 18 sec)

Basically you get low and slow, and then, through a custom radio mix, you simultaneously apply maximum reflex plus down elevator at just the right time to nail the landing target.

I confess that I haven't tried this myself yet, but do I intend to at the first opportunity. Meanwhile, I've come up with what I think might prove to be an easier and more efficient way to accomplish a Kapow landing...

That is, if you use an FrSky Taranis radio.

I don't have much use for potentiometers, especially since, with Mike Shellim's help, I've worked out ways to "overload" my trims so that I can do all sorts of different adjustments with them. I'll write about that in another blog post, but for now I'll just say that I've eliminated any normal application for sliders LS and RS. (And I've already disposed of S1 and S2 by replacing them with switches.)

But recently, while holding my Taranis and wondering "Is there anything I can use these sliders for?" I realized that one of those sliders could function sort of like a gun trigger. You can push the slider forward, enable a function using...Continue Reading
Posted by Miami Mike | Dec 06, 2016 @ 06:47 PM | 14,897 Views
Note: My Taranis posts so far are generally based upon programming for full-house F3J/TD sailplanes, using OpenTX Companion Version 2.1.9 and a setup based upon Mike Shellim's F3J/TD Version 2. However, I believe a lot of the material I've presented can be applied to Taranis programming in general.

Taranis: Lock Your Individual Potentiometer Settings Into Memory and Use The Same Potentiometer to Adjust More That One Function.

Here's a way to set a potentiometer (S1, S2, LS, or RS) where you want it, and then lock the setting into memory so that it won't be affected when the pot is moved. You can also use the same pot for two separate functions, using a 3-position switch to choose set A, set B, or lock.

In this example I'll use the left slider (LS) to adjust volume when SC is down (SC↓), adjust aileron-to-rudder mix when SC is up (SC↑), and keep both settings locked in memory and unaffected by the left slider when SC is in the middle position (SC-). The settings are held in memory by global variables.

In the case of aileron-to-rudder mix, GVAR7 sets the amount of mix, and each flight mode has its own value, so in flight modes 1-8 GVAR7 is set to Own value. The aileron-to-rudder mix setup is a modification of the one in Mike Shellim's F3J/TD setup, Version 2. (He calls it "combi.") You can refer to the CH06 (Rudd) mix in his setup to see how combi is actually implemented.

Mike's setup requires manually setting GVAR7 for each flight mode,...Continue Reading
Posted by Miami Mike | Nov 24, 2016 @ 07:34 PM | 14,741 Views
Using Logic Symbols and Digital Electronic Schematic Diagrams as An Aid to Understanding and Designing Logical Switch Setups

I've found that it can be useful to draw schematic diagrams of equivalent digital electronic circuits for logical switch setups that I'm designing or analyzing.

For a fairly simple example, here's the code that activates and deactivates the CAL (Calibrate) mode in Mike Shellim's F3J/TD setups:

L3 is the output. When L3 is true the radio is in CAL mode (Flight Mode 1).

Here's what it looks like when translated into a schematic diagram:

To enter CAL mode the stick is held in the lower-left corner (L5 is true) and the spring-loaded SH switch is pulled (SH↓). To exit CAL mode, SH is pulled (SH↓) with the stick not in the lower-left corner.

An interesting fact about this arrangement is that the combination of L2 and L3 serve virtually the same function as a sticky. This is much easier to see in the schematic diagram than in the radio programming.

So why not use a sticky instead and save a logical switch?

Here's an alternate "circuit":

...Continue Reading
Posted by Miami Mike | Nov 15, 2016 @ 11:00 PM | 14,607 Views
Getting The Most Out Of Your Trim Switches

A Continuation of Taranis: Conserving Switches, Part 1

When you're flying a full-house glider you need your elevator and aileron trim switches, but you probably have no need for throttle or rudder trims. That means those switches are free for other purposes, and there are plenty of useful things they can do.

When a trim switch is set to Own Trim in a particular flight mode, a trim switch adjustment that's made while in that flight mode will store a unique value in memory that applies only while in that flight mode. And through a mix, the trim switch can have a unique function that's also only active in that flight mode. You can see an example of a trim switch serving two different functions in Mike Shellim's F3J/TD setup, in the mixes for CH20 and CH22:
CH20 (Snap)
 Ele Weight(+100%) Flight mode(T3-speed) NoTrim Function(x<0) [Ele]
*= TrmT Weight(-50%) Offset(50%) [TrmT]

CH22 (SpComp)
 CH16 Weight(GV7) Flight mode(Landing) Curve(2) [Spoilr]
*= TrmT Weight(+50%) Offset(50%) [CompAdj]
Here, TrmT (the throttle trim switch) adjusts snap flaps while in T3-speed mode, and adjusts elevator compensation while in Landing mode.

But you can go way beyond that.

Here are Mike Shellim's aileron camber and flap camber mixes from his Version 3, F3J300_X:
CH10 (AilCm) 
MAX Weight(GV3) Flight modes(Launch, Zoom, KAPOW, T1-thermal, T3-speed) [CmBase]
*= LS Weight(+50%) Flight mode(T1-thermal) Offset(
...Continue Reading
Posted by Miami Mike | Nov 15, 2016 @ 09:19 AM | 14,194 Views
How to Turn Your Backlight On and Off Without Tying Up a Useful Switch

In Mike Shellim's F3J/TD setups, both Version 2 (F3J_200_X and F3J_200_V) and Version 3 (F3J_300_X and F3J_300_V), logical switches L1 through L5 are used to manage the Calibrate mode. Calibrate is enabled by holding the right stick in the lower-left corner (assuming Mode 2) while activating SH↓, and it's released by activating SH↓ alone.

Also, in Version 2 the backlight is switched on and off with SF↓ and SF↑ respectively, via Special Function 4. This appears to have been eliminated in Version 3 but could easily be added by the user if desired.

The following is a programming method I use that leaves Mike Shellim's Calibrate mode untouched while allowing SH↓ to also toggle the backlight on and off, freeing SF for a more useful function. When your radio enters Calibrate mode, which is normally used when your model is indoors where you might actually need the light, the backlight will automatically be on. In other flight modes the backlight will be off by default, but can be toggled on and off by flipping SH↓.

This programming can be combined with my SetFail flight mode for setting failsafe in flight, which is activated by holding SH↓ for one second, resulting in SH having three different functions:
  1. SH is used to enter and exit Calibrate mode as per Mike Shellim's setups.
  2. SH is used to toggle the backlight on and off.
  3. SH (held for one second) is used to
...Continue Reading
Posted by Miami Mike | Nov 13, 2016 @ 12:07 AM | 15,476 Views
Add Bluetooth to silently monitor your Taranis telemetry!

Bluetooth transmitter from Amazon

Bluetooth receiver from Amazon

If the receiver is unavailable, here's a search for similar items.

This one looks good.

Here's the Bluetooth transmitter mounted to the back of the module compartment cover with double-
sided sticky tape. There's a notch cut out at the bottom corner for the audio cable to pass through.
...Continue Reading
Posted by Miami Mike | Nov 12, 2016 @ 04:39 PM | 14,831 Views
When it comes to setting failsafe configurations that determine what our models will do if and when they lose radio contact, we usually just take a wild guess about what position each control surface should take. Then we face the very scary prospect of turning off our radios in flight to test those settings, hoping that we'll be able to regain control in time. I've never had the nerve to try that and I'll bet very few others have either.

Here's my method for setting failsafe:

First of all, on the Taranis MODEL SETUP page for each model, the options for Failsafe mode are Not set, Hold, Custom, No pulses, and Receiver. I had at first set mine to Receiver, which means when you press the F/S button on the receiver it memorizes the current control positions and uses them as its failsafe configuration. I've since switched to Custom and added a note to the end of this post about why that appears to be a better choice than Receiver.

For setting failsafe I used what was my next available flight mode, which was FM8, to which I assigned the name SetFail. I set all four trim settings to Own Trim and set the SetFail mode to be activated by a Logical Switch which I'll call L4 for this example. L4 becomes false and SetFail is deactivated the instant either the aileron or elevator stick position is moved from center. In Mode 2 that means the instant the right stick is moved.

I added these mix lines to determine what the trim switches do while in SetFail mode. I fly gliders,...Continue Reading
Posted by Miami Mike | Nov 12, 2016 @ 08:41 AM | 14,969 Views
Here are my current Taranis X9D control assignments for sailplanes:

My radios have 3-position switches in place of S1 and S2, as described in Taranis: Change S1 & S2 to Switches. The switch positions are labeled S1↑, S1-, S1↓, S2↑, S2-, and S2↓.

My model memory setups are based upon Mike Shellim's F3J/TD Version 2, with substantial modifications, some of which are adopted from his newer F3J/TD Version 3 setup. You can find his competition glider setups at

  • SE Different Functions for Pure Glider and Motor Glider Versions
    • Pure Glider Version - Flight Modes For Winch Launching. Flap stick must be in full-up position.
      • SE↑ Zoom mode. A separate elevator rate for Zoom mode is included on the Inputs page.
      • SE- Glide (Goes to the flight mode selected by switch SA.)
      • SE↓ Launch mode. Uses a separately adjustable combi mix that reads the aileron stick directly and is independent of aileron rates.
    • Motor Glider Version - Motor Control Motor must be armed.
      • SE↑ motor full power
      • SE- motor half power
      • SE↓ motor off. SE must be in this position before motor arming is possible.
  • SF Select Landing Mode When the flap stick is moved away from the top position either Flap mode or Crow mode is activated, depending upon the position of SF.
    • SF↑ Flap mode (flaps only) with separate elevator compensation curve and weight setting.
    • SF↓ Crow mode (flaps down, ailerons up)
...Continue Reading
Posted by Miami Mike | Nov 12, 2016 @ 08:31 AM | 14,278 Views
If 3-position switches (short or long) are wired in parallel with the S1 and S2 potentiometers ("pots"), the pots are left in their center positions (very important), insulated, and stored inside the radio, and the switches are installed in their places, the following six additional switch functions will be available:

S1↑ S1− S1↓ S2↑ S2− S2↓ (Of course these designations won't show up on your radio screen or in Companion but they can be useful in your programming notes.)

Decoding S1↑ and S1↓ with Logical Switches:
L1	a~x S1  100 ---- 0.0 0.0 L1 = S1↑ 
L2	a~x S1 -100 ---- 0.0 0.0 L2 = S1↓
These two Logical Switches may be reversed, depending
upon which way the 3-position switch is installed in your radio.
If S1− represents a default setting then it might not need to be specifically decoded, otherwise it can be decoded with a third Logical Switch:
L3	AND !L1 !L2 ---- 0.0 0.0 L3 = S1−
The code for S2 is similar:
L4	a~x S2  100 ---- 0.0 0.0 L4 = S2↑ 
L5	a~x S2 -100 ---- 0.0 0.0 L5 = S2↓
L6	AND !L4 !L5 ---- 0.0 0.0 L6 = S2−
To wire a 3-position switch in parallel with a pot, use short insulated jumper wires to connect the top terminal of the pot to the top terminal of the switch, the center terminal of the pot to the center terminal of the switch, and the bottom terminal of the pot to the bottom terminal of the switch. Remember that the pot has to stay connected even though it won't be accessible, and it has to be set to the center detent position.

If you want to reverse the modification later it won't be necessary to disconnect or remove the switch. Just set it to its center position, insulate it, store it away inside the radio, and put the pot back where it used to be. Remember that in either case the control that's not being used must remain set to its center position.