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 extreme power!
Sailplane example
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 started! 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
There are two types of flight mode:
- the default flight mode. This is created by the system.
- 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.
Managing flight modes
The Flight modes menu is your friend! From this screen you can browse, add, delete and modify flight modes. The default flight mode is shown at the top, followed by any user-defined flight modes.
Each flight mode has a name, and an Active condition.
The Default flight mode
The default mode is shown at the top of Flight modes screen. If you don't create any additional flight modes, then the default flight mode is always active - without you knowing, or needing to know.
The initial name of the default flight mode is 'Default Flight Mode' but you can change it to something more meaningful like 'Cruise'.
User-created flight modes
To realise the power of flight modes, you must create 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 priorities
Every flight mode has a priority. Priorities are used to resolve conflicts, when more than one flight mode has its Active condition satisfied.
The priority of a flight mode is related to the position in the list - the higher in 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.
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.
Example: a scheme for F5J
Okay, so that's the theory, let's get down to business! Here's the process for developing a flight mode scheme for an F5J model. These models feature electric motors and crow brakes.
Identify the primary phases of flight
The first step is to list all the phases of the flight which should have their own trims, rates or mixers. The phases should cover the entire flight with no gaps, remembering that only one flight mode can be active at any one time. For an F5J model, the the flight phases might be Normal, Landing and Power.
Convert the phases to flight modes
Next, identify alternatives for particular phases. On an F5J model, the Normal phase might be replaced by a trio of Thermal, Cruise or Speed phases. So the final set of flight modes would be (Thermal/Cruise/Speed), Landing, Power.
Assign switches
Avoid physicial switches where possible. So in our example, Power mode can be activated automatically when the motor runs (more on that later). Same applies to the Landing mode- it can be automatically activated when the crow stick is pulled. That leaves Thermal, Cruise or Speed. These can be conveniently assigned to a 3-position switch.
Assign priorities
Power should always be high priority, as this ensures that the motor behaves in a predictable fashion (that is, it cannot be blocked by another higher priority mode). Landing will be next priority, followed by the Thermal/Cruise/Speed trio. The last three are selected by a 3-position switch so are already mutually exclusive - this means that priorities relative to one another are not significant.
Implementing an F5J scheme
Continuing with our F5J example, here's how it might look in the Flight modes menu:
There are four user-defined flight modes, each associated with a physical or logical switch. Let's look at these in descending 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 let's examine how Ethos chooses the active flight mode. Suppose that THROTTLE UP is false, and CROW STICK DOWN is true. Starting with the highest priority flight mode, Ethos proceeds down the list, looking for a match:
- The highest priority mode is Power, however its condition ('THROTTLE UP') is False, so it cannot be active.
- The next priority is Landing. 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, overriding all others.
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
So far, we've seen how flight modes are managed. In the following sections we'll learn how to put them to use. We'll start with trim behavioiur.
Trims can operate in two ways with respect to flight modes:
- Independent trim 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 ailerons since aileron trim does not tend to vary with flight mode.
The behaviour is defined in the Trims menu.
Enabling/disabling mixers
Mixers are active in all flight modes by default. However sometimes a mix should be active in some flight modes only. With an F3F slope racer, for example, snapflap might be enabled in Normal and Speed modes, but disabled in Thermal and Landing 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.).
To trigger special functions
Flight modes can be used in special functions, as the trigger condition. 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 switches
In 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 an example switch 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.
D:thermal
1:speed condition=SA-up
2:cruise condition=SA-mid
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:
D:thermal_1
1:speed condition=SA-up
2:cruise condition=SA-mid
4:thermal_2 condition=SF-down
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 built-in priorities.
Auto-activation
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%
FM1:Power ActiveCondition=LSW1
(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%
FM1:Landing ActiveCondition=LSW1
Landing mode would typically activate a Butterfly mix.
Wrapping up
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.