The idea for this hobby project arose out of the need for a user-friendly, easy-to-use, yet powerful I/O control interface for a flight simulator. It should save you a lot of time and money, allowing you to focus on building the cockpit itself, without thinking about how to make it work, without having to have any programming skills and using complex custom electronic components.
Like all other aviation enthusiasts, I became a fan of flight sims since they just appeared on PC (in late 80th), and it was natural wish to fly with more realistic controls, making at least a yoke and rudder connected to game port. When the Internet became available at home, I started looking for a suitable I/O interface, but in the end the few options available were either too limited or too complicated.
Then, after a 5-year break, when I bought X-Plane 9 in 2011, having a clear understanding of the troubles that cockpit builders might face using existing solutions, especially since some of them may have little or no electronics and programming skills, I decided that now was the time to create an interface for X-Plane, using my experience in electronics and “micro-coding” and my son’s programming expertise. Of course, things have become much easier with the advent of cheap "development boards".
Before that I started building a full-size Baron 58 panel simulator and used Arduino (with Mega1256 microcontroller) as a convenient platform (no need to deal with “bare-bone” micro-controller chip programming) to write input/output code for this panel that used UDP network protocol built into X-Plane. It was just standalone code (not library).
The fact is that over the past 20 years I’ve seen quite many home cockpits exposed in the Internet which just have been started and then eventually stopped, or became never been finished projects, eating a lot of money for years. Of course, that doesn't mean it's about the interface, but if you need to become an expert in programming and electronics to get a few LEDs and displays to work in your cockpit, it can frustrate and stop many enthusiasts..
First, the current implementation of this project would have been impossible without my son (Roman) with his wide-range system and application programming skills. My programming expertise is mainly related to hardware (micro-controllers), scripts, web… So, this interface became a “father & son” team project.
The goal was to create an interface that would be a powerful, flexible, yet easy-to-use tool for home cockpit builders. In the end, using SimVimCockpit should allow you to concentrate on the cockpit building process, not thinking about how to make it work with the simulator, not wasting money on expensive modules and electronics.
The SimVimCockpit is the 6th generation of our input-output interface for X-Plane. At first, we spent a little time learning the in-built X-Plane UDP protocol, then there were a few “transitional” libraries, that grew up to become ARDref / ArdSim / ArdSimX with using the plugin as main part of the system, and finally to the current SimVimCockpit Interface. All history of development is here:
|Baron 58 code developments||UDP tests, 2012-2013||The first test code to analize UDP packets from X-Plane to receive packets and send commands to X-Plane. Early programs for Baron 58 Panel (June 2012) using 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.|
|XPData Library for X-Plane data Input/Output||2014 to 2015||First convenient library created, used built-in X-Plane UDP communication protocol (Ethernet) to send input data to X-Plane. Had two different methods of receiving output data from X-Plane - one using X-Plane UDP protocol, and the other getting data from the early versions of ARDref plugin.|
|ARDref Library and Plugin||to July, 2015||The "transitional" library. Only worked with Ethernet, used several slave boards. 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 later for SimVImCockpit.|
|ArdSim Library and Plugin||v.1.2 late 2015 to v. 5.4 in 2017||The predecessor to ArdSimX. Main differences: ArdSim library has a set of functions that you had to use in Arduino code to setup input controls and assign specific action (switch, encoder, LED etc.) for any Arduino pin. Arduino programming (via use of ArdSim library functions) was required along with the configuration file. Needed to know the library functions and X-Plane datarefs/commands|
|since 2017 to v. 1.33 in July 2018||Direct predecessor of the SimVimCockpit. Configurable inputs/outputs (buttons, switches, encoders, analog axes, rotary switches, LEDs, 7-segment displays, few stepper motors and PWM-gauges) without any Arduino programming using online configurator.|
|since 2018 to present||The SimVimCockpit interface has completely replaced ArdSimX and all previous projects, it provides much more capabilities and offers more control and output options, requiring significantly less effort and cost to use with a very flexible I/O configuration.|
The SimVimCockpit project is always in a constant development state, it still has a lot of potential, and its functionality can be improved and changed during the development process.
SimVimCockpit Interface will stay free, non-commercial hobby project, and any donations are highly appreciated! Many of you are long-time patrons, and this is very generous help, thank you all !
Patreon operates as one of the donation services, but allows you to support your favorite projects on a monthly basis by donating a small amount charged each month from your PayPal. You can define any donation sum monthly, change the amount, or end the patronage at any time. Even if you want to make a one-time donation, you can subscribe and then unsubscribe after the first week of the month.