FrSKY Taranis - 5 modes in iNav using 1 radio channel

I decided to set up my iNav slightly differently to how most people seem to, when perusing the tutorials on YouTube. Most people just assign multiple switches, each to its own channel, which me seems to be a) a waste of channels and b) makes things more complicated in iNav. Before people argue that there are 16 channels on SBUS, so what does it matter if we use multiple switches over multiple channels, the answer is speed and reliability. The Taranis only sends out 8 channels per transmission, therefore if you have more than 8 channels, it takes 2 transmissions to get all the data to the receiver. If all the data is sent with every transmission, there is a quicker response from the aircraft, but also if you're pushing the limits of the range, you get all the data again in the next transmission, rather than having to wait for the 2nd half before receiving the packet with the lost or corrupted data. But, to be honest, even if I needed 9 or more channels due to pan and tilt or other features, I'd still use this method for flight modes, so that they are all on a single AUX channel in iNav, which makes life simpler.

In my setup, I have used switches SA and SB, located on the throttle side of the Taranis (Mode 2). Of course you can use whatever switches you want, just translate them across. I have also set my Taranis switch check so that when the model is loaded or the Taranis is switched on, it makes sure the SA switch is in the Pass Through position and the SB switch is in the Altitude Hold position. My switch positions are:

You can use whatever switch combinations you like for whichever modes you like; you could even expand to use another switch and add more modes. The only thing you need to be aware of is that some modes need to work together, for example Altitude Hold needs Angle to be active, so these mode need to be next to each other, this way in iNav we can leave Angle on for Angle and any mode next to it.

I show how to do the Taranis parts in OpenTX Companion, however they can all be done directly on the Transmitter too. All iNav parts will need to be completed in the iNav Flight Configurator application.

Step 1 - Add a mix

Our first task is to add a mix for the flight modes on the Taranis. This is the only channel that will communicate the flight mode via SBUS. I set mine to channel 5.

Taranis modes setup, including the flight modes switch.

In the OpenTX Companion double click CH5 and give the channel the Name Modes and set the Source to either switch SA or SB. That's the transmission side taken care of, the rest is done through the magic of logical switches and special functions.

Taranis Channel Setup screen, showing the settings for the Flight Mode Switch.

Step 2 - Create the Logical Switches

Our Logical Switches are pretty straight forward; all we are doing is creating a map of logical switches based on the combination of physical switches.

Taranis logical switches for flight mode physical switch combinations.

The Function column sets up how the first test on the switch is going to work. All we are doing is testing the position of the switch (V1) based on the value (V2) returned by it. The confusing part with the front facing switches is that a positive value is returned in the down position, and a negative value in the up position. Knowing this, we can see that L01 is saying:
IF SA is down THEN L01 is active
The next step is to add the second switch. For the second switch, SB, we only want it to work when SA is in the up position, so that we are dealing with a specific flight mode. For these 3 modes, the first part of the logical switch is all the same, but we add in the second switch and its position in the AND Switch column.

Step 3 - Assign the Logical Switches to flight Modes

This step is optional, but it makes sense to me that we are using the switches to change flight modes in iNav, so I also want it to change the flight modes on the Taranis. At the very least, we will get visual feedback on the Taranis its self as to which mode we are in. Plus it's so quick and easy to do, it's not worth not doing it.

Taranis flight mode setup.

Start with Flight Mode 0 and work through to Flight Mode 4, giving each a relevant Name and setting the appropriate Logical Switch in the Switch list. One thing to be aware of, the flight modes are 0 indexed, whereas the Logical Switches are indexed from 1. In other words, subtract 1 from the Logical Switch number to get the Flight Mode number or add 1 to the Flight Mode number to get the Logical Switch number. I have set my flight modes up as follows:

Flight ModeNameSwitch
0 Pass through L01
2Altitude HoldL03
4Return to HomeL05

If you choose not to use flight modes, just use the Logical Switch number in the Special Functions.

Step 4 - Create Special Functions to adjust the output channel and give feedback

This is where the actual magic happens. We use the Flight Mode (or Logical Switch if you chose not to set up the Flight Modes) to set the output for the channel and provide spoken feedback if you wish.

Special Functions in the Taranis to enable the 5 mode switch on a single channel.

SF1 through SF5 are what controls the output of the channel by using the Override CH5 action. Each flight mode, FM0 to FM4, (or logical switch L01 to L05 if you're going that route) outputs a different value on the channel from 100 to -100, which in iNav can be used to switch the modes on the flight controller. Just make sure that you tick the boxes to say Enable those Special Functions.

SF6 through SF10 are optional, and there only to provide audible feedback of the flight mode change. I created custom audio files to read out the flight modes.

The Taranis is now set up, ready to go.

Step 5 - Set the modes in iNav

Remove your props before setting this up, as you will need to plug in your flight pack to power the receiver. This is correct in iNav version 1.8.1.

Open iNav Configurator, plug in your flight pack, connect the flight controller to the USB port and click connect. Head over to the Receiver tab and cycle through your flight modes to verify that CH 5 is changing. Next head over to the Modes tab.

Setting the flight modes in iNav using 1 channel.

In the above image, I have removed a few flight modes so that we can see what is happening on one screen. It works in the same way that it would with multiple switches, except you are only dealing with 1 channel. You move the switch on the Taranis to a flight mode, then Add Range in iNav for that mode and position the sliders appropriately. In the image, the Flight Mode Altitude Hold (FM2/L03) is selected on the Taranis. As nav_althold requires Angle to also be active, the marker is in the ranges of both ANGLE and NAV ALTHOLD.

This should be it, you should be all set and good to go.

Full OpenTX Code

Select the first Logical Switch and first Special Function positions available on your Model

Logical Switches

# Function V1 V2 AND Switch Duration Delay Description
L01 a > x SA 33 L13 --- --- Pass through
L02 a = x SA 0 --- --- --- Angle
L03 a < x SA -33 SB↑ --- --- Altitude Hold
L04 a < x SA -33 SB- --- --- Loiter
L05 a < x SA -33 SB↓ --- --- Return to Home

Special Functions

# Switch Action Parameters Enable Description
SF01 FM0:Passthrough Override CH5 100 ✔ ON
SF02 FM1:Angle Override CH5 50 ✔ ON
SF03 FM2:Alt Hold Override CH5 0 ✔ ON
SF04 FM3:Loiter Override CH5 -50 ✔ ON
SF05 FM4:RTH Override CH5 -100 ✔ ON
SF06 FM0:Passthrough Play Track fm_pass ---
SF07 FM1:Angle Play Track fm_angle ---
SF08 FM2:Alt Hold Play Track fm_ahold ---
SF09 FM3:Loiter Play Track fm_loitr ---
SF10 FM4:RTH Play Track fm_RTH ---