Download SimVimCockpit software (plugin) and install it to X-Plane.
Follow the "Getting Started" steps (below on this page) to upload SimVim firmware and test communication.
Wire correctly all nput control and output devices to the controller and use SimVim Configuration tool to assign all of them.
Note: To extend the number of inputs and outputs you may need to buy some additional components that are listed on the "Components" page and the corresponding wiring info pages. You will need to get one Ethernet module if you plan to use Ethernet for communication, not USB.
Note: if you are going to start building your cockpit for the first time you should realize that it could be a complex and very long process.
You should have quite enough knowledge about aircraft systems, have some handwork, wiring and soldering skills.
It would be useful to know about data structure of X-Plane, how it works with data using so-called "DataRefs" and controlled with "Commands", etc.
(supported systems: Linux, Windows, OSX with any version of X-Plane)
After downloading the SimVimCockpit_v##.zip file, unpack as-is into X-Plane ../plugins folder (as any other plugins for X-Plane). The new menu item "SimVimCockpit" will appear in the X-Plane plugins menu. Then, from the plugin menu you need to upload SimVim firmware to the master controller board:
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.
Open the "Firmware Upload" window from SimVim plugin menu.
Follow the steps displayed in that window
When USB port is detected select correct controller type from the list
and set the "Ethernet" checkbox if you will use Ethernet module.
Click "UPLOAD". Wait until firmware upload is completed (about 5-8 s)
After upload the plugin will connect to this controller automatically.
The connected board will appear in SimVim Status window.
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 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 Configuration" 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.
After successfull first test you can be sure that SimVim plugin communicates with your controller, and you can start configuring it in the Configurator.
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.
SimVim Plugin Reconnection options:
1. [Reload Configuration] button in the "Status" window reloads all SimVim configuration, it should be used when you saved new data configuration file
2. [Hardware Reconnect] menu item resets everything inside the plugin and reopens all ports and reloads all SimVim configuration. Use it only if you have reconnected your board USB cable while X-Plane is running.
3. [Reload Plugins] menu item will restart the SimVim plugin (and other plugins in your system). Use it when you have updated the plugin while X-Plane is running.< /li>
Restarting X-Plane is never required, since using "Reload Plugins" will do the same thing as a clean restart.
If the USB device (Arduino) has NOT appeared in the status window too long this is because of virtual serial driver problem, or physical connection issues.
- Data exchange sequence - Additional tech information is for those who are interested.
Data exchange sequence
SimVimCockpit can use either Ethernet (LAN) or USB connection (wich actually used as asynchronous virtual serial interface when USB ports are just used for serial emulation). Communication protocol in SimVim is synchronized with X-Plane frames and FPS timing is used to send "strobes" in the end of each frame (you can see blinking RX LED when USB is used) to more effectively synchronize I/O data and avoid loosing any bit of data packet.
You should know that any plugin that works with external programs / devices can send or receive data no more frequently than the X-Plane frame rate allows. So, if your X-Plane frame rate is 20 FPS for example, it can provide next changed data values for the plugin only in time 50 ms after the previous change.
The plugin and controller firmware “find” each other at start, and the plugin establishes connection with the controller.
Plugin - reads all data configuration files, creates all needed variable structures for data, different I/O types and output devices.
Firmware - sends series of configuration requests to the plugin.
Plugin - sends configuration data on every request.
Firmware - configures controller ports for inputs/outputs, saves received parameter options for input/output environment.
Data sending is blocked for plugin in this time.
Firmware - sends current states of all inputs (switches, analog axis). Allows the plugin to send data and waits.
Plugin - sends all current output values in one packet (or several, in the following X-Plane frames).
Firmware - sends all received data to output functions ( LEDs, displays, gauges).
Firmware tracks and stores all configured inputs, and waits for a strobe signal or data packet from the plugin. When the strobe/data is received, the firmware sends only the changed input states (switch/button positions, analog axis positions, encoders step count), to the plugin.
In every X-Plane frame, the plugin processes received data, checks all assigned conditions to disable, enable or change inputs parameters and sends all changes to X-Plane - executes commands , changes datarefs or calls some custom SimVim functions.
Then plugin reads data from the X-Plane variables accordingly with configuration, checks all assigned for outputs conditions (to disable, enable or change the source for some outputs) and sends output data packet to the controller. Only data that changed since the last frame are sent. If there were no changes in output data, only the strobe signal is sent.
SimVim firmware can potentially send data with the speed of 1000 times per second but sends them in every X-Plane frame (it's X-Plane's limitation - the plugin can send and receive data only with the frequency of X-Plane frame rate). In our earlier interfaces the firmware always sent data as soon as there were changes, and it could result in much redundand data when dealing with fast encoder rotation or analog input noise, especially if X-Plane had low framerate. Now, this data is only sent when requested by the plugin.