Using small RC hobby servos can be a quick and easy way to create most of mechanical instruments/gauges for your home cockpit.
The only drawback can be that servos have some noise and quite small range of shaft rotation (typical 180°) which can be easily increased by adding a step-up gear.
As for noise, it is noticeable only at high speed, if the gauge is intended to show a slowly varying value, the noise will be insignificant. You can also find servos with minimal noise.
In SimVimCockpit multiple servos are controlled using additional Servo controller board. You need one Uno/Nano Arduino board with special SimVimServo firmware onboard, that you should upload from the SimVim plugin menu. Another option is using specialized servo controller (WitMotion), described below on this page.
This "slave" controller board is connected with the Master board via serial interface, using Rx/Tx port #2 on the master board. Connect the Tx pin (#1) of the slave board with Rx2 pin (#17) of the master board, and "slave" Rx (pin 0) - with the "master" Tx2 (pin #16). Note: before v 0.9.34 the Port#1 was used for Servo control, now it's used for SimVim Stepper and Matrix boards only.
The master board transmits all data intendent for the servos to the slave board. The slave board firmware generates correct control pulses width for positioning multiple servos.
Note 1. Never forget to connect the GNDs of each board ( and other devices as well) to the common GND wire.
Note 2: When you need to upload Servo control firmware to the slave board you need to disconnect the Rx,Tx wires before uploading! To simplify this you simply can add a "shut-off" switch breaking this two wires.
The slave board receives all data from the master controller board only. So, don't keep it connected to USB port after the SimVimServo firmware upload. You can use any +5V source connected to the slave board using USB connector, or +5V pin.
Servo has three wires: power, ground, and signal. The power wire is typically red/orange, the ground wire is black/brown and signal is yellow/white. Typically most servos have operating voltage range of 4.2 - 6 Volts.
For all servos used in your system (even if you have only 1-2 servos) you should always use an additional power supply! Even one single servo can sink several hundred milliamperes!
Use an external stabilized 1-10A DC power supply for servo powering! One of the best ways is using an old computer power supply. It can be any old AT PSU (its +5V output) that can be found in your garage.
Be sure to connect the "ground" wires of the controller board, servo and external power supply together first.
To assign any specific parameter for output to the servo, find this parameter in the configurator database and select it for servo output. Then select the needed servo number (pin number on the slave servo board).
Before using the servo-driven gauge in the cockpit you need to calibrate it. Use the convenient Calibration Tool in the SimVim plugin to correctly map the data value range on the gauge dial.
! The control pulse width range can vary significantly for different servo brands. Even if you have several servos of one manufacturer all of them may have slightly different control ranges. So, when calibrating a particular servo in the SimVim menu, watch carefully when the servo needle reaches it's edge positions. Usually the servo full angle range is 180 degrees.
Learn more here about some technical details and how to increase the servo needle rotation range.
Since v 0.9.34 the "WitMotion" 16, 24, 32-channel Servo Controller support is added and you can use them, connecting the same way as SimVimServo controller, as described above, with 2-wire serial interface (using pins #16,17). Note: you just need to connect it correctly, no "firmware" needed.
"WitMotion" controller is based on STM32 microcontroller, has high precision and stable timings and it's much better than using boards based on PWM drivers (PCA9685), which are not suitable for precise movement.
Here is the link to 16, 24, 32-channel servo controller board: [WitMotion Store on AliExpress].
NOTE: SimVimServo firmware for additional Uno/Nano is left as a cheaper option (only a spare Arduino board is needed), you can choose between these two options.