Calibrating your servos in OpenTx

Mike Shellim 4 Dec 2013
updated 18 July 2020


In this article, I will explain what calibration is, where it fits in the 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:


The adjustments you make at this level define the servo's limits and centres. The limits you set are the electronic equivalent of mechanical end stops - no matter how aggressive the mixing, the servos will never exceed those limits.

Another perhaps more useful way of thinking about calibration: it maps mixer values to actual servo deflections.

Clipping and calibration mode

In order to keep servo commands within a safe range, OpenTX clips mixer values to +/-100 as they enter the Outputs stage. Therefore, to visualise the servo end points, all we need to do is generate mixer values of -100 and +100. And we can do this by 'passing thru' stick values directly to the Outputs.

This is what my calibration mode does. It allows you to generate mixer values between -100 and +100, on demand, and without affecting the operation of your setup.

Goals of calibration.

The primary goals of calibration are as follows:

Let's look at these in turn:

Setting safe limits

When calibrating servo end points, remember that they represent absolute limits. A good policy is to calibrate for maximum possible travel, as limited by your model's hinges and linkages. (The actual travel will depend on the control rates, which wil be adjusted in the Inputs menu.)

Equalise responses left/right

A key goal is to equalise the control surface responses on the left and right sides, thus compensating for differences in linkage and servo geometry. Doing this in the Outputs frees you from linkage considerations when designing your mixers.

Ensure linear responses

Another goal is to linearise control surface responses. In other words each increment in mixer value causes the same change in control surface angle. If a non-linear response is required, for example for expo or aileron differential, then this should be done in the inputs or mixers, not in the outputs!


The OUTPUTS menu

Okay, let's dive a little deeper into the OUTPUTS menu, where you'll perform the calibration.

The OUTPUTS menu displays all the channels, along with calibration details:

servos menu

Outputs menu

Key fields are shown in bold:

Calibration using Min/Max/Subtrim or Curves

There are two distinct methods of calibration. The first, simpler, method is to 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. To avoid confusion when using a curve, leave Min, Max and Subtrim at their 'pass thru' values. These are -100, 100 and 0 respectively (or -150, 150 and 0 if using extended limits).

Preparing for calibration

Here are a few things to check before your first 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:

Set 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.

Doing 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. 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 provides very fine adjustment, it can be painfully slow. I therefore now use 3-point curves instead. The are much faster to adjust, and provide useful visual feedback.

Calibrating flaps

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

The solution is to:

Using this method, the flap neutral is 'floating'. Once calibration is complete, the neutral position is finalised 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. Adjust the end points to maximum possible travel (limited by linkage).
    4. The flap deflection should vary more or less linearly with the calibration input. If necessary, you can add an extra point to the curve.
    5. Exit the CURVE menu
    6. 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 finalise the control surface travel. The approach that I recommend is:

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

A closer look at Subtrim Mode and PPM Centre

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. By entering CAL mode you can easily see if the centres have drifted. 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

A key goal of calibration is to match up responses between the left and right sides at the servo level. This means that mixers can be designed assuming an 'ideal' model, in other words left and right mixer pairs 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.