SimVimCockpit Interface Baron-58 sim Blog About/Donate

ArdSimX, Input/Output Interface for X-Plane

ArdSimX Plugin/Firmware is archived project (last update was in June 2018), and it is available on request. It is as a predecessor of the current SimVimCockpit Interface and it will not be developed and supported further.

If you still use it and lost some files, or need to refresh or debug its latest working version, you can ask us by email.

SimVimCockpit Interface© is our primary project, that has replaced ArdSimX and all our previous interfaces, since it offers much more control and output capabilities and requires less efforts and costs to use, provides very flexible conditional input/output configuration..

So, if you just started or planning to start building your cockpit and came across this page, we highly recommend you to skip it and start with SimVimCockpit.

"Terms of Use"

NOTE: We do not provide support for any commercial cockpit hardware that you could buy somewhere as a module with an embedded controller board and loaded ArdSimX firmware, with all the switches connected to it. We are not responsible for any problems that you may encounter. ArdSimX Plugin will not work with those devices that violate our Terms of Use.

ArdSimX features

The main part of this interface is the ArdSimX Plugin that provides a link with ArdSimX firmware uploaded to input/output controller (Arduino board). Arduino in this project is used only as a convenient controller platform for ArdSimX firmware and is not supposed to be programmed by user as usual Arduino!

All you need is upload ArdSimX base skecth with the installed library. ArdSimX provides control for your cockpit without Arduino coding. Plugin and Firmware cannot work separately and are only used together!


- Get Arduino IDE software from the official Arduino website: IDE Releases.
- Download archive (below on this page) and save it in some folder.

- Start Arduino IDE, open menu -> "Sketch" -> "Include Library" -> "Add .zip Library"

- In the opened dialog select file, and ArdSimX folder will be added to Arduino libraries folder.

! If you have previously installed ArdSimX and you download a new firmware version you can manually replace the old ArdSimX folder in the libraries folder.

ArdSimX Plugin Installation:

Unzip the downloaded file "AS-IS" into your "X-Plane/Resources/plugins/" folder. The "ArdSimX" item in X-Plane "Plugins" menu should appear after X-Plane start.


  • Some serial drivers on Windows and MasOS Sierra systems are known to cause problems. Trying different drivers might work.
  • You can use up to 8 boards connected, with LAN and USB firmware uploaded.
  • Note: You may encounter problems in some systems when multiple USB boards are used!

ArdSimX - Getting started

Upload ArdSimX "firmware" to Arduino

Connect your board to USB, open ArdSimX_USB sketch from Arduino IDE "Examples" menu, select board type, USB port (if needed) and click "Upload button:

Note: if LAN connection will be used, use the ArdSimX_LAN sketch.

Testing communication for ArdSimX© firmware
  1. Connect a toggle switch to pin #5 to test digital input.
  2. If Ethernet connection will be used, attach Ethernet module to Arduino board.
  3. Connect your Arduino to your X-Plane computer USB port
  4. Start X-Plane, open ArdSimX "Status" screen. You can see connection status (the plugin scans the IPs and USB ports).
  5. When Arduino responds and configured the message "Connected to" appears with the list of devices and the number of inputs/outputs configured.
  6. When you toggle a switch you should see how the Pitot switch toggles in the on-screen panel and the on-board LED of your Arduino switches On/Off accordingly.

Please note: To upload firmware code to Arduino without exiting X-Plane, first press the "PAUSE" button in the "Status" window. After uploading the code, press "Reconnect" button.

In the screenshot you can see two boards connected with USB and LAN:

When you've made sure that ArdSimX is working with your controller, you can start configuring it for your own inputs and outputs using the ArdSimX Configurator, no need Arduino programming and other libraries using.

ArdSimX Interface History


June, 5, 2018

- Several bugs in the plugin and firmware code has been corrected.
- Separate data file for different planes supported (placed in the aircraft folder).

1.30 - 1.31

May, 18, 2018
- Encoders - you can point out specific detents type for each single encoder in the data file.
- Acceleration sensitivity can be set for any encoder (from strict single-step to maximum acceleration).
- Independently from acceleration curve and type of detents phase, an encoder always makes one step when rotated slowly to the next detent position.
In ver 1.31 (use this version instead of 1.30, which is unstable):

- Added option for using two +/- buttons instead of any encoder.
- Corrected "Reconnect" issue with Ethernet (and USB, possible)
- Some bugs are corrected, but still can be some not fixed.

NOTE: format of ArdSimX base sketch was changed! "BoardNumber" is no longer used, and instead of "ArdSimScan" the ArdSimX(#) function is used in the loop, where # is the board number. Please correct your working sketch!

Plugin 1.22
Library 1.26
- Changes in "Skip steps" option for encoders.
- Smooth needle/card movement when encoder accelerates ("animation").
Problems noticed:

- not all of the boards can be detected.
- sometimes dubbled arduino number.
- serial output can fail if several registers are used.

1.21 ... 1.25 - Library performance improvements, several bug fixes.
- Some fixes related to reconnection and serial ports.
- Fixed X-Plane event-based inputs reset for USB.
- Matrix Inputs corrected.
- Fixed a bug with analog precision over 100 not working properly.
- Encoder processing algorithm with rotation speed acceleration (still beta).
- Encoder acceleration accounts for frame rate.
Added version control for plugin/library compatibility. An error will be displayed in the Status window if a connected Arduino has an older library version than required by the plugin, and this Arduino will be ignored.
Problems :

- still unstable, consider all these as temporary versions

1.15...1.20 Transitional temporary versions
Plugin 1.14
Library 1.14
- Fixed the bug with Serial LED non-range condition not working.
- Output config lines sharing the same ID will all be active again by default, unless an output parameter switch for them is present.
1.13 - Fixed the problem with detection of certain custom datarefs.
- Expanded communication with SimVim Panel. Future support for Raspberry Pi GPIO.
- Buttons can act as output parameter switch (no configurator support yet).
1.12 - Fixed the bug with Programmed Input values not being accepted correctly.
1.11 - Fixed the crash with LAN connection in Windows version.
- Support for inputs from SimVim Panel (v2.3).
- USB_FIX now enabled by default in Windows version.
- Fixed the dot not disappearing when integer exceeds the number of digits on a 7-segment display with "Reverse" flag.
- Experimental quadratic function support for analog input (Q A0 A1 ... line under [A] config section) Update 1.11a: Fixed a bug related to multiple USB connections in Linux and Mac versions.
1.10 - "ardsimx/starter_ignition" command no longer requires "Press-and-hold" functionality configured.
- Added optional step skipping for encoder input (experimental feature).
- Added an option for config.ini - "USB_FIX = 1" (only use if you experience the rare bug with USB communication stopping after "Scanning" finishes).
Update: Fixed a USB-related crash on Mac introduced since v1.9
1.10d for Mac: Fixed inputs not working.
1.9 - Output byte array type datarefs to Arduino (NAVAIDs) - will not work until the Library is updated
- Fixed a bug with press-and-hold commands also executing a momentary action on start
- Implemented custom commands for Starter+Ignition (included in the configurator)
- Optional limits for dataref values controlled by encoders or increment buttons (config - third value in line, example: "1+,500"). Datarefs only.
- For Mac: Added support for USB port names starting with "cu."
1.8 - Press-and-hold for buttons on analog inputs now works properly
- Fixed a crash caused under certain conditions by datarefs with Press-and-hold function
- Inverted Serial LED order on each register to reflect the new connection scheme
- Supports "d" and "b" config identifiers for differentiating between rotary switch digital positions and ordinary digital buttons
1.7Fixed a bug with continuous commands (such as engine ignition) and test buttons. Could potentially lead to crashes.
1.6 - More options for Indication Test button (7-segments, direct and serial LEDs)
- Added custom dataref for blinking LEDs (autopilot)
- Added Servo support
1.5cFixed issue with Analog inputs not working when precision is configured between 51-100.
1.5bFixed typo in Stepper initialization code.
1.5aFixed a crash when connected to network router with broadcast support.
1.5 - Internal code optimizations. More unification between input and output config
- Added reverse digits order for 7-segment display
- Cyclic mode button can now be configured with the number of steps to increment
- Sends individual number to connected devices
- Modified "Repeat" function for commands
- Fixed Encoder mode output to LEDs
- Added Encoder mode output to Serial LEDs and Programmed Output
- "Test 7-segment display" button
Hotfix: Fixed crash when connecting to Arduino with no config for this Arduino present
1.4Fixed crash if array number is specified as "0" in config file.
1.3Multiple-mode encoders fixed
1.2- Added cyclic toggle buttons support
- Changed repeat button config - now listed in [A] section
1.1ArdSimX Release

© Copyright 2012-2016 - SimVim Design