SimVimCockpit Plugin

The main part of this interface is the SimVimCockpit plugin, currently it is a quite complex C++ program with about 15,000 lines of code. As the most important part of the system, the plugin interacts with the SimVim firmware and the SimVimPanel program to send and receive data. It does all the work of processing data from the simulator to send the results to output devices in specific format depending on the predefined device type, assigned output type and other conditions.

The inputs state signals received from the firmware on the master board controller are processing by the plugin either in simplest way – executing specific simulator commands / set datarefs or running a specialized SimVim functions to simulate specific/custom functionality for some devices.

Installation: add the SimVim plugin to your X-Plane as any other plugins. Download the SimVImCockpit zip file and unpack it as-is to the X-Plane plugins folder. The new menu item “SimVimCockpit” will appear in the X-Plane plugins menu when you start X-Plane. Supported systems: Linux, Windows, OSX.

NOTE: Download SimVimCockpit on the Configurator page


The second piece of software is the SimVim firmware uploaded into the I/O “master board”. As a “master board” any Mega2560 controller board can be used, like Arduino-2560 as a handy device easily accessible to everyone.

The firmware is not using any Arduino libraries, it is a written from scratch program for AVR controller that includes a code for input states scanning and processing, specialized code for all output devices and protocols for data exchange (plugin <-> master board <-> “slave” boards). You don’t need to know Arduino coding and install Arduino IDE.

The SimVim firmware is included in the plugin database and should be uploaded to the master board from the plugin menu just once, it changes very rarely and you don’t need to re-upload it on every configuration change and even on the plugin update! Once the next plugin will include the updated firmware version it will warn you about this update.

Getting Started - Install and Test SimVimCockpit

All you need to start is to get one micro-controller board built on Atmega2560 (Arduino Mega and similar clones - See details here.) (you need to get one Ethernet module if you plan to use Ethernet for communication (not needed for USB version).

    First start and Input/Output test

If you have no previously uploaded SimVim firmware, follow the steps below. If you plan to use LAN version, attach an Ethernet module to you controller board before and connect it to your router.
  1. Open the "Firmware Upload" window from SimVim plugin menu (see the screenshot above).
  2. Make sure you have the master board (Mega2560) disconnected from USB!
  3. Click "Master Board" button (to select master fimware to upload).
  4. Plug the master board (Mega2560) USB cable to the X-Plane computer USB port.
  5. Note: If you have the Mega2560 board with "original" Mega16U2 Serial UART/USB controller (the chip located near to the USB socket), wait until it completes its initialization and Rx LED stops flashing (about 20 sec.) before proceeding to the next step #5.

  6. Click "Detect Port" button (plugin detects new connected device)
  7. When USB port is detected you will see the "Controller Type" - Mega2560 box checked. If you need to upload the Ethernet firmware version set the "Ethernet" checkbox.
  8. Click "UPLOAD". Wait until firmware upload is completed (about 5 s).
  9. After upload the plugin will connect to this controller automatically.
  10. The connected board will appear in SimVim Status window.

  11. Firmware Testing

  12. Load some default aircraft (e.g. Cessna) in X-Plane
  13. Connect a toggle switch to pin #5, GND and throw it on/off
  14. The Pitot switch state will changing accordingly with your switch position
  15. The on-board LED on the controller board will change its state (Pitot Heat is on/off).

SimVim Connection, notes

- You never need to upload the firmware to change I/O configuration, all you need to do is create new configuration file.

- If you have changed the data.cfg file while X-Plane is running, just click the "Reload Config" button in the Status window.

- With firmware uploaded you no longer need to unplug your controller board USB cable before X-Plane launch. If you use Ethernet firmware you don't need USB cable to be connected until you will need to upload new version of firmware.

- Note for Linux users: Some Linux distributions not granting the user access to serial ports by default. In this case you need to add your user name to the "dialout" group (in Linux Mint, for example, this can be done via the Administration -> "Users and Groups" menu.)

After successfull first test you can be sure that SimVim plugin communicates with your controller, and you can start wiring all nput control and output devices to the controller and use SimVim Configuration tool to assign all of them.

Plugin should always establish connection automatically every time X-Plane is started, no matter how many times you did this and how many changes you made in the data config file.

Firmware Update

When you update the SimVimCockpit to a next version, the plugin will inform you about need to update firmware (if there is new firmware) and present you the Upload window with the options already filled in.

  • For USB connection, just be sure that all options are correct and click "Upload".
  • For LAN connection, connect your master board to USB (or disconnect and connect it again) and click "Connect". After that, check the options and click "Upload".

SimVim Plugin Reconnection:

[Reload Config] button in the "Status" window reloads all SimVim configuration, it should be used when you saved new data configuration file

The SimVim firmware is an optimized program code that should synchronize control of a large number of different input/output devices. SimVimCockpit interface doesn't allow to use the controller board as a "usual" Arduino and users can't add any custom code, as there is no Arduino sketch, and the plugin uploads firmware directly to the board. At this moment we are using Atmega2560 as a convenient and easily available controller platform for SimVim firmware.

SimVimPanel program

SimVimPanel is an additional, standalone program providing a set of realistic, fully-functional aircraft instrument panels to be displayed on a computer that is connected by network to the main computer with X-Plane.

DATA FLOW Data exchange sequence - Additional tech information is for those who are interested.

SimVimCockpit 2012 - 202X