Dec 12, 2017

Update for ArdSimX.1

While the work on SimVimCockpit (ArdSimX.2) is in progress, we do not forget about the support of ArdSimX 1.x. Recently we've been making some improvements in the current interface and ArdSimX 1.16 .. 1.18 has been uploaded to SimVim website.

The whole firmware code was revised for this version. Now the interface has improved encoder processing similar to what we've implemented in SimVimCockpit, as well as improved initial processing of input data in the plugin and several bug fixes.

Nov 7, 2017

SimVimCockpit Development status

Lately, people have been asking us about the release date of SimVimCockpit

It's still hard to name the exact date of SimVimCockpit launch. We are dedicating all available time to it. Many features of the interface are already working and debugged, but there are still some things that need to be refined.

We could release the interface as it currently is, but the new configurator is what still prevents this. We need to finish this configurator (it will be simpler and easier to use that in ArdSimX). Although SimVimCockpit can be manually configured, we'd still need to explain all the options, as the config file format has changed significantly. We would also like to make a parameter database first, which will remove the need to write redundant options in the config file that are never changed from the default.

We have many plans, and we wish to post more frequently, with more videos, tutorials, etc...
Hope we will get more time for this soon, when SimVimCockpit is released..

Project status information

All plans concerning SimVimCockpit (working title ArdSimX.2) and the development status of all its features will now be displayed in the "Development Status"section.

Please email us if you need more specific info.


Oct 20, 2017

Arduino and Peripherals Powering

Sometimes, people who just started to work with Arduino have trouble making their ArdSimX/SimVimCockpit setup work. The cause of these problems often turns out to be improper powering of Arduino and its connected devices. Sometimes, the devices powered from Arduino drain too much power for it to handle, sometimes incorrect Arduino pins are used for powering. At best, some output devices don't work until the problem is fixed. Worst case - Arduino may be permanently damaged.

This combined diagram was designed to provide you a convenient reference for the proper powering practices for your ArdSimX/SimVimCockpit setup:

Oct 18, 2017

SimVimCockpit (ArdSimX.2) I/O structure

Like with previous versions of the interface, SimVimCockpit (working title ArdSimX.2) allows you to use any Arduino pins for direct inputs, namely buttons, switches and encoders, and direct outputs (LEDs).

If the available pins are not enough, now you can use CD74HC4067  modules as input multiplexers to expand any pin to 16 inputs, guaranteeing that a single Arduino will be enough for a cockpit of any complexity.

This is the structure diagram of SimVimCockpit connections:

Oct 16, 2017

Updated 7-Segment displays support in SimVimCockpit

As it was announced before, the TM1637 display controller support has been successfully added. I've finished and debugged the code to output data for this display type through the same multiplexer.

The only difference from all other display types is that the Data signal for TM1637 is not the same common "D"  output, but it is controlled  using one additional Arduino pin (that will be  fixed  as "D" output for TM1637).

Also, additional important updates have been done (see below)...

Oct 13, 2017

7-Segment Displays in SimVimCockpit (ArdSimX.2)

In SimVimCockpit all 7-segment displays are connected to one fixed port via multiplexer. All displays are numbered in range of 1 to 16.

You can connect different 7-segment displays that can be made using either simple 8-bit shift registers (74HC595), either any of 16-bit LED drivers (like DM13A etc), or MAX7219 driver.

Note: The TM1637 driver is supported too, currently I'm trying to adapt the data exchange protocol in TM1637 to the same port used for all other displays, but this is still uncertain, it could be another output option (additional output pin).

Oct 12, 2017

Multiple LED output in ArdSimX.2.

Like the previous interface version, ArdSimX.2 supports serial output to LEDs using the serial-to-parallel registers with latch. This allow you to connect as many annunciators as you need using a few Arduino pins. In ArdSimX.2 you can still use the 74HC595 registers connected in chain to make all annunciators for your panel.

Now we can recommend another option for multiple LEDs output (or digital signals output). In ArdSimX.2 now you can use DM13A LED driver or any other similar 16-output drivers - here is an example of this driver on Ebay. 

This IC is a 16-bit shift register with a latch for 16 constant current LED outputs. "Constant current output" means that you don't need to care about each LED's current, for all 16 outputs this current is set by a single resistor at a separate input, and each single output can sink 3 ... 60 mA, so that individual resistors on each LED are not necessary (as was needed in case of 74HC595 registers).

LED driver pinouts and wiring

Oct 10, 2017

Improved Encoder processing (ArdSimX.2)

In ArdSimX.2  Encoder processing has been totally reprogrammed. The new algorithm takes into account huge timing difference between  encoder scanning period and X-Plane frame rate, and counts precisely each encoder state change, with mininal missing steps probability.

The plugin in X-Plane can accept new data only with its frames frequency,  while ArdSimX firmware can check the encoder state about 150 times between each X-Plane frame.

In previous versions the program code couldn't send all fast state changes in one frame without missing steps while single slow changes were received by the plugin without problems.

Later (in ArdSimX) a "code crutch" was added to catch all encoder state changes and send them as multiple data packets, but this code has always been "beta" and was highly demanding to  processing time. This is why we recommended not to use encoders on the same board with steppers, for example.

In ArdSimX.2 all these problems were resolved. Now the program code reads all encoder inputs between X-Plane frames, takes into account every change and sums them, then sends the number of steps and direction in one single data packet, while at the same time using the algorithm of steps multiplication depending on rotation speed.

Oct 3, 2017

ArdSimX.2 Test - PWM control, Serial LEDs, MAX7219

In this test system one 1x16 multiplexer controls 7-segment displays (MAX7219), Serial LED output (DM13A drivers) and PWM outputs (TLC5947 controller, 24 channels, 12-bit output).

All these output devices are controlled through one multiplexer board (8 Arduino pins are reserved for this):

  1. Two MAX2719 displays are used - output of active Com1 frequency on 5-digit display, standby Com1 frequency on 6-digit display. Totally up to 16 different displays can be connecte, based either on MAX7219 chip or on shift registers, in any order with any digits number.  

  2. One 16-channel DM13A LED driver is used, this one register controls 16 LEDs. The next 16 LEDs can be used with another driver connected to the first one in series and so on.  Up to 16 total registers can be used (or up to 256 LEDs or digital outputs).

  3. One PWM controller TLC5947.  This board has 24 channels, each channel can be used for:
    • output for moving-coil gauge
    • control brightness of a single LED
    • control brightness of powerful LED/lamp groups using the appropriate driver
    • control input for other ICs such as registers with LED chain or 7-segment displays (e.g. brightness)
    • control any other PWM-controlled devices such as DC motors speed drivers, etc.

More informative videos and descriptions will be made soon (How to use DM13A LED driver and TLC5947 PWM driver).

Sep 29, 2017

Electronic components for ArdSimX.2 are gathering...

Last couple of weeks more of the previously ordered electronic parts continued to arrive, some of them have already been tested. The completed code for them is now included in the firmware. Some others are waiting for their time on the work bench.

Test results will be uploaded here soon.


Sep 2, 2017

ArdSimX Plugin v1.14

The new version of ArdSimX Plugin is now available. It fixes the bug with Serial LED non-range conditions, and returns the ability to assign several datarefs to the same output ID, which was unavailable in the previous version due to the new output parameter switch feature. Now, output config lines sharing the same ID will all be active again by default, unless an output parameter switch for them is present.

Aug 24, 2017

ArdSimX Plugin v1.13

ArdSimX plugin has been updated with a few notable improvements today.

First, it now has improved recognition of dataref types, which fixes a problem with some of the custom datarefs not being processed properly. This was the case with some of the new "laminar" datarefs from X-Plane 11. They should now work with the new version.

Next, a new feature was added that allows to use any input to act as a selector between several parameters for a single output ID. This is not yet supported by the configurator, and is mostly aimed to be used with ArdSimX v2. You can still add this manually to the configurator like this:

Aug 20, 2017

Plugin updated

ArdSimX Plugin has been updated to version 1.12. This update fixes a bug with programmed inputs that was introduced by the previous version.

The work on ArdSimX v2 continues. Along with it, we're considering features that can also be included in the current plugin version line. We're now testing a feature that allows to configure an input (such as a button) to switch between different parameters for a particular output ID. This way, for example, you'll be able to switch between several parameters on an LCD without having to program this change.

We've also added a Frequently Asked Questions page on our website, to address common questions regarding the use of ArdSimX.

Aug 10, 2017

Project status: August 2017

A quick update on the current status of our projects.

ArdSimX plugin has received a minor update for Linux and Mac versions, which fixes a potential problem that could happen when connecting 2 or more Arduinos via USB (most likely to happen on Mac).

SimVim Panel version for Raspberry Pi currently doesn't properly support mouse input, due to a bug in one of the libraries used for development. This will likely be fixed in the future. However, our primary goal with Raspberry Pi is to introduce GPIO support for SimVim panels, so you could use them with real encoders without the need for configuration (it would be just an option, in case you want to connect the inputs for these gauges to the same Raspberry that displays the panel, instead of using Arduino).
In addition to that, a couple of new panel modules are in development, for Diamond DA20 and Cessna 172.

The work on ArdSimX v2.0 also continues. We're currently working on Output extensions, in addition to the Input extensions announced earlier. The current goal is to allow just one Arduino Mega to be used for the whole cockpit of any complexity, with extension modules that will be cheaper than using additional Arduinos.

Jul 21, 2017

ArdSimX Windows LAN connection fixed, and SimVim Panels support inputs

Today we present major updates for both ArdSimX Plugin and SimVim Panel.

The plugin has been updated to v1.11, which is likely to be the final version before v2.0 with all its new I/O wiring methods.

The changes in this new plugin version include:
  • 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).
The new version 2.3 of SimVim Panel, as previously announced, now supports on-screen inputs. Connection with ArdSimX must be established in order for these inputs to work.
This support is currently included in Robin DR400 and Basic Six panel modules, with the encoders on their gauges and the buttons on Robin's timer. This new feature will also allow for more complex interactions between SimVim Panels and ArdSimX plugin in the future.

Jul 10, 2017

SimVim Panel will support on-screen inputs

Here's a little video showing the new feature that will be included in the next version of SimVim Panel - on-screen inputs. In this example, a mouse wheel is used to rotate the encoder on the altimeter gauge. This feature has been planned a while ago, with ArdSimX plugin v1.5 laying the necessary groundwork for its inclusion.

In other news, an updated version of ArdSimX plugin for Mac has been uploaded to our website today. People who experienced an issue with inputs not working on Mac can try it to see if the new version works for them.

As for the new ArdSimX v2, it's steadily being developed. Vlad is currently working on optimizing the Arduino program's work time as much as possible, which will allow the use of all the inputs needed in a cockpit with a single Arduino board. Details on how extension boards will be used are being worked out, and the final result may be different from what was announced, based on the balance we will find between optimization and flexibility.

Also, Roman has started a new tech blog where he's going to share his thoughts on various software and hardware he gets to work with. You can check it here. The first article contains a few tips we've come up with while assembling a 3D-printer.

Jun 29, 2017

New ArdSimX connection concept

We're currently working on a new Arduino connection method for ArdSimX, reminiscent of the one used in the later version of the old ARDref Interface, in addition to new pin   expansions.

Here are the main goals of of this new development:

-  use only one master Arduino board, utilizing easy and cheap (<1$) I/O expansion breakout boards.

Jun 17, 2017

Work in progress

The past month has been slow on new updates, as we're now working on several things at once.

ArdSimX online configurator has been through some bug fixes, and is gradually being improved. We plan to make some changes to the way various types of toggle switches are assigned, to make the system more comprehensible. We will also be adding various features that have been supported in the plugin for some time, but haven't been added to the configurator yet.

We're also working on a new website design and structure to make all the info easier to find and understand.

The new plugin versions have been in development for some time now, along with various library improvements. Native support for MAX7219 7-segment displays will be included in the new version. A number of other new features may be added, such as non-linear analog input and some new custom datarefs.

A recurring problem with ArdSimX have been bugs that some people encounter with USB communication on different systems, and with the current plugin version we've tried fixing some of the problems in Windows and Mac versions. Such problems have been hard to recreate, but we've finally been able to catch some USB-related bugs on Linux ourselves, so hopefully the next plugin version will include more improvements for USB connection.

May 12, 2017

ArdSimX Plugin v1.10

A new version of the plugin is now available. It includes a couple of minor fixes and an experimental feature allowing to make sending commands with encoder either more rare or more frequent. This feature is not yet included in the configurator.


Next we're planning to include more custom "blinking" datarefs for autopilot, add NAVAIDs support in the library and test the possibility of including native support for LCDs without the need for Programmed Outputs.

May 5, 2017

ArdSimX Plugin v1.9

Closely following the update to the Configurator, a new version of ArdSimX Plugin has been released.

See the changelog for the new version here.

Note that NAVAIDs output will not work until a new version of the Library is released.

May 4, 2017

ArdSimX Configurator updated

ArdSimX online Configurator has received a major update to its parameter list today.

The list now includes all of the standard Datarefs/Commands commonly needed for cockpit building, sorted into comprehensive categories and filtered by the selected input/output type. Many of the standard datarefs also come with automatically filled default values or ranges, so most of the time it's not needed to fill them in.

Some other changes include improvements to Programmed I/O config, the "Toggle button" input being moved into the "T-Switch" type for convenience, and the support for 3-position switches (which automates the process of adding 2 separate switches for such purpose).

Along with the configurator update, a new version of ArdSimX Plugin is currently in development. Major changes will include support for byte array-type output for NAVAIDs and the inclusion of more custom ArdSimX datarefs/commands that will make configuration easier for some of the common cockpit functions that otherwise would require Arduino programming if used with standard available datarefs/commands.

Apr 14, 2017

ArdSimX Plugin update v1.8

Version 1.8 of the plugin has been released.

- 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 (will be added in the configurator later)

Apr 13, 2017

Plans, To-Do

We've added a page to our website with a list of current plans and upcoming features for our project, to let you keep track of what we currently do.

We'll be updating it when anything new is implemented and new plans come up