RC glider with pilot

More about mixers


In this section, we'll look at mixers in more detail (for a primer, please see Key concepts first). We'll explore offset, expo, diff, functions and curves.

Mixer offsets

The Offset parameter is used to shift the mixer output up or down. Offset is applied after weight:

Mixer value = (Source * weight) + Offset

Offsets are useful when the mix's starts from one end of stick travel instead of the centre.

Example: motor compensation

Motors often produce an upward pitching moment. To compensate for this, it's common to add a 'motor compensation' mix to the elevator channel.

The mixer output must be zero when the throttle is fully back (idle). We achieve this by setting offset = weight. The output will then vary between 0 and (2* weight) as the throttle stick is moved upwards.

In this example, the compensation mix generates up to 40% elevator movement:


Src=Thr, wt=20%, offset=20 -- motor compensation mix

Note: offsets should be used sparingly! Do not use them to make ad-hoc adjustments to servo centres - adjust OUTPUTS->Subtrim for that.

Mixer curves (diff, expo, functions and curves)

In addition to weight and offset, OpenTx offers one additional parameter from the following list of choices:

The first three options can in fact all be represented as curves - think of them as short cuts to particular curve types.

Including/excluding trims

By default, trim values are included in sources. You can exclude trims on a per-mixer basis by unchecking "Include Trim" in the mixer dialog.

Order of processing

When processing a mixer, OpenTx first applies the function (function, curve, expo), followed by weight, then offset is added, and finally the trim value. The exception to this rule is diff which is applied last. Order may be important when combining operations especially where offsets are involved.

How to set aileron differential

Setting aileron differential in OpenTX/EdgeTX can be a little confusing. You'll notice that there is a 'diff' parameter in both the Inputs and Mixer menus. So which should you use to implement aileron diff? Let's see first what happens if diff is specified in the input. We'll use a value of 20%:


Src=Ail, wt=90%, expo=10, diff=20

It looks good, but there's a big problem: the diff is applied to the aileron stick. If you try this, the diff will actually be zero. Instead, you'll get 20% less aileron travel when moving the stick on one side compared to the other. Clearly that's not what's wanted!

The correct way is to apply diff separately to each aileron mix:


Src=Ail, wt=90%, expo=10, diff=0


CH1:right elevon

Src = [I1], wt=100%, diff=20%


CH2:left elevon

Src = [I1], wt=−100%, diff=20%

To summarise: Do not specify diff at the Input level. Specify diff separately for each aileron mix!

TIP: Use a GVAR to supply the diff value. That way, you can set diff for both channels with a single adjustment.

Default mixer settings

When you create a new mix, the initial settings are weight=100% and offset=0, diff/expo=0 and no curve. The source value is therefore passed through unchanged.

Mixer best practice

A couple of tips: