Servo in SimVimCockpit
Servo, Tech Guide

Using servo for your cockpit gauges

A typical servo has a small DC motor with metal or nylon drive gears to reduce rotation speed and increase torque. The output shaft can be rotated to a specific angle (or moved to a specific position for the linear servo) according to the pulse signal width.

The potentiometer on the shaft and a control circuit allow to monitor the angle of the shaft and turn the motor in the correct direction until the angle is correlated with the pulse width.

To properly control the servo drive, its internal circuit must receive a pulse every 20 ms. The width of this control pulse determines the angle of rotation for the servo and it can be in range of 0,5-2,5 ms (500-2500 us). Note that this range can vary for different brands, it can be 400-2000, or 1000-2500 etc. Even if you have several servos of one manufacturer all of them may have slightly different control ranges.

  • Use powerful stabilized DC power supply for servo powering (not USB!)
  • Typically most servos have Operating Voltage Range of 4.2 - 6 Volts
  • Ensure you are using the optimal Voltage for your servo (+5v mostly is good)
  • Be sure to connect the grounds of the controller, servo and power supply together.
  • Servo has three wires: power, ground, and signal.
    The power wire is typically red, the ground wire is typically black or brown

Calibrating the servo for specific instrument dial

Typically, a servo has 180° rotation range. If your gauge has lesser angle range (as some fuel gauges or some engine parameters gauges), just use a part of full servo shaft rotation. Print the dial for chosen instrument on the paper, place it on your servo, attach an arrow. Then calibrate this gauge in the SimVim plugin.

Keep in mind that the minimum and maximum position value number can be correlated with the leftmost and rightmost positions of the servo arrow, or vice-versa. It depends on the particular servo model.

If your instrument has a dial scale larger than 180° you can increase the angle range using 3 options:

1. Adding a step-up gear

Adding external step-up gear (e.g., 1.5:1 or 2:1 ), this method doesn't require to disassemble the servo, you need to find a couple of suitable gearwheels and make a support constuction for gear. Gear ratio can be from 1.5/1 to 2/1 to extend the servo rotation angle by 90-180°. Do not make the rotation angle of more than 360°.

2. Replace internal potentiometer

Replace the internal potentiometer with another one with a large rotation angle (270-280°). You will need to remove the limiter for the output gear. The potentiometer can be placed outside of servo casing. Make sure that the potentiometer's resistance change is linear, and that it has the same max resistance value as the original one. This is a very good method to use, especially when using a high-precision potentiometer.

3. Using internal gearwheel axis

You can try to extend the shaft of the penultimate gearwheel, to use it as the new output shaft to provide larger rotation angle. However, it is likely that using this gearwheel will make the arrow rotation angle much larger than 360°, depending on the last gears ratio.

svimg svimg svimg svimg svimg svimg svimg svimg svimg svimg

Video showing a modified servo, with an output shaft placed on the penultimate gear. This video not represents X-Plane dataref output, the servo is controlled with test program using potentiometer.

Note that the ratio of the final gears in this servo was more than 3:1 and with skipping the last gear the rotation angle was increased from 180° to 580°. So, using this modified servo for a gauge having less than 360° dial scale not a full range of the servo is used ( in this case 500-1600 microsecond instead of original 500-2200).

Calibrating the servo for non-linear instrument dial

Some instrument has non-lineary scaled dials. In this case you can calibrate such servo gauge in the SimVim calibration menu adding more key points for several sectors on the gauge dial. Most non-linear scaled instrument dials are just divided into several linear segments.

In this case you should determine each segment and write them down for use in the library function for servo control.

Let's take for example a typical B200 Prop Speed gauge. Its dial can be divided into three linear sectors - the first sector has 105° angle, the second 150°, the third 67°.

If a 2:1 step-up gear is used for the servo, we have a 360° arrow stroke and you can use it for such gauge and calibrate it for 4 key-points in the calibration menu. Actually, both 2nd and 3rd sector have the same scale (or almost same), this dividing was made to show the principle of using the "servoGauge" function for multi-scale gauges.

My servos:


Example of the servo gauge controlled by RPM dataref (this is old video 2013, the servo controlled with ARDref plugin):

Example: Rudder trim position indicator for Baron 58
This example uses one encoder attached to the trim wheel and a servo that rotates the disk with the scale. The servo used here Rudder trim position indicator :

Video on youtube

© Copyright 2012-2018 - SimVim