F3F competition scene

F3F models at a competition in Wales. Mix adjusters help with trimming.

How to make in-flight adjusters


Optimising the performance of your model involves lots of trial and error - and lots of flights. Not only is it time consuming, but all those landings risk damage to your model. In this article I'll describe how knobs and trims can be programmed as in-flight mix adjusters, for optimising diff, snapflap, motor compensation... that's right - almost anything you like, while you're flying the model.

The result is less fiddling, more flying and a better performing aeroplane!

The volume control

The basis of any adjuster is the volume control. The is simply a mixer, with knob or slider as the input. The mixer is configured so that the output varies between 0% and 100% as the knob is rotated. It's then a question of multiplying the mixer output with the 'thing' you want to adjust.

Okay, so let's design a simple volume control. The adjuster will be Pot1. We'll look at two methods:

Method 1: custom weight and offset

The first method of creating the volume control uses a free mix, with weight and offset set to 50%:

Freemix input=Pot1, weight up/down=50, offset=50 output=CH10

How does it work? Recall that the output of a mix is calculated according to this formula:

output = (input * weight) + offset

We can verify this in the Outputs screen: as Pot1 is rotated clockwise, the value of CH10 varies from 0 to 100.

To reverse the direction of Pot1, long press on the input field, and choose 'invert'.

The benefit of this approach is that all the code is contained in one mixer line. However, it's not so easy to set limits other than +/-100%.

Method 2: custom curve

The second method is also based on a free mix, but using a 2-point curve to define the adjustment limits.

Freemix input=Pot1, curve=2 points [(-100,0), (100,100)], output=CH10

This method make it easier to set custom limits. For example, for adjusting differential, it might be more appropriate to set limits of 10% and 70%:

Freemix input=Pot1, Curve=2 points [(-100,10), (100,70)], output=CH10

Snapflap and diff adjusters

Now that we've programmed our volume control, let's put it to work. We'll look at a couple of complete solutions:

Adjuster for snapflap, diff or expo

With competition gliders, it's really nice to be able to adjust snapflap (elevator to flap mix) on the fly to test different settings. So let's make an snapflap adjuster. We'll give it a range of 0% to 25% of the elevator value.

To do this, we first set up the snapflap mix. We then create the volume control in CH10, using either of the methods described above. Finally, we inject the volume control into the snapflap weight field, thus providing a variable weight:

Freemix:adjuster input=Pot1, curve=2 points [(-100,0), (100,25)], output=CH10

FreeMix:snapflap input=Ele, weight up/down=CH10:adjuster, output=CH5/CH6:flaps

The nice thing about this method is that it can be be used to adjust any field which can be linked to a source, for example diff and expo. Here's an another example, this time using Pot1 to adjust diff between 20% and 70%:

Freemix:adjuster input=Pot1, curve=2 points [(-100,20), (100,70)], output=CH10

Ailerons: diff=CH10, output=CH1/CH2:ailerons

Adjustable snapflap, OpenTX style

Here's another technique which I'll mention in passing. It's one which will be familiar to many OpenTX users. With this method, the adjuster and snapflap mix outputs are multiplied using the 'multiply' mixer function on the second mix:

FreeMix:snapflap input=Ele, weight up/down=25%, output=CH5/CH6:flaps

Freemix:adjuster input=Pot1, curve=2 points [(-100,0), (100,100)], function=Multiply, output=CH5/CH6:flaps

I don't recommend this method since the mixer order is critical. It is however a nice demonstration of the Multiply mixer function. For a deeper explanation of the Multiply function, see Mixer functions.

Using trims as adjusters

The examples above use a pot as the adjuster. Trouble is, these are easily knocked, and the values aren't 'sticky' - they don't hold their value between sessions. It's usually better to use a spare trim lever (these are are sticky).

The FrSky X10 and X12 offer T5/T6 trims which are ideal for the job. Paradoxically the newer X20 lacks these trims, but you can repurpose one of the regular flight trims as mix adjusters. To do this, you must first open the Trims menu and disable the trim (this suppresses the default trim behaviour). There's an example of this in my F3F template, where the throttle trim is repurposed as a snapflap adjuster.