Home SimVim Instruments Baron-58 Panel simulator Tech Tips/Manuals Forum

Arduino I/O Interface history


This project was started from scratch as a specialized control interface for our Baron-58 panel simulator. In this section we represent our first "pre-library" Arduino program code developments since 2011, test programs for X-Plane UDP protocol, early "stand-alone" code versions for our Baron 58 cockpit and the first Arduino I/O libraries.

In the process of building the B58 panel we have decided to develop a universal input/output system based on Arduino and give a simple solution for home cockpit builders to create control interface for their DIY simulators without applying lots of programming and a heap of electronics.

Using X-Plane UDP for data exchange

At first only X-Plane's UDP Data input/output protocol was used ( some of the test Arduino programs used this method are described here). Based on these works the first Arduino XPData library was created to replace a single sketches. This library includes simple functions for sending input commands and dataref values to X-Plane and receiving data from it for output using only X-Plane UDP protocol.

Using plugin for data exchange

Later we have implemented another way for data exchange between controller and simulator - using additional plugins for X-Plane that can read data from simulator and send it to controller and vice-versa. The next "transitional" ARDref and the latest ArdSim libraries have been created to work with plugin only.

Currently we are focused on the latest ArdSim/ArdSimX project. The early XPData v3.x and ARDref libraries are archived and no longer updated.

But if you have started to build your cockpit using early XPData or ArdSim, you can easyly switch to the latest ArdSimX, even without dismounting your input connections, just reprogram your Arduino and create new configuration file.



SimVim Design interfaces overview

Since the first experiments with using the well-known Arduino board for our Baron-58 home cockpit, we've made a goal to create a convenient interface that would allow people with minimal programming knowledge to use Arduino for X-Plane cockpits. All these interfaces include an Arduino library, and most of them include an X-Plane plugin.

Here's a breakdown of our projects:

ArdSimX (Latest)

  • + Easy and powerful configuration tool.
  • + Configure buttons, switches, encoders, analog axes, rotary switches, mode buttons, LEDs, 7-segment displays, stepper motors and PWM-gauges without any Arduino programming.
  • + You can still write your custom Arduino code if you need to implement something else.
  • + Supports USB and LAN connection.
  • + Connect up to 9 Arduino boards to a single X-Plane computer.
  • + Connected I/O devices only limited by the number of Arduino pins. Optionally, you can utilize button matrix, encoder port and LED-port in your config to use Arduino pins more effectively.
  • - You need to keep in mind to use the correct configuration, according to what I/O devices you have connected to your Arduino.

ArdSim

The predecessor to ArdSimX. Main differences:

  • + The current stable interface version.
  • + The need to program Arduino code makes it a little easier remembering to keep track of connected devices vs pin assignments.
  • - Arduino programming (via use of ArdSim library functions) is required along with the config file creation. Need to familiarize yourself with library functions.

XPData Input

An offshot of XPData, one of the first interface projects we created - an Arduino library utilizing built-in X-Plane communication protocol.

  • + No X-Plane plugins required.
  • + Everything is done in Arduino code, using library functions.
  • + Can be used alongside any of the other interfaces.
  • - Only works with LAN connection.
  • - Only used for inputs.
  • - Need to manually specify X-Plane datarefs and commands in Arduino code, taking up much Arduino program memory.
  • - Need to change X-Plane network settings to enable data receiving.



Archived projects

These projects are no longer supported, their functionality having been displaced by newer versions.

ARDref

  • ~ The predecessor to ArdSim. Only worked with LAN.
  • ~ Focused on using a plugin with config files instead of Arduino programming.
  • ~ Many of its ideas, such as plugin transmitting initial configuration to Arduino, have been reused for ArdSimX.

XPData

  • ~ An Arduino library, the predecessor to ARDref and XPData Input.
  • ~ Used built-in X-Plane UDP communication protocol to send input data to X-Plane.
  • ~ Had 2 different methods of receiving output data from X-Plane - one using built-in X-Plane protocol, and the other getting data from the early versions of ARDref plugin.

Baron 58 "stand-alone" code developments

The first attempts at communication between X-Plane and Arduino. Main developments include:

  • ~ The first test code to analize UDP packets from X-Plane, receive UDP packets from X-Plane and send commands to X-Plane.
  • ~ Early programs for Baron 58 Panel (June 2012). Testing data receiving using X-Plane UDP DATA method only.
  • ~ Testing of data input-output methods, Arduino code development for encoders, analog inputs, program speed optimisation etc.




To reproduce all tech solutions presented here and use SimVim Design libraries you should understand all possible risks and carefully learn all aspects of using electric equipment. Keep in mind the rules of Arduino connection and powering to prevent its damage, short circuits, etc.

Our software is for non-commercial home use.

If you want to produce some hardware (such as switch panels) as commercial product for use with ArdSim/ArdSimX, don't include the software from this website in your product, you can just distribute the hardware part, and specify which software it can be used together with, including ArdSim, giving a link to our website.


© Copyright 2012-2016 - SimVim