Calibrating your servos in OpenTx

Mike Shellim 4 Dec 2013
updated 20 May 2020


Calibration is the procedure for mapping your mixer design to a real model. In this article, I will explain where it fits in the overall workflow, and how to do it correctly. I'll also explain the benefits of calibration-centred design.

To get the best out of this article, you should be already be familiar with the Key Concepts.

What it is

Calibration refers to the adjustments you make in the OUTPUTS menu. These define the operating range of each servo, in other words the end limits and centre positions corresponding to mixer outputs of -100, +100 and zero.

The end limits will normally be set to the maximum possible (without binding linkages!). The centre will normally be adjusted to the control surface neutral position.

Calibration is also where you balance up the left and right sides, compensating for differences in linkage and servo geometry.

Finally, calibration is where you can linearise control surface responses, in other words each increment in mixer value increment provides approximately the same increment in deflection angle at the control surface.

It's important to remember that calibration is concerned with setting maxima. The actual travel at full stick (often known as 'rates') will be the same or less, and will be set later in the INPUTS menu.



Summary of goals

How calibration works

Calibration is controlled through the OUTPUTS menu. Servo end points are adjusted via Min and Max, and the centre is adjusted via Subtrim.

In order to visualise the end points during adjustment, we must generate mixer values of -100 and +100. Likewise to calibrate the servo centre, we must generate a mix value of zero and adjust Subtrim. An easy way to generate the required mixer values is to install my calibration mode. It's highly recommended to install this, as it allows you to perform a calibration on demand, even after you've set up rates and mixers etc.

Now let's dig a little deeper in the Outputs menu...

The OUTPUTS menu

The OUTPUTS menu is where you'll do the calibration. There is one line per channel:

servos menu

Outputs menu

Key fields are shown in bold:


Two methods of calibration

There are two ways of calibrating an output. You can either adjust Min, Max and Subtrim. Alternatively you can specify a curve.


CH1 calibrated via min/max/subtrim
CH3 calibrated via curve

The two methods in more detail:

Note that OpenTX applies Min, Max and Subtrim regardless of whether a curve is specified. Therefore, if using a curve, it's best to leave Min, Max and Subtrim at their 'pass thru' values to avoid confusion. The pass-thru values are -100, 100 and 0 respectively (or -150, 150 and 0 if using extended limits).

Preparing for calibration

'Calibration mode'

Consider adding a 'Calibration Mode' to your setup - it allows you to generate calibration reference values on demand.

Set the servo direction

Calibration is easier if your servos rotate in a consistent direction. The convention I use is:

More info in calibration mode.

Choose the subtrim mode

The SUBTRIM MODE parameter determines the behaviour of the end points as subtrim is adjusted. Leave at the default ("^"), so adjusting subtrim will not affect the end points. More on this later.

Performing the calibration

So now you're ready to start calibrating your servos. The method you use will depend on the particular control surfaces:

Calibrating ailerons, elevator, rudder, V-tail

Min/Max/Subtrim method is usually sufficient for these. The goal is to (a) set the neutrals, (b) maximise travel and (c) achieve a linear response.

Here's the procedure:

  1. Open the Outputs menu
  2. Activate Calibration Mode
  3. Adjust SUBTRIM so that the control surface is at the correct neutral position.
  4. Adjust MAX and MIN for each servo:
    1. First, adjust for max possible control surface travel
    2. Next, refine so that control surface travel is equal up/down (or left/right).
    3. Finally, refine so that left and right surfaces match (paired surfaces only).
  5. Exit from Calibration mode

The servos are now calibrated.

(NOTE: While the Min/Max/Subtrim method is very accurate, it can be painfully slow in OpenTx 2.0. I have therefore started experimenting with 3-point curves. Curves use coarser increments so is a whole lot faster, and resolution is sufficient.)

Calibrating flaps

Flaps are characterised by grossly asymmetric movement which means that they cannot be calibrated using the method described in the previous section (which assumes symmetrical movement). Also, flap deflections are often large, and it's important that they track each other precisely.

The solution to both these issues to

Using this method, the flap neutral is 'floating'. Once calibration is complete, the neutral position is set using an offset mix.

Here's the procedure in detail:

  1. Set Min, Max and Subtrim to 'pass thru' values
    1. Open the Outputs menu
    2. For each flap servo, set MIN, MAX and SUBTRIM to -100, +100 and 0 respectively (or -150, +150 and 0 if using extended limits).
  2. Calibrate the LEFT flap servo:
    The aim is to (a) set the travel limits, and (b) to obtain a linear response. The flap neutral is not considered in this step.
    1. Go to the CURVE column, and define a 2-point curve with points
      (-100, -100) and (100,100).
    2. Enter Calibration mode
    3. Move the stick back and forth, and adjust the points to provide maximum possible travel (limited by the flap linkage).
    4. If the linkage geometry is good, the flap deflection will vary approximately linearly with the calibration input. This is what you want! If necessary, you can improve linearity by adding an extra point to the curve.
    5. OK, so now you have fixed the end points, and the flap response is roughly linear.
    6. Exit the CURVE menu
    7. Exit Calibration mode
  3. Calibrate the RIGHT flap servo.
    Now we adjust the right flap to match the left flap, and we do this using a multi-point curve.
    1. Go to the CURVE column and define a 5-point straight line curve
    2. Enter calibration mode
    3. Move the stick to the 0/25/50/75/100 % positions; at each position, adjust the corresponding point so that the right flap exactly matches the left flap. (Depending on the linkage geometry, it may be necessary to go back and reduce one or other end point on the left flap.)
    4. Exit the CURVE menu
    5. Exit Calibration mode

The flap servos are now calibrated, and the flaps should track perfectly. However the flap neutral is floating. To fix this we need to apply an offset at the mixer level as follows:

  1. Create a mix in each flap servo channel.
  2. For each mix, set src = 'MAX'. This generates a fixed offset.
  3. Adjust the weight of 'MAX' mix, until the flap is at the correct neutral.

Other mixes can of course be added to the flap channels, for example for roll control, camber etc.

Adjusting travel of ailerons, elevator and rudder

After calibration, you can set the actual control surface travel. The approach that I recommend is:

  1. Primary flight controls (elevator, aileron and rudder): do all the travel adjustment in the INPUTS menu. Set the downstream mixer weights to 100%.
  2. All other interactions: adjust in Mixers menu.

Subtrim Mode, PPM Centre

In this section, I'll go into a little more detail about Subtrim Mode.

As we've seen, the Servos menu has a column for 'Subtrim Mode'. This can be either '^' or '='. There are some significant differences:

If you change modes, the end points will jump, so you once you choose a mode you should stick with it.

So... which mode should you use? I would strongly recommend using the default option ('^'). Subsequently, if you to need to correct a drifting control surface (see below), then it's quicker to adjust PPM Centre which offsets the whole servo response. The adjustment to PPM Centre should also be done in Calibration mode.

Correct drifting control surfaces

All models will suffer from bent linkages or drifting servos during their lifetime. On other systems, these slight errors can often go unnoticed or be confused with trim settings.

With OpenTx and a properly CAL'd setup, you can easily check for problems - go into CAL mode and see if the calibrated neutrals have changed. If the drift is small, it's not necessary to do a full recalibration - simply adjust PPM Centre (do this while still in CAL mode). This will offset the whole servo response. Once you exit CAL mode, any trim offsets will be restored.

By doing a quick CAL check before every flying session, you can ensure that your trim offsets are consistent, regardless of mechanical or temperature issues.

Trims => Subtrims - AVOID!!

OpenTx allows you to re-centre your trims, by moving the offsets to SUBTRIM. Obviously, using this feature will trash your calibration. Avoid!


Calibration-centred design

Even greater benefits can be achieved by designing your setup with calibration in mind from the start. I call this 'calibration-centred design'. There are two main aspects:

1. Incorporate a CAL flight mode

The first step is to reserve FM1 as your CAL mode. That way, you can check the calibration at any time for drifting servos, bent linkages and so on.

2. Use GVARs and cascading mixers

Mixers should be designed assuming an 'ideal' model, in other words left and right mixer pairs should have identical weights. By using GVARs and/or cascading mixers, you can have a single menu point for each pair of adjustments. This results in:

Calibration the easy way

All the canned setups published on this site have CAL mode already built-in, protected against accidental operation.