Five Flight Modes using One 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, so data errors are less costly.
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:
- SA↓ Pass Through
- SA- Angle
- SA↑ Use SB Flight Modes
- SB↑ Altitude Hold
- SB- Loiter
- SB↓ Return to Home
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.
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.
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.
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.
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:
|4||Return to Home||L05|
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.
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.
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.
- In iNav 1.9, you no longer need to have angle active with nav_althold, it will trigger it by its self
- In iNav 2.0 I have used nav_cruise in combination with nav_althold to use 3D cruise, as this is better than alt hold.
This should be it, you should be all set and good to go.
Full OpenTX Code
|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|
|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|
|SF08||FM2:Alt Hold||Play Track||fm_ahold||---|