Advanced programming using High Mixes

Mike Shellim 08 May 2015
This article is in permanent beta

"High Mixes" provide a simple way of 'chaining' or 'cascading' mixers in OpenTx, with the following benefits

High mixes are especially useful in models with complex mixing affecting both left- and right-sides of the model.

In order to use high mixes effectively, your control surfaces must be properly calibrated.

1. What is a 'high mix'?

The term 'high mix' is slightly misleading, even though it's in common use. It simply refers to a channel which doesn't drive a servo directly. Instead, the output is used as the source of one or more other mixers. This provides a simple mechanism for chaining or cascading mixers, and is typically used for propagating a single mix (or group of mixes) to two left/right servo channels.

Alternatively, the output of the high mix can be used to update a GVAR. This technique can be used to dynamically adjust diff or expo.

2. Test case: Simple camber mix

Before we look at high mixes in detail, let's create a simple test case, of flaps on a glider.

CH5 (left flap)

Src=LS

 

CH6 (right flap)

Src=LS

3. Setting the mixer weights

In this and all subsequent examples, we'll assume a calibrated setup. This means the weights for the camber mixers will be the same for both left and right flaps - regardless of mechanical differences! (that's the beauty of calibration).

For the sake of argument, let's assume that a weight of 87 provides the response we require for LS:

CH5 (left flap)

Src=LS, weight=87 - camber input

 

CH6 (right flap)

Src=LS, weight=87 - camber input

Because weight is the same on both sides, we can rationalise the setup using a high mix. Let's see how to do this in the next section.

4. Simplifying adjustment using a High Mix

First, identify a free channel to use as the high mix. Any free channel can be used. For our example, we'll designate CH10. The source will be the camber control 'LS'.

Finally, we propagate the camber value to the flap channels. We do this by setting the Src of each camber mix to 'CH10':

CH5 (left flap)

Src=CH10 -- camber mix

 

CH6 (rt flap)

Src=CH10 -- camber mix

 

CH10 ('high mix', outputs camber value)
Src=LS, wt=87

Note how we can now adjust the flap camber on both sides simply by adjusting the weight in CH10 - that's just a single adjustment point. As the flaps have been calibrated, they are guaranteed to track perfectly.

4.1 Extending the high mix with Snapflap

Let's add a snapflap (elevator-to-flap) mix. This is a simple mix which, like camber, must be applied to each flap servo. Rather than adding the mix separately to each flap channel, we can add it to CH10 which now outputs both the camber and snapflap mixes.

CH5 (left flap)

Src=CH10

 

CH6 (rt flap)

Src=CH10

 

CH10 (virtual channel, adds the effect of camber and snapflap)

Src=Elevator, wt=10, NoTrim
Src=LS, wt=87

Note that snapflap can be altered via a single adjustment, affecting both flaps equally.

4.2 Adding a snapflap adjuster

OK, let's get even more ambitious. Let's designate S1 as an adjuster for the snapflap mix. As with the two previous examples, all the work can be done in the high mix CH10. We do this by adding a MULT mixer line, with source = S1. The MULT line is placed immmediately after the Snapflap mix.

The effect is to multiply the snapflap value by -100% to +100% depending on the position of S1. (For more information see How to make in flight adjusters.)

CH5 (left flap)

Src=CH10

 

CH6 (rt flap)

Src=CH10

 

CH10 (virtual channel, adds the effect of camber and snapflap)
Src=Elevator, wt=10, NoTrim -- Snapflap

Multiplex=MULT Src=S1 -- Snapflap Adjuster

Src=LS, wt=87

5. What have we achieved?

Let's take a step back and see what's been achieved: by designing our setup with provision for servo calibration, and by using a high mix

6. Comparing with an uncalibrated setup

Out of interest, let's implement the last example without provision for servo calibration and where the linkage geometry of the left and right flaps don't match. Without servo calibration, each mixer will have to be adjusted individually.

CH5 (left flap)

Src=Elevator, wt=10, NoTrim

Multiplex=MULT Src=S1 wt=50 offset=50
Src=LS, wt=87 - camber input

 

CH6 (right flap)

Src=Elevator, wt=7, NoTrim

Multiplex=MULT Src=S1 wt=47 offset=47

Src=LS, wt=79 - camber input

There are approx 6 adjustment points instead of just 2 for the calibrated version. In short, the code is (a) bloated, and (b) a pain to adjust. Adding more inputs e.g. spoiler will further exacerbate the problem to the point where the setup may become unmanageable. The benefits of servo calibration, in conjunction with high mixes, should be clear!

7. [Advanced]: Combining High Mixes with GVARS

All the examples so far have assumed a single flight mode. Suppose we have three flight modes 'Normal', 'Thermal' and 'Speed'. Suppose also that the camber values differ in each flight mode. We could implement this as follows:

CH5 (left flap)

Src=CH10

 

CH6 (rt flap)

Src=CH10

 

CH10 (virtual channel, outputs flap value)

Src=LS, wt=0, Flight mode=Cruise

Src=LS, wt=35, Flight mode=Thermal

Src=LS, wt=-10, Flight mode=Speed

The lines marked in red provide camber values of zero, 35 or -10 depending on the active flight mode. It will work fine, but it requires three mixers.

A neater way is to use a GVAR, as these are already flight mode aware (for a full discussion, see Using GVARs).

For our example, let's set the camber values in GV1. GV1 can then be referenced in the camber mix.

GVARS

GV1 = 0 (Cruise), 35 (Thermal), -10 (Speed)

 

CH5 (left flap)

Src=CH10

 

CH6 (rt flap)

Src=CH10

 

CH10 (virtual channel, outputs flap value)

Src=LS, wt=GV1

High Mixes and GVARs together are a very powerful combination for reducing mixer bloat.

8. Compared with other operating systems

Support for 'high mixes' is generally non existent in other operating systems, or else poorly documented to the point of unusability (e.g. Futaba 12FG). To the author's knowledge the only other radio with proper support for high mixing is the Multiplex 4000, and that radio is now obsolete. OpenTx rules!

9. Real world example - F3F setup

For an example of how these techniques are used in a full-fat F3F setup, see F3F Setup for Taranis, in particular the Excel documentation.

Mixer screen

From my F3F setup: CH10 is a 'high mix' for flap camber, with four inputs, two of which (CH16, CH17) are themselves high mixes.