My Arduino BOX : 1 Toggle switch, 1 5 position Rotary switch, 3 KY-040 rotary encoders, 2 Propwash dual rotary encoders, 8 Robotdyne 6 digit 7 segment LED displays (one segment covered up), 4 Propwash face plates, 12 lighted LED buttons, Arduino Mega 2560, side toggle for Upload/Download sketch.
I created a windows app that connects arduino boards to Microsoft Flight Simulator 2020. The program is free to use. If you find it useful, I hope you will show your support by clicking the link above.
I am a novice C++ programmer who is self taught. I will continue to work on this project as my time and skill permits and if there is adequate interest. This is really an experiment for me to see if this could a viable revenue medium for the time and effort I put in it. Regardless, this is the most fun I have had with just keeping the Flight Simulator plane in the runway.
This is an intermediary between MSFS 2020 and Arduino Boxes using the SimConnect SDK which will allow you to create peripherals based on arduino microprocessors and connect them to the game. The software allows retrieving SimVars or Simulation Variables and setting SimEvents or Simulation Events.
1. Event driven Simconnect Data Retrieval with one data definition ID. This alleviates the need to sort through a bunch of request ID's to parse the data. All data comes in one package of DWORD array. that is block copied with memcpy into contiguous memory.
2. Bitpacking algorithm allowing compression of SimVar data into two bytes. A single byte data header and tail byte assures data integrity while keeping serial data transfer latency to a minimum by keeping the package size at 4 bytes. Arduino scripts are provided to unpack the data into original floating point values.
3. Graphical User Interface displays data retrieved in realtime for testing purposes. This allows verification of data retrieval and alignment of data to data variables as well as selection via checkbox of which data to retrieve. The software will keep track of all arduino requests for data and subscribe to simconnect as needed for those variable's data. Recommend to Pause Data refresh during actual use for performance..
4. Graphical User Interface also allows for testing SimEvents via a clickable button. This is for testing the effects of the SimEvents in the game.
5. SimVoice to allow for in game Annunciations or for VR users as interface guidance, or just for fun. On my PC, Microsoft David, Zira and Hazel are choices available.
6. Settable Simevents are with limited support. BCD and Integer parameters have undergone limited testing. They can be fired in the arduino but not in the GUI as there is no parameter entry field in the GUI.
7. Settable SimVars are with limited support. They can be fired in the Arduino but not in the GUI.
8. This software is as feature complete as the user would customize it. User gets to pick which SimVar or SimEvent to use and these are listed in user defined configuration files with line number as id number. Then it is a simple task to call an arduino function with the id as parameter to request the data variable or fire a simulation event. There is simple configuration string validation that is a work in progress.
9. Target audience is really somebody with a little coding skill. But don't sweat it. It's very easy and I can provide examples.
10. A Release Port button. Very handy as you will be coding and uploading sketches to your arduino and switching between serial connection to PC and serial connection to Serial Monitor. You will be hitting this button many times. You can restore the serial port connection to the app by hitting the Comm button.
11. Event driven serial port communication to arduino.
12. Multithreaded execution of SimVoice and SimEvents.
I am mulling the possibility of network enabled app communication for connecting Raspberry pi box clients perhaps via a REST server or something better. I still have to investigate that.
. Future enhancements are planned including SimSounds to play custom sounds on demand, ( Hear your virtual passengers scream as you nose dive the plane) SimRadio to play internet radio. Speech Recognition perhaps? SimPhone? SimDonuts? Well maybe that last one would be too hard. I still don't know the mechanics for some of these features but I think anything is possible.
THIS IS BETA SOFTWARE with limited testing, It still has the console window attached for debugging. I am providing AS IS. I will continue to work on it as my time and skills permit and hopefully be able to publish a final product. I hope that it will be useful to you in its current state.