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.
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).
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.
- 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.
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.
[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 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.