Connect my own controls to FS2020 - how to start with SimConnect?

I’m brand new in this forum. But I’m familiar with flight simulation. Currently I’m still using FSX with the Jeehell FMGS A320 add-on. I’m an A320 fan, and I’m looking for the most realistic simulation. Unfortunately, FMGS doesn’t run on FS2020, and probably never will. And FSX is getting really old. So time to move on…

But this forum section is about Home Cockpit Builders. I started to build my own cockpit a few years ago. This is going to be a 10 year project (or even more?), but I have time. I’m still in what I call the “study phase”. Some accomplishments I had so far:

  • I created my own PIC-microcontroller board and connect it with switches, LED’s, rotary encoders, 7-segment displays. The board communicates over USB.
  • I wrote a “DeviceHub” application in C# that can talk with several boards, including some monitoring tools
  • I wrote a “FMGS_DLL” that loads with the FMGS Add-On. This DLL works with the A320 FMGS through an API (thanks to Jean Luc from Jeehell to provide me with all the details) and on the other side uses network sockets to talk to my DeviceHubs. By this method I can easily “distribute” my hardware over different PC’s.
  • I purchased a Snapmaker A350 (CNC, 3D-printer, Laser) to make my own hardware. After several iterations, I now have a working push-pull rotary encoder with 2 axis (used in the A320 FCU for altitude) and created my own version of Korry switches (the large and smaller ones).
  • I’m using the following tools: Sketchup, Fusion 360, Cura, Inkscape, EasyEDA, MPLAB X, Visual Studio
  • My first goal is to make the A320 FCU. My panel is based on white plexiglass, painted in gray, then engrave the letters to allow backlighting. I now ordered a 4-layer PCB with JLCPCB to make a mockup of that FCU panel.

Sorry for the long intro :slight_smile:

Basically, I have 3 questions:

  1. Any idea on a realistic A320 add-on for FS2020 that can be controlled by own hardware? (Fenix A320? A320NEO? or is the native A320 of FS2020 good enough?)
  2. Any babysteps I can take using SimConnect, allowing to re-use (after some adaption of course) my above concept? I know there are a lot of tools that “hide” SimConnect, but as you can read above, I’m not afraid of some coding myself. Who can guide me to some tutorials? I know where to find the SimConnect SDK, but would be nice to have some real examples.
  3. Do these “Add-ons” (example the Fenix A320) also work with SimConnect, or do I need some proprietary SDK (which might even not be public?).
1 Like

Maybe I can add a practical example.

Imagine I want to control the BAT 1 Master switch with one of the switches on my panels. And as the result of that, the BAT 2 OFF LED on my panel should light up. How can I achieve this using SimConnect?

I found this documentation: SDK Documentation

But that is very generic, and doesn’t show any details on how to control the BAT 1 master switch on the A320. And certainly not of a 3rd party A320.

Have a look at the Mobiflight wasm module. What you want, can be done with default and 3rd party aircraft through simconnect. I use the FBw A320, but also the CRJ, CJ4, etc.

You need Mobiflight or something similar to expose variables that are not standard available through simconnect.

@TFEV1909 Thanks for your quick response. I have read a lot about FBW A320 a year ago, but didn’t follow it closely. At that time it looked very promising. Is this one of the more accurate simulations of the A320 today available in FS2020?

I have experimented with Mobiflight a year ago as well. But would it support my custom PIC-controlled boards? And after all, isn’t Mobiflight also using SimConnect to talk to the simulator? And how does SimConnect know the FBW A320 variables? I’m just curious and would like to understand.

UPDATE

Interesting stuff found on the FBW website: API and Hardware. This explains a lot.

I am the author of GrandTourFlightPlanner. Due to popular demand (one user :smiley:) I uploaded a VS solution to demo how to use SimConnect in a C# project. It is at my website (at the bottom). You can single step in the VS debugger to see how it works. Best wishes for your ambitious project.

@DrinkingGuide84 Thanks a lot! Interesting stuff you are working on :slight_smile:

I also found a very interesting video on YouTube. It’s the promising first part of a series (lot of people wait for part 2 now). It also explains very clearly how to start with SimConnect. You can find it here.

But @TFEV1909 learned me that you can’t do everything via SimConnect if you are using 3rd party add-ons. Kind of logic - the specifics of the add-on are not known by the “generic” SimConnect (at least, that is what I understood).

I wonder if the Fenix simulator is going to provide an SDK when released. That looks like a really promising realistic add-on to me (not free of charge).

Mobiflight basically extends simconnect so you can also communicate with 3rd party variables (Lvars).

Definitely going to check your website. I built my home cockpit using Python, but have been looking for an easy to start c# solution for a while.

You can do all this with Lua scripting in Air Manager. Depends if you want an easier life or the pain of having to deal with the Microsoft SDK and sim connect directly. Any variable or event that is exposed by the sim can be accessed. The data exposure is dependent on the aircraft developer. FBW seem very good in this regard where as some others seem to make it difficult or sometimes impossible for cockpit builders to access the required data.

@TFEV1909 You mean my website? Unfortunately, I don’t have one (yet). I’m planning to create one, but just wouldn’t have enough time right now to keep it updated. Maybe when I’m retired :slight_smile:

But I’m more than willing to do a knowledge transfer. I’m just about to read about these LVARS, Events, … so much to learn. I’m still not 100% sure how all fits together. Would be nice to have some diagrams that explains the relation between all different parts.

1 Like

@Sling380 It’s not about “easier life”. I just like to stick to the roots of a system, independent of other tools. I just like to dig in these details. To be honest, sometimes I wonder if I like it more to learn and develop stuff, rather then flying :slight_smile: And the challenge to understand complex systems is like a drug for me.

I totally understand the way of thinking. Personally I prefer to study the aircraft systems rather than some ill conceived SDK. Good luck with your project.

1 Like