CAL Mode - a flight mode for calibrating servos

Mike Shellim 4 Dec 2013
Updated 30 Jan 2020

Introduction to CAL Mode

In this article, I'm going to explain how to add a special mode to your setup, for calibrating your servos. It can be added to any setup without affecting existing functionality.

heading image

What it does

When CAL mode is active, mixers and trims are bypassed, so that your stick commands are passed directly to the channel outputs. Moving a stick from one end point to the other therefore commands that channel between its limits. The actual deflections can be adjusted via Min and Max in the Outputs menu.

Similarly relaxing the stick will cause the servo to move to its centre. You can adjust the centre position via Subtrim, again in the Ouputs menu.

You have a lot of flexibility as to how you implement your CAL mode. For example, you can arrange for ailerons to move together in CAL mode, so you can match their movement precisely.

Adding a CAL mode to your setup

To implement CAL mode, we must arrange for the sticks to generate values of -100, 0 and +100, and for those values to be sent directly to the output channels. A simple way is by a REPLACE mix, with weight = 100%. This mix must be the last in the channel.

Here's an example:


CH 01

[mix 1] ...

[mix 2] ...

[CAL mix] Src=Ele wt=100 Multiplex=REPL Trim=NO Flightmode=FM1

In this example:

When CAL is active, the channel value will vary between -100 and +100 (the maximum possible range) according to the position of the elevator stick. The servo limits and centre can be adjusted as follows:


More about the CAL mix

This section explains how to implement CAL mode in more detail.

Step 1

For each servo channel, add a mixer-line to the end of the mixer list:

Source is the stick/pot/lever to drive the servo. You can choose any control - it need not be the same as the control used in flight. Make sure to specify the raw control for example Ele, Ail (do not select inputs like [I1]Ail as these include rates and expo).

It's a good idea to move related surfaces using a single control, so you can equalise their responses visually. For example, here's a typical scheme for a sailplane:

Step 2 - activate using a switch

The CAL lines may be activated directly via a switch, or indirectly via a dedicated flight mode. The flight mode method has the advantage that the flight mode is displayed on the screen, but requires that you use FM1 (the highest priority mode). If this is inconvenient (maybe you already have flight modes assigned), then the direct switch approach is fine.

Whichever method you choose, I strongly recommend using a virtual switch - the last thing you want is to accidentally activate calibration mode in flight!

Step 3. Set servo rotation and mixer weights

To make the calibration procedure as intuitive as possible, set the DIRECTION of each servo so that:

The easiest way is to try it and see: go into the servos menu; for each servo, adjust SUBTRIM back and forth, and see which way the control surface is moving. If you reverse the direction of a channel, remember that effect of any mix will be reversed. To correct this, reverse the sign of the wt parameter of all the mixers affecting that channel.

If you've set the direction of rotation as suggested above, then the weights in the CAL mixes should all be set to +100. This will ensure that all surfaces will move in a consistent direction during calibration - this is particularly useful for surfaces, like ailerons and flaps, which have been paired up for calibration.


Below is a screenshot from OpenTx Companion, showing two aileron channels and the extra CAL lines. The 'R' at the beginning denotes a REPL directive.

C9X screenshot


For OpenTx 2.0, 2.1, 2.2

SF-down to activate CAL mode

Stick calibration

For correct operation of your radio, remember that your sticks must also be properly calibrated as well! This is achieved via the OpenTx hardware calibration menu (Long press Menu -> Page x 8)