SimVimCockpit Interface Baron-58 sim Blog About/Donate

ArdSim Interface for home cockpit builders (2015...2017)

CLOSED project, not updated. Next ArdSimX has fully replaced it.

The latest SimVimCockpit Interface is recommended if you are going to start your cockpit project.

ArdSim interface requires minimum Arduino coding skills. You can configure any Arduino pin as input control linking it with specific X-Plane command or dataref to send data, or for use it as output getting dataref values through ArdSim plugin.

To configure ArdSim input controls for X-Plane or get data from X-Plane for outputs ArdSim library has a set of functions that you can use in Arduino code to setup input controls and assign specific action (switch, encoder, LED etc.) for any Arduino pin.

Next ArdSimX Interface doesn't include any functions that need to be used in Arduino code - all inputs/outputs are assigned using the online Configurator only!

ArdSim plugin automatically connects all Arduino boards with X-Plane, and then it uses a simple input/output configuration files to control data exchange between them. Each connected Arduino board can have at least one config file (input, output or both). To create configuration files you can use online configurators for inputs and outputs (or edit them manually).

ArdSim features:

  • Either LAN or USB communication can be selected for any single Arduino
  • Most of the configuration is done with input/output config files located in the plugin folder.
  • You don't need to write custom Arduino code for most input (and some output) controls, as you can use simple functions provided by ArdSim library for them.
  • As an option, you can extend the number of inputs for one Arduino using "matrix" connection.
  • Up to 9 different boards can be used for one system, with LAN and USB in any combination..
  • Up to 25 rotary encoders can be used on one Arduino.
  • You can configure Analog input precision (sensitivity) and input range.
  • The library includes some output functions for direct LEDs, analog Gauge, Servo
  • You can receive dataref value from X-Plane and use it in your specific code for output


ArdSim plugin since v2.0 supports both LAN and USB connection and it scans all USB ports ( if USB connection is enabled in ArdSim menu) along with LAN addresses, to find all Arduino boards connected to LAN (and/or USB).

LAN connection

This is a stable and fast interface that requires no network configuration if you have a router with DHCP in your LAN. Just connect Arduino with Ethernet shield to any free socket in your router. You don't need to define IP address for Arduino manually, becase your router will assign it and the plugin will determine it automatically. In case of direct connection without router (Arduino-to-PC with a cross-link cable) you may need to assign an IP Address in the sketch.

USB connection

With ArdSimUSB you don't need to have Ethernet Shield for Arduino and network connections. Take care about each Arduino board powering and USB cable quality. It's desirable to use an external power supply, especially when several boards are connected.

You can combine both connection methods and connect up to 9 Arduino boards with ArdSim library to an X-Plane PC using a router and additional LAN switches or/and USB sockets.

ArdSim History

The library now goes with numbering from 5.0. All included samples and samples on the website pages have this line changed.
Thus, when switching to ArdSim library v5.0 you need to change this one line too in your code.

Older versions used separate USB/LAN libraries (3.x)

ArdSim Library

Library VersionsFeatures, updatesPlugin versions supported
ArdSim Interface 5.1 Reduced memory usage for smaller boards (such as Nano) allowing them to work correctly with ENC28J60 module. Fixed the static reading mode of ReadInput() function. ArdSim Plugin 2.7
ArdSim Interface 5.0 #include ArdSim.h is replaced by #include ArdSim_Interface.h ArdSim Plugin 2.7
ArdSim Interface 4.9 Added support of "Counter Button" for any pins number. You can assign as many Counter buttons as you need ArdSim Plugin 2.7
ArdSim Interface 4.8 Corrected the problem with USB data receiving (LAN is OK) when several parameters change simultaneously and some changes were not detected. - ( 25 Nov correct version .8, not earlier) ArdSim Plugin 2.7
ArdSim Interface 4.7 Issues with custom OutputPin() assignment and Encoder Inputs being mixed with Digital Inputs corrected ArdSim Plugin 2.7
ArdSim Interface 4.6 Programmed Input ("SimInput" ) corrected ArdSim Plugin 2.7
ArdSim Interface 4.5 Counter button function changed (see here) ArdSim Plugin 2.7
ArdSim Interface 4.4 v4.3 had servo output problem, corrected in v4.4) ArdSim Plugin 2.7
ArdSim 4.0-4.3 First releases of universal LAN/USB (all in one) version of "ArdSim Inteface" ArdSim Plugin 2.7

ArdSim library v4.xx is the same as v3.xx concerning its functionality. The main difference in ArdSim Library v4.xx is that it's now a single, universal library for LAN and USB communication (previous 3.xx versions had two separate libraries for LAN and USB).

ArdSim LAN v 3.5
ArdSim USB v 3.5
---- ArdSim Plugin 2.6
v3.4 ---- ArdSim Plugin 2.0...2.6
v3.3 ---- ArdSim Plugin 2.0...2.6
v3.2 ArdSim Plugin 2.0...2.3
v2.8c ArdSim Plugin 2.0...2.3
v2.7 ArdSim Plugin 2.0...2.3
v2.6 ArdSim Plugin 2.0...2.2
v 2.5b initial setup in the Arduino code of ArdSim (LAN) has been changed to simplify it. Added option of defining the IP adresses for both X-Plane PC and Arduino board (if you have problem with auto-connection), in ver 2.5 you have to enter full IP address for Arduino (not only the last number) ArdSim Plugin 2.0...
v2.4 Some pairs of functions for matrix and direct input have been replaced by one function. All previous pairs of functions can still be used. ArdSim Plugin 2.0...
v2.3 Since all digital Arduino pins that are not used in key-matrix, encoder port and ArdSim library output functions are auto-assigned as INPUTS for buttons/switches, you couldn't use them for output. With added "OutputPin" function you can reserve now any pin for OUTPUT to use in your custom code for custom output devices. ArdSim Plugin 2.0, 2.2
v2.2 Oct 06, 2015 Encoder functions has been changed to provide non-linear increment value for datarefs depending on the encoder rotation speed. The increment multiplies for each step by a factor depending on the rotation speed and ensures that you will always add the minimum increment on one step when you rotate encoder step by step. Now it's independed on encoder type, the encoder function does not include this argument. ArdSim Plugin 2.0, 2.2
v2.0 Sept 10, 2015 Added support for USB connection (ArdSimUSB version of the library). Most of functions were revised, some was removed or replaced. Function names became more relevant. Direct connection for encoders has been added, you can can choose one connection option for encoders - direct or matrix. NOT compatible with ver. 1.xx! ArdSim Plugin 1.3...2.2
v1.2 Aug 8, 2015 Functionality of the "PinState" function has been changed, function "InState" was removed. Function "InputAction" has been added, that replaced both "InState" and previous "PinState". Direct LED control function has been added. ArdSim Plugin 1.0...1.2
v1.1 July 20, 2015 major errors in matrix inputs and other small bugs were corrected, July 24 - corections for X-Plane 9.xx in ArdSim plugin) Config files now support multiple spaces/tabs as separators for comments. "Reload Plugins" menu item added in the plugin. ArdSim Plugin 1.0...1.2
v1.0 July 10, 2015 BETA, range test sketches fo servo added, July 16 - small corrections, July 17 - some examples added. ArdSim Plugin 1.0...1.2

ArdSim Plugin

Plugin VersionsFeatures, updatesLibrary versions supportedLinWinMac
Plugin v 2.7 All communication ports now open only after the simulator has finished loading, preventing startup crashes 4.0 and newer *** *** **
Plugin v 2.6 "Continuous" mode also works for analog inputs 2.5 ... 3.5 *** *** **
Plugin v 2.5a Analog inputs can now be inverted if you switch the min/max values in the configuration. 2.5 ... 3.5 *** *** **
Plugin v 2.5 Repeat-buttons are now handled by the plugin, instead of the library. In the input config, indices ending in "++" (i.e. "D12++") are repeat-buttons. *** *** **
Plugin v 2.4a Fixed a crash from v2.4 when connecting to an Arduino without an input config file present for this Arduino number. *** *** **
Plugin v 2.4 Some specific simulator commands are now always marked by the plugin as "continuous", because it's the only way X-Plane handles them. This eliminates the need to assign "continuous" buttons for these commands in Arduino. *** *** **
Plugin v 2.3b - For Mac: added support for USB port names starting with "tty.wchusb". *** *** **
Plugin v 2.3 - Fixed a rare case of input data sometimes being processed incorrectly. *** *** **
Plugin v 2.2a - For Mac: fixed a problem with USB connections when finishing scanning for devices. - For Windows: now scans COM ports from COM1 to COM64 (previously was only up to COM8). *** *** **
Plugin v 2.2 - Fixed problems of v2.x with both LAN and USB connections on Windows (tested on Windows 10). - Several stability tweaks for all systems. *** ** **
Plugin v 2.1 Plugin's "About" window changed to "Status". Added a checkbox to enable/disable USB communication (useful to avoid problems with uploading code to Arduino while ArdSim is running). The state is saved in the config.ini file. *** * **
Plugin v 2.0a For Mac: fixed USB port names the plugin is searching for. *** ** **
Plugin v 2.0 - Added support for USB connections. Both USB and LAN Arduino connections are supported at the same time, up to 10 connected devices total. Connection is automatic. You may need to have drivers from Arduino IDE installed there.
- Instead of a device limit set in the main configuration, a timeout is now used to stop searching for new devices. The timeout starts after at least 1 device is connected. The plugin is searching for new devices while the "About" window displays "scanning..." in it. If you want to connect new devices after some time, use "Reconnect" option. You should always use this option after connecting new devices by USB if the simulator is already running.
- Changed the way loading a new plane, airport, or changing position on the Local Map is handled. All input states are resyncronized without resetting connection, avoiding any delay in controls.
- Fixed possible issues with finding config files on different systems.
- Fixed a bug with analog inputs used as rotary switches not working properly with DataRefs.
- Changed the plugin's "About" window to list all connected devices.
*** ** **
Plugin v 1.3 (updated v1.2 after release of v2.1, can be used with library 2.5)
- Fixed crashes if your router is configured to support a broadcast address.
- Fixed a bug that in rare cases could freeze the inputs for a couple of seconds.
*** *** ***
Plugin v 1.2 Plugin resets when loading a new plane or airport, in order to receive all new input data.
Input DataRefs without a value specified in the config now have the default value of 1. Plugin no longer crashes if the value is missing.
Changed file path detection. The plugin folder name no longer matters.
*** ** **
Plugin v 1.1 Config files support multiple spaces/tabs as separators. *** ** **
Plugin v 1.0 *** ** **

© Copyright 2012-2016 - SimVim Design