Any interest in Arduino + Rotary Encoders and MSFS2020?

I have a Behringer BCR2000 that has a bazillion knobs. Time to experiment.

I was thinking about a button box too, but with leo bodnar board. But to easyly use a button box we need assignment for toogle selected / managed mode for speed, hdg, alt and vs. If not, we must go into virtual cockpit to click on knobs.

I also have a weird thing with VS knob. If I assign increase and reduce VS ref PA, I can use buttons to command the knob without going into the virtual cockpit. But only when the display show a value, if it’s on zero, commands won’t work.

For example, the display is managed, show “----”, I clic in virtual cockpit to change to selected (I don’t found a key for that), and it shows “0000”, if I use my assigned buttons, nothing happens. But if I scroll on the knob to display “+100”, the assigned keys works, until I reduce and I goes to “0000”, then “----”

If those Behringer boxes work with Axis and Ohs, I guess they would work with SPAD as well?

Hey… very interesting project. Maybe we can share some ideas.
I started building my ‘poor man’s radio panel’ and so far I am really enjoying it. Got some dual rotary encoders and built the code for an arduino mega matched with some VB code in Visual Studio to make the calls via managed SimConnect.

I already have COM1, NAV1 and a control for the CRS/HDG bugs for AP. Also, not to brag about it but YES bragging about… got yesterday my Honeycomb Alpha Yoke… and with the CRS/HDG hardware bug I have no issues with the 10 degree issue people is reporting.

I’ll post some pictures later today. I am planning to expand it to both COM, NAV and also ADF and XPDR… we’ll see how well it turns out…

If someone is interested in the code please send me a PM

Happy flying!!!


I had a similar idea, but with some of those cheap 1 inch OLED screens to display the actual value.


This may be of interest to people, i’m not affiliated with this guy at all, although I have ordered the kit, just awaiting delivery now. I’ll let you know what its like once its arrived and is up and running if you’re interested.

Introducing Class Echo - A MSFS2020 Touch-Screen Information System & Controller


nice panel! reminds me of my grand plans for an A10 pit…

1 Like

probably works with spad. the biggest problem is that there is a lot of sim actions that dont’ have a corresponding function to trigger. its really half baked on the sim side. but I’ve been able to configure the most important functions on the midi controller. between it and a touchscreen i’m making headway into getting away from mouse clicks in the cockpit almost completely.

@DaJoeNgr01 This is pretty much my setup, Arduino just sends serial data when the encoders turn or pressed. And I have a C# app reading it in and sending keys. Though I really want to do it with Simconnect. Did you come across any good tutorials or sample code for this? I have messed with it a bit and MSFS2020 but I’m having mixed success. Like it will send me telemetry data while flying (one experiment) but then just stops. Ideally adjusting the AP, etc. programatically would be better via simconnect then sending keystrokes.

1 Like

I only touch my keyboard for two things now: ATC interaction, and spoilers on the Mooney M20R. Everything else is done by the Logitech/Saitek gear, or my yoke.

You can use your C# code to read serial com data from Arduino board and send command to simconnect through FSUIPC! Their library is available on nuget with many examples of usage. I did a POC and I managed to get it working!

Interesting thanks… Never thought of using FSUIPC, have heard of it back in the FSX days but haven’t done much with it…

Most of the code on how to send data to simconnect was thru tutorials and other samples.
I don’t really know much syntax of C#, C++, etc. but I know VB syntax.

I basically do the same thing, loop thru the variables in arduino and when something changes then send a command to the VB program which, in turn, do a CASE SELECT of the first 3 chars sent and with that, know what event to send to simconnect.

the serial string I send from arduino is 7-8 characters long with the first 3 being the function to alter (HDR/CRS/CM1/NV1), etc. and the other 3-4 chars the actual value to set via simconnect event…

@DaJoeNgr01 Gotcha… Yeah, I just send the rotary encoder and direction.

Rotary One CW: <1+>
Rotary One CCW: <1->
Rotary One Push: <1!>

And for the other rotaries, <2+>, <3+>, etc. I kept the Arduino “agnostic” and plan to re-arrange the knobs and purpose in the PC code.

yes… I was trying to do use the event to increment/decrement values as sent by the encoder but I do the ‘math’ (+1 or -1) in the arduino and send the ‘calculated’ value altogether to VB.

That is what the correct ‘method’ I guess should be. However, for ‘easier’ purposes I send the value (HDG300) and then use the event to ‘set’ the value into simconnect. Everytime a new calculation is done, the event simply sets to 330, 329, 328 instead of sending +1, +1, +1 to the sim.

I am using lcd displays connected to the arduino to display these values as well, I don’t look to the radio panel almost anymore in the virtual cockpit.

Poor man’s Radio panel with CRS/HDG knob


Very cool… Card board is great for prototyping…

1 Like

Not only that… Amazon Box re-used!!! :joy: :joy: :joy:

1 Like

Look at MMJOY2 for simple button boxes with arduino. Simply tell it where you hooked up your buttons, pots, or encoders and it will appear as a customer made game controller you can map to any binding.

So I’m just starting to work on something similar. I’ve never done an electronics project like this but I’ve been doing a lot of research and am on my way with a lot of starter gear kits. :slight_smile:

My thought was to build a box with the C208 AP functionality - since clicking on knobs while flying around in turbulence isn’t easy, especially for my buddy that also flies the 208 but has some vision issues. A physical set of knobs and buttons will greatly help him. So basically I want to build a POC for myself, get the bugs worked out, then build one for him.

What I’m seeing though is the sending keystrokes doesn’t work for everything because the sim hasn’t hooked up all the keyboard shortcuts yet - is that the basic issue? Are the AP functions and states exposed by the SDK and readable from Sim Connect (I’m not a real programmer but I know enough to get by in a few languages, including C# and a smattering of C++). And if they’re readable, can you also write to them?

Looking forward to seeing how these projects work out! Thanks and good luck to everyone!