Flight modes in Ethos
The power of flight modes
Flight modes are a cool feature of high end operating systems like Ethos. At their simplest, flight modes allow you to switch quickly between different trim settings. However they offer many other benefits.
In this article, I explain how to set up flight modes in Ethos, and how to take advantage of their power.
Let's suppose that you're flying a sailplane, and you find a thermal. To take advantage, you might want to:
- dial in some up-trim
- increase the camber
- increase the aileron differential
If you made the adjustments manually, the thermal would be gone before you finished! But by setting up a 'thermal' flight mode, you could accomplish all three operations at the flick of a switch.
The same applies for other phases of flight like cruise, landing and so on. By setting up a flight mode for each phase, you can quickly alter the behaviour of the model.
Flight modes overview
Every model in Ethos has one or more flight modes. These comprise:
- the default flight mode. This is always present.
- user-defined flight modes. These are optional additional flight modes that you create yourself.
Ethos maintains a simple rule:
- One - and only one - flight mode is active at all times.
The flight mode which is active is called the active flight mode. When a flight mode is active, all its dependent settings (like trims, mixers, special functions etc.) are also active. Those of any other flight modes are inactive. We'll see later how how Ethos determines the active flight mode.
Designing a flight mode setup
Flight modes should represent distinct phases of flight. For example, a sailplanes might have four flight modes 'Launch', 'Cruise', 'Thermal' and 'Landing'.
An example of a poor combination would be 'Landing' and 'Crow brakes', since their functions overlap in time. In general, flight modes should be broad in scope rather than being tied to specific mixers.
Managing flight modes
Flight modes are listed in the Flight modes screen. The default flight mode is always shown at the top, followed by any user-defined flight modes. Each flight mode has a name, and an Active condition. From this screen you can add, delete and modify flight modes.
The Default flight mode
The default mode is always present. It's shown at the top of Flight modes screen, with a blank Active condition.
If you don't create any flight modes, then the default flight mode is permanently active - without you knowing, or needing to know.
The initial name is 'Default Flight Mode' but you can change it to something more meaningful.
User-created flight modes
To realise the power of flight modes, you must define your own!
To create a flight mode, click the '+' at the top right of the Flight modes menu. This opens the flight mode editor. The key parameters are name and condition:
- Name - a label like 'Launch', 'Thermal' etc.
- Active condition - a physical or logical switch for activating the flight mode. The condition must be satisfied for the flight mode to be active.
Flight mode priority
Every flight mode has a priority. Ethos uses priorities to resolve conflicts, when more than one flight mode has its Active condition satisfied.
The priority of a flight mode is related to its position in the list - the higher up the list, the higher the priority. The exception is the default flight mode - although it is shown at the top of the list, it has lowest priority.
How Ethos determines the active flight mode
Ethos uses a simple rule to select the active flight mode:
- The active flight mode is the highest priority flight mode whose active condition is True.
Let's look at an example. The screenshot below shows a typical setup for an F5J electric sailplane.
In addition to the default flight mode (named 'Thermal') there are four user defined flight modes, each associated with a physical or logical switch. Let's look at these in order of priority.
- Highest priority is Power, activated by logical switch THROTTLE UP
- Next is Landing, activated by logical switch CROW STICK DOWN
- Next is Cruise, activated by SA-mid
- Next is Speed, activated by SA-up
- The lowest priority flight mode is Thermal (since it's the default).
Now imagine that THROTTLE UP is false, and CROW STICK DOWN is true. Let's examine how Ethos chooses the active flight mode.
- The highest priority mode is Power, however its condition ('THROTTLE UP') is False, so it cannot be active.
- The next highest priority is Landing mode. Its condition ('CROW STICK DOWN') is True, so this is the active flight mode! We need look no further...
- The remaining flight modes are lower priority. Since the active condition has already been determined, they are not considered.
Suppose that THROTTLE UP also becomes True. Then Power mode would become the active flight mode.
If neither THROTTLE UP nor CROW STICK DOWN' is true, then the flight will depend on the position of SA.
The active flight mode is highlighted, and also displayed in the home screen.
Flight modes and trims
Trims can operate in two ways with respect to flight modes.
- Independent per flight mode. With this option, moving a trim affects the active flight mode only. This is often appropriate for the elevator trim.
- Shared across flight modes. With this option, any change in the trim value in the active flight mode is reflected in all other flight modes. This is appropriate for aileron trim since the trim is generally the same regardless of flight mode.
The behaviour is defined in the Trims menu.
Putting flight modes to use
So far, we've seen how flight modes are managed. In this section, we'll learn how to put them to use.
There are essentially four contexts in which Flight modes can be employed: (a) to enable/disable mixers, (b) in special functions, (c) in logical switches and (d) to set rates. Let's look at each in turn:
Flight modes may be used to enable or disable particular mixes. With a sailplane, for example, a crow compensation mix might be enabled in Landing mode, and disabled in all other modes. Or, on a slope racer, snapflap might be enabled in Normal and Speed modes, but disabled in Thermal mode.
By default, mixers are active in all flight modes. To restrict a mixer to just a subset of flight modes, open the mixer menu and edit the Flight Modes field, ticking the flight modes in which the mix should be active. The flight modes are shown by their priority ('D' for default, '1', '2', '3' etc.). The mix will be inactive (ignored) in flight modes which are not selected.
To trigger special functions
Flight modes can be used as conditions in special functions. One common application is for a flight mode to announce itself using a Play Track action:
In logical switches
Flight modes can also be used as conditions in logical switches. For example, you might want behaviour to change within a flight mode, depending on a switch. In the code below, LSW10 is true if flight mode 1 is active and SA is down
To set rates
Flight modes can be linked to rates. The screenshot below shows the Ailerons mix. If FM1 is active, the rate is 50%. For FM2, the rates is 75%. For all other flight modes, the rate is the default 90%. For safety, the default value should always provide sufficient control of the model - never set it to zero!
Programming flight mode switchesIn this section, we'll look at the most common way of activating flight modes, namely using a switch.
Two or three flight modes
For selecting up to three flight modes, a single 2- or 3-position switch is sufficient. Here's a typical scheme for three flight modes:
- SA-up: speed
- SA-mid: cruise
- SA-down thermal
And here's how it might be implemented in the Flight modes menu. Note that only two extra flight modes are required, since the third position will naturally fall back to the default ('D') flight mode.
Four or more flight modes
If there are four or more flight modes, two or more switches will be required. Below is a typical scheme for four flight modes. From the user's point of view, it works like this:
- SA-up: speed
- SA-mid: cruise
- SA-down [slaves to SF]:
- SF-up: thermal-1
- SF-down: thermal_2
And this is how it might be implemented in the Flight modes menu:
Let's check that it works. Imagine that SA is down and SF is up. Ethos starts from the Speed flight mode (the highest priority mode). The condition evaluates to False (since SA is not up). So Ethos steps to the Cruise line. Its condition is also False. Next, Ethos tries Thermal_2, which is also False.
Having exhausted the list, Ethos falls back to the default flight mode, Thermal_1, as intended.
Note that no logical switches are needed, even though the condition for thermal_1 is logically 'SA-down and SF-up'. This is one of the benefits of using flight modes.
Sometimes it's useful for a flight mode to be activated without user intervention. An example is an electric model with a 'Power' flight mode. Instead of requiring a switch, Power mode should be activated automatically when the motor is running.
To determine if the motor is running, we define a logical switch to check if the motor output is above the 'idle' value (−100%). Next, we specify the logical switch as the condition of the Power flight mode:
LSW1 CH7 > -100%
(Digression: for safety, there should also be an arming switch which is independent of flight mode. The state of the arming switch will determine whether the motor can actually run.)
Similarly, a Landing mode might be activated by pulling on the throttle stick. When the stick is at the top, it carries a value of 100%, so we can use the following code to activate Landing mode:
LSW1 Thr < +100%
Landing mode would typically activate a Butterfly mix.
Flight modes are a powerful feature in any RC system, and particularly so in Ethos thanks to the multiple contexts in which they can be employed.