Overview and Status

This project started from scratch in 2012 as a specialized control interface for our Baron-58 panel simulator and has eventually grown up into universal Input/Output systems for home cockpit simulators. Using the current ArdSimX or the latest SimVimCockpit interfaces you can easily create all input controls for your cockpit and display any cockpit parameters without applying any programming and electronics skills.


This is the current and supported project. It supports direct and "key-matrix" inputs, outputs to LEDs, servos and stepper motors. Several Arduino boards can be configured for use in one system (if a single board is not enough).

- The core parts of this project are ArdSimX Plugin and ArdSimX firmware for Arduino. All you need to start is just upload the base firmware code to your Arduino and configure some input/output pins, which can be done in just a few minutes.
All technical information about ArdSimX control interface is located on SimVim website


The next interface generation, named "SimVimCockpit", is in beta testing now. Here are its main features and differences from ArdSimX:

    Cockpit Controls:

  • Up to 500 inputs for toggle switches, buttons, encoders and multi-position switches can be assigned, this will cover all your needs in creating controls for a cockpit of any complexity.
  • Up to 32 analog inputs can be allocated for axis controls (or multi-position rotary switches) that all have configurable precision, and the plugin's calibration menu allows you to set the axis zero-position and movement range (auto-saved in a file).
  • Output to Instruments, displays, annunciators, etc.

  • Hundreds of digital outputs are supported (for LEDs, lamps, relays). Some of them can be assigned directly to any free Arduino pin, for others 16-output expansion boards are used.
  • Up to 16 7-segment LED displays can be connected, with many configurable display options, including display type, more than one parameter displayed (with offset), conditional output (dependence on other parameters), etc.
  • For pointer instruments you can use either stepper motors, moving-coil meters or servos (planned for later). Nonlinear scale mapping is supported for all gauges.
  • Other options:

  • One configuration file for your cockpit for different planes with a "matching" file in each aircraft folder, if necessary. Any parameter state can be stored in memory stack with a button and recalled at any time. Any input/output is configurable "by condition" (can be activated/deactivated based on other parameters conditions).
  • No more "matrix" extension for switches and encoders - now only 16-channel CD74HC4067 multiplexers are used, that can be found online for less than $1. Such extension method is much cheaper and more effective than adding more Arduino boards (just to have more inputs), and much easier to implement than "matrix" extension method.

Development outlines for SimVimCockpit.

Development status levels:

  • "Red" - plans, start level ( 1 - Planned, considered for development, 2 - Started, 3 - Started, but Postponed )
  • "Yellow" - development level ( 1 - Underway, 2 - Active development, 3 - Mostly finished, Set "On Hold" )
  • "Green" - finishing level ( 1 - Debugging, 2 - Testing, 3 - Fully completed)

Note: Sometimes the status level is changed backwards.
Website, Configurator, Manuals
Website pages related to SimVimCockpit
SimVimCockpit Configurator
Parameters database fill-up
Expansible (multiplexed) digital inputs - every pin can be used as input for 16 toggle switches or push buttons
Encoder can be connected to any pair of multiplexer inputs (up to 8 encoders for one multiplexer) the same way as to a pair of direct inputs
Switches and encoders can be connected to the same multiplexer alternately
Improved encoder processing ("synchronizing" with X-Plane frame rate, no missing steps, acceleration - read more in this post )
Improved and unified mode switch functionality for all input types no need
Any X-Plane parameter value can be stored in memory stack with memory button (e.g. radio frequencies). no need
Axis and other analog inputs
Expansible Analog input (for one analog pin)
Non-linear input for analog axis (Quadratic curve), higher precision near of neutral (or zero) position. no need
Axis calibration menu in the plugin, setting the axis zero-position and movement range (auto-saved in a file) no need
Stepped axis mapping (parameter values can be mapped for different analog sensor positions) no need
"Digital" axis inputs, using contactless magnetic rotary encoders
Head position tracking to emulate far-distance view effect on a closely located screen (not related to a head rotation).
Output, Displays
Universal configurable output for any type of 7-Segment Displays (built around latch registers, LED drivers or complete modules)
7-Segment Displays based on 74HC595 registers Supported
7-Segment Displays built on DM13A or similar 16-bit LED drivers
Direct control of MAX7219 LED diver for 7-Segment Displays
Direct control of TM1637 LED diver for 7-Segment Displays
Any display can be configured for several dataref values output, each with its own offset Supported
Conditional power control for every display. Any display can be "connected" to specific electric bus that your plane has on-board Supported
Brightness control for MAX2719 displays from brightness dataref. Any display can be associated with specific regulator Supported
Brightness control for displays built on 595 registers (or DM13A LED drivers). Controlled with separate PWM signal Supported
Native LCD display support. Configurable output to character display 16x2, 16x4 charcters
LEDs, Digital Outputs
Multiple serial LED output based on DM13A or similar 16-bit LED drivers
Support for LED bargraph output (i.e. linear flaps trimmers position indication etc.).
Analog output
Analog outputs support (12-bit PWM), totally 24 outputs for moving-coil meter, adjustable LEDs, PWM controlled devices...
Gear vibration effect outputs. Plane moving on the ground, touching down all simulate realistic impact and vibration forces.
Force Feedback outputs for yoke
Stepper motors
Stepper motors output development (base protocol)
Direct support of X27.168 stepper motors as default for SimVimCockpit firmware
28BYJ-48 stepper motor with gearbox (testing)
Protocol, Features
Improved data exchange protocol
Dataref values can be transmitted to additional slave board for custom output devices only Supported
Any input or output is configurable" by condition" (can be activated/deactivated on specific parameters conditions) no need
Uploading firmware into Arduino and updating it from the the plugin
Configuration, macros
More compact configuration file with less overall number of lines no need
Named options inside config lines, without the need to keep all values ordered no need
Database with predefined parameter Keywords, to support one config file with customization for multiple aircrafts no need
Data substitution table for most popular custom planes (such as EADT x737project, laminar-b738, some Carenado planes etc.)

If you have questions or suggestions concerning adding more functionality, please use our email: