Miami Mike's blog - RC Groups
Miami Mike's blog View Details

# Taranis: Improved Volume Control!

Posted by Miami Mike | Feb 01, 2018 @ 04:49 PM | 2,393 Views
Here's a simple improvement to the volume control setup I described in my previous blog post, which is a way to put your volume control on one of your potentiometers and confine its range to within your chosen upper and lower limits. The need to do arithmetic is now gone, plus there's a way to set the detent center position of the control to the "perfect" volume setting that's not too loud and not too soft.

If you haven't already guessed, the solution is to use a 3-point curve.

The first step is to create the curve. In this example I'm using Curve 32 and initially setting the three points to -100%, 0%, +100%:

The Special Function used is the same as in the previous setup:

But you can use a mix instead of an input if you like:

# Taranis: Tame Your Volume Control!

Posted by Miami Mike | Dec 21, 2017 @ 10:36 PM | 2,308 Views
If you're controlling your Taranis volume with one of your potentiometers ("sliders") you might be annoyed that the volume can be accidentally adjusted so high that you get bad distortion, or so low that you can't hear it and you miss important alarms and messages. If the maximum is louder than you want, or the minimum is lower than you want, or both, here's how to confine your volume range within upper and lower limits of your choice.

In this example I'll use RS as the volume control, but it could also be LS, S1, or S2.

You probably have your volume set up like this on your Special Functions page:

That's pretty simple, but to restrict the range you'll need to make it slightly more complicated.

Create an input like this:

It'll look like this on your Inputs page:

# Taranis: LiPo Fuel Gauge!

Posted by Miami Mike | Nov 23, 2017 @ 08:18 PM | 4,105 Views
A "fuel gauge" for your telemetry screen to display your LiPo pack's charge state as a percentage of full charge.

For OpenTX Versions 2.1 and 2.2

Update, 11/27/2017: Permission was requested by and granted to Martin Phillips ("thebriars") to include this in the Version 2.2 update of his OpenTX Documentation.

Introduction

Here's a "fuel gauge" setup for your Taranis to display your flight battery's state of charge as a percentage, beginning at 100% for a fully-charged pack and decreasing as you consume battery power. It requires a current sensor, such as a FrSky SP-40A - Smart Port 40 Amp Sensor or FrSky SP-150A - Smart Port 150 Amp Sensor.

You'll be able to add alarms and voice announcements that trigger at specific charge states, or at regular time intervals, or each time the charge state decreases by a certain amount so that you'll get announcements at, for example, 100%, 90%, 80%, etc. You'll also be able to bring up announcements whenever you like by flipping a switch.

The battery state will be retained between flights even if the radio is turned off, so a switch is provided to reset the charge state to 100% when the battery is replaced or recharged.

This was designed and tested with OpenTX Version 2.1.9 but should be (and reportedly is) compatible with Version 2.2 as well.

If you have questions, suggestions, requests, or problems, please post in the comment section below.

Begin by configuring the sensor on the Telemetry page.

# Taranis: Aileron-To-Rudder Mix.

Posted by Miami Mike | Apr 14, 2017 @ 09:26 PM | 9,187 Views
An auto-switching aileron-to-rudder mix for the Taranis
For OpenTX version 2.1.9

Aileron-to-rudder mix is useful but there are times when you want rudder control to be completely separated from aileron control. A common solution is to turn the mix on and off with a switch, but here I'll describe a setup that does the switching automatically. It works like this:
1. When the aileron stick is moved away from center while the rudder stick is centered, aileron-to-rudder mix is active.
2. If at any time the rudder stick is moved away from center, the mix is automatically cancelled and the rudder stick takes full control of the rudder. The changeover is slowed slightly for a smooth transition.
3. When the rudder stick and aileron stick are both centered, the mix is reactivated.
In other words, the rudder is controlled by one stick or the other but never both, and the rudder stick has priority.

A simplified eepe file is attached that demonstrates the setup, and if you have glidsim.lua installed in your /SCRIPTS/TELEMETRY folder you'll be able to watch it work. Activate the glidsim screen with the PAGE button. In Companion simulator, use the [Hold X] function to set the aileron stick away from center, then move the rudder stick and watch what happens.

Note: Of course the attached eepe file is not meant to fly a real model. It's only for demonstration purposes.

In this example, GV1 is used to set the amount of aileron-to-rudder mix. The value should be between 0% and 100%. I have it set to...Continue Reading

# Taranis: A Volume Control That Doesn't Take Up Any Pots or Switches

Posted by Miami Mike | Mar 26, 2017 @ 12:25 PM | 8,455 Views
Taranis: A Volume Control That Doesn't Take Up Any Pots or Switches
for OpenTX version 2.1.9

Like my other scripts so far, volume.lua is implemented like a telemetry script but doesn't actually provide telemetry. (But in this case it could with modification.) What it does is provide a way to adjust volume and store the setting without using any of the switches, knobs, or sliders that are otherwise used to control your model. Instead, the buttons next to the display are used.

The script needs one global variable ("GV"), which you can name "Volume." It can be any one of the nine global variables in each of your model memories and can even be a different GV for each model, although that would require multiple copies of volume.lua with minor changes to each copy and different filenames. I'm using GV1 in my radio and in the examples that follow.

There are installation instructions embedded in the script but I'll post more detailed instructions here.
• Download volume.txt from the link below, edit it as needed, rename it to volume.lua, and store it in SCRIPTS/TELEMETRY on your SD card. A follow-up post will display the script so that you can copy and paste it into a text editor if you wish.

• The GV that you use for volume control needs to be set to "Flight mode 0 value" in flight modes FM1 through FM8.

• On the Inputs page, create an input to read the volume global variable. In this example I use [I7]:
Code:
`[I7]Vol MAX Weight(GV1) [Volume]`

# Taranis: New Gimbal Test Lua Script

Posted by Miami Mike | Mar 18, 2017 @ 09:11 AM | 8,782 Views
gimbtest.lua is designed to run as a telemetry screen, although it doesn't actually provide telemetry. It checks each of the four stick functions, throttle, aileron, elevator, and rudder, for the 2049 possible stick values recognized by OpenTX, which range from -1024 to +1024. When each stick value is detected the corresponding screen pixel is set, and slow, careful movement of the sticks will eventually produce a display of which positions are detectable and which are not.

Pressing MINUS (-) will clear the screen and restart the test, and long-pressing EXIT will exit the screen.

When gimbtest.lua is run in Companion simulator the result is not impressive because the values obtained from mouse movement by Companion are very coarse compared to the values obtained from the Taranis gimbals:

The vertical lines in the display each consist of four line segments, one for Thr, one for Ail, one for Ele, and one for Rud. The left segments indicates that the value of -1024 was reached, the center segments indicates that zero was reached, and the right segments indicates that +1024 was reached. All other positions are indicated by individual pixels, with the negative values represented on the left side of center and the positive values represented on the right side.

You can see in the image above that when the script was run on Companion simulator the center segment for Thr did not appear, indicating that a zero reading from the throttle stick could not be obtained.

# Taranis: Optimized Offsets, Continued

Posted by Miami Mike | Mar 13, 2017 @ 06:40 PM | 9,026 Views
This is a continuation of What happens when an offset is applied to a stick-controlled channel, where I'll describe how to implement optimizing of offsets to prevent clipping and stopping short. It's also an example of deriving a method with algebra and then translating it into OpenTX code. For another example, I recommend Differential without GVARs, posted today by Mike Shellim.

To recap, the principle of what I'm calling Optimized Outputs is to maintain access to both Min and Max limits even when the center position is offset. It's equivalent to what happens with off-center subtrims on the Outputs page if subtrims are set to "normal", but not if they're set to "linear." The desired behavior is represented by the green line in this graph:

The red line represents an offset that's not optimized, so that if full stick travel is used with 100% weight, the result is clipping at one end and stopping short at the other end.

The blue line represents an input without any offset.

My algorithm is to compute the distance the stick is from the end of its travel and reduce the weight of the offset accordingly, so that by the time the stick has reached the end of its travel the offset has been reduced to zero and the output has arrived exactly at its limit, just as it does when no offset is applied.

For any position (P) that a stick can be in within the range of -100% to +100%, the distance from the nearest endpoint (D) equals one minus the...Continue Reading

# Taranis: Here's a pitfall to watch for when using a switch to control a motor.

Posted by Miami Mike | Mar 09, 2017 @ 12:42 PM | 8,747 Views
If you program a switch to operate a motor you'll find that the way switches work seems upside-down. Using SE as an example, SE↑ = -100% and SE↓ = +100%.

The simplest way to correct that is to read the switch with a mix that has a negative weight, like this:
Code:
`CH07 (ESC) SE Weight(-100%) [Motor]`
But here's the pitfall: Suppose you want the motor to come on slowly but turn off immediately. You would probably expect this to work:
Code:
`CH07 (ESC) SE Weight(-100%) Slow(u1.0:d0) [Motor]`
This looks like it would take one second to slowly increase the throttle to full power when SE is switched to SE↑, but immediately turn the motor off when SE is switched to SE↓. However, it works exactly the opposite way. The mix above causes the throttle to jump to full power immediately with SE↑ but slowly decrease to off over the course of one second with SE↓.

This is what works:
Code:
`CH07 (ESC) SE Weight(-100%) Slow(u0: d1.0) [Motor]`
The reason for this is that, contrary to data flow diagrams that were promised to be corrected over two months ago , the Delay and Slow functions are processed at the beginning of a mix, not at the end.

# Taranis: What happens when an offset is applied to a stick-controlled channel?

Posted by Miami Mike | Mar 04, 2017 @ 10:36 PM | 8,978 Views
In a glider setup there are many cases where offsets are applied to stick-controlled channels. The flaps and ailerons are offset upward for reflex and downward for camber. The elevator is offset downward for flap compensation. The rudder is offset left or right when aileron-to-rudder mixing is applied. On top of that, when trim is added to any stick it results in an offset. What happens when an offset is applied?

The control surface moves to the desired offset position when its stick is centered, but when the stick is moved away from center and nears the limit of its travel in either direction, bad things can happen.

When the stick is moved in the same direction that the offset is applied, and the stick input plus the offset reaches or exceeds the -100% to +100% limit, no further movement of the stick in that direction will do anything. As long as you've set up your Outputs screen properly it won't result in any damage or stress, but you still have a region of stick travel that's essentially dead. That's Clipping.

When the stick is moved in the direction opposite the direction the offset is applied, and the stick reaches the limit of its travel, the output will stop short of it's limit and a portion of the output range will be unavailable no matter how you move the stick. That's Stopping Short.

The solution is to handle offsets a little differently by giving stick input priority over them. Compute the distance the stick is from the end of its travel and...Continue Reading

# Taranis: Mixes are for mixing, inputs are for selecting.

Posted by Miami Mike | Mar 03, 2017 @ 10:13 AM | 8,980 Views
Mixes are for mixing, inputs are for selecting.

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:

Code:
```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):

Code:
`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:

Code:
```[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:

Code:
` [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.

# Taranis: Glider Simulator is ready!

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

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.

All of the radio mods and programming setups in my blog are developed with, and designed for, the FrSky Taranis Plus using OpenTX version 2.1.9. If you've adapted any of them to other radios or later OpenTX versions, or found a better way to do what I've described here, please feel free to describe your version or link to it in the comment section below the relevant post.

I'm currently satisfied with OpenTX 2.1.9 and have no plan to upgrade.

# Taranis: glidersim.lua - A New Tool For Setting Up Your Glider

Posted by Miami Mike | Feb 11, 2017 @ 09:41 PM | 9,776 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 | 9,190 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

# Taranis: How the Data Flows

Posted by Miami Mike | Jan 02, 2017 @ 11:33 AM | 9,727 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.
Code:
`[I1] Ail Weight(+100%)`
2. Create a single mix on the Mixes page.
Code:
`[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:
Code:
`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.

Sticky:

# Taranis: The Kapow Trigger!

Posted by Miami Mike | Dec 21, 2016 @ 03:36 PM | 9,762 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

# Taranis: Lock In Your Slider Settings

Posted by Miami Mike | Dec 06, 2016 @ 06:47 PM | 9,918 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

# Taranis: Logical Switches, Part 1

Posted by Miami Mike | Nov 24, 2016 @ 07:34 PM | 9,954 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":

# Taranis: Conserving Switches, Part 2

Posted by Miami Mike | Nov 15, 2016 @ 11:00 PM | 10,112 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:
Code:
```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]
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:
Code:
```CH10 (AilCm)
MAX Weight(GV3) Flight modes(Launch, Zoom, KAPOW, T1-thermal, T3-speed) [CmBase]
*= LS Weight(+50%) Flight mode(T1-thermal) Offset(```

# Taranis: Conserving Switches, Part 1

Posted by Miami Mike | Nov 15, 2016 @ 09:19 AM | 9,874 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
Sticky:

# Taranis: Silent Bluetooth Telemetry!

Posted by Miami Mike | Nov 13, 2016 @ 12:07 AM | 10,889 Views

Bluetooth transmitter from Amazon