SimVimCockpit features and status, development outlines

Preliminary notes:

The SimVimCockpit project is always in a constant development state, it still has a lot of potential, and its functionality can be improved and changed during the development process.

Though the main input/output connection options mostly stay intact, the configuration protocol and hardware connections can be changed, sometimes drastically. Please don't rush to make some kind of complex PCBs, modules for yourself (and especially proposing them to the community).

Besides, the SimVim architecture is specially designed the way when anyone can simply buy ready-to-use, cheap modules and breakout boards listed on this website and in the "Components" page, connect them as described on our pages, that's all.

Main Features currently supported


  • Direct digital input for any of available 70 pins for switches, buttons, encoders.
  • Multiplexed 1x16 digital input extension for any of available 70 pins (totally up to >500 inputs)
  • Direct analog input for any of 16 pins for snalog sensors.
  • Additioanl Multiplexed 1x16 analog input extension for ONE of available analog pins.
  • Axis calibration from the plugin, zero-position (for pitch/roll/rudder) and movement range.
  • Key-Matrix Input. Additional slave Nano/Uno board with SimVim Key-Matrix firmware supports 160 momentary buttons grid, released in v 0.9.34
  • The initial states of all toggle switches and rotary switches connected are sent on start to the plugin for proper synchronization the switches in virtual cockpit.
  • LED or digital outputs

  • Direct digital output (LEDs Relays, control signals) for any of available 70 pins (see limitations) .
  • Multiple Serial LED outputs based on DM13A or similar 16-bit LED drivers (up to 64 LEDs for one output)
  • Multiple Matrix LED outputs based on MAX7219 LED driver (same as for 7-segment displays), 64 LEDs for one module
  • Support for LED bargraph output (i.e. linear flaps or trimmer position indication), for any indicator lenght
  • 7-segment displays

  • Universal configurable output for any type of 7-Segment Displays (built around shift-latch registers, LED drivers or complete modules, MAX7219, TM1637)
  • Any display can be configured to output several parameter values, each with its own position shift and data display options.
  • A display can be configured to output different parameters, depending on changed conditions.
  • "Text" output support (custom text, conditional output) for 7-segment displays (Read more here)
  • Brightness control for MAX2719 or TM1637 displays from plugin. Any display can be associated with specific regulator. You will be able to link a brightness knob with any display.
  • Brightness control for 7-segment displays assembled on DM13A LED drivers. Controlled by separate PWM signal - you need to assign brighness parameter to any PWM output and connect it to your module
  • PWM outputs (analog output)

    (for moving-coil meters, DC motors, adjustable LEDs, other PWM controlled devices)
  • 1. Direct PWM outputs (8-bit) can be used with several PWR-ready pins only.
  • 2. PWM outputs (12-bit) using one 24-channel PWM driver board -
  • LCD displays

  • Direct LCD display support. Configurable output to 16x2, 16x4, 20x2, 40x2 etc. character display.
  • Any numeric data values can be easily assigned to be displayed in any position along with any custom text. Read more...
  • Selecting "LCD conditional text" for annunciator-type parameters is an easier way to assign "conditionally" displayed text to LCD.
  • Mechanical drives, motors

  • Output to the stepper motors using external SimVimStepper controller board. Supported since v 0.9.26
  • Direct support for X27.x stepper motors with dedicated controllers as default for SimVimCockpit firmware. Other controllers (EasyDriver etc) and other steppers (28BYJ-48 etc.) should work but need more tests.
  • Servo output support, using additional "slave" Nano or Uno controller board connected to the SimVim Master board and used as SimVimServo controller for 18 servos. Supported since v 0.9.27
  • Plugin has gauge calibration tool - you can easily set ranges and mapping values for stepper, PWM, and servo gauges inside the plugin, while directly controlling the gauge position.

    Modes and conditions

  • Flexible system of preassigned and dynamic conditions for any input and output types. Inculding: Input states, assigned switche states, output (assigned LED) state, cyclic mode button, bus voltage, pre-assigned parameter states...
  • Any input or output can be activated/deactivated on specific conditions, you can define as many conditional states as you need, to use them for programming some input logic or for conditional outputs (like displaying different data on one indicator)
  • Other features and options

  • Assigning output devices to a power bus number, what allows you to make instruments and gauges that work only in specified voltage range accordingly with tech spec and turned off if the voltage drops below specified.
  • Some of the input parameters use flight model properties for their range values (plugin reads them from plane flight model on start), such as RPM range for "constant-speed" props in radians per seconds, flaps detents number, etc
  • The posiibility to assign multiple LED modules (serial/matrix) to the same extension board with 7-segment displays (to output multiplexer)
  • Some parameter values can be stored in memory stack with memory button (COM radio frequency channels).
  • Loading any specified parameter values on startup (frequencies, fuel quantity etc.)
  • Custom. Parameters Converter for custom commands/datarefs included into the plugin. Users can launch X-Plane and convert parameters that are not working by default for selected specific plane. Online shared data "repository" on the SimVim website for custom planes, where users can create and edit the tables with custom commands/datarefs for any specific plane to use them as refernce for custom data conversion tool.

Status, work in progress

Currently main work should be focused around informative content, configurator improvemnt, image-map configurator, custom plane embedded database, SimVim Panels development. -----
LCD: Non-standard LCD symbols (hex-code). Bar-graph output on LCD (possible). Consider
"SimVim Panel": complete rewrite of the core program, moving away from Python/Kivy/pygame in favor of plain C++ with OpenGL. This should resolve many hardware and system compatibility problems, and generally give us more control over the program's capabilities. Started
"SimVim Panel": Universal Electronic Multi-function display (EMFD) program, configurable for any MFD size and number of softkeys. Started

Additional (considered) Features

Gear vibration effect outputs. Plane moving on the ground, touching down all simulate realistic impact and vibration forces. ----
Force Feedback outputs, turbulence effect ----
Custom axis mapping curve ----
"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).

© Copyright 2012-2018 - SimVim