Flight simulator avionics panels

Now that I can steal Kat’s camera (she’s asleep, will never know 😉 ), I can put together some shots of a ‘little’ project I’ve been working the past month or so…

As I spend quite a bit of time playing flight simulator on the PC, using the mouse to click buttons to change radio frequencies, control the GPS, or even just flick switches to turn on or off navigation lights doesn’t quite cut it compared to sitting in the cockpit of a real airplane. This realisation materialised long before I actually took the intro flight in the Cessna 152 last month 🙂 There are people who literally spend thousands of dollars and hundreds (if not thousands) of hours rebuilding complete Boeing 737 or Airbus A319 flight decks which look amazing, though a little difficult to accomplish out here. Plus, you’re pretty much pigeon-ed into flying that one particular type of aircraft. The in-between are companies like GoFlight or SimKits which build + sell individual panel components to connect together allowing to utilise them as you see fit and for controlling any aircraft you wish to load up in flight simulator. Again, fantastic units, but still more than a little pricey at $110 plus shipping for a basic 8-button or switch panel.

Since I can’t complain about not having time to build something similar myself and being able to pick + choose the various electrical components myself from various suppliers online, I er, did:

Flight sim avionics panel

It still needs a couple of sheets of balsa wood for the top parts of each panel which I’ll get in Anchorage next month, but everything is functional and otherwise complete. Some of the labels aren’t perfectly straight and I could do with adjusting some of the push buttons on the autopilot panel so they are all aligned, but it wasn’t built to score any style points! It runs off four USB to 20 button interface modules produced by Desktop Aviator which provide the core controls. These were a great find, even if the articles on flightsim.com which explain how to use toggle switches, push buttons and rocker switches were slightly biased in recommending them given the author of the articles is the founder of the Desktop Aviator 😉 But, I liked the way I could buy just one or two and add in functionality over time (which is exactly what I did to make sure I could do what I wanted to do with them in the first place before).

The first completed section was based just off rocker switches and push buttons. The rotary switches for the autopilot panel were added later:

Avionics panel

The electronics behind were not all that complicated – the push buttons connect straight to the input pins on the USB interface controller, whereas the toggle or rocker switches require a simple circuit built around an optoisolator to generate a ‘pulse’ as the switch is flicked to allow the computer to recognise the input. The flightsim.com article and instructions on the Desktop Aviator website explain it all in detail and isn’t hard, just time consuming, as this part of the panel required 20 of these small circuits to be soldered. But, figuring on about a $1 for a rocker/toggle switch, $1 for the optoislator, and maybe another $1 total for a capacitor, two resistors and diode, factoring in the USB controller being $29 for 20 inputs, you’re still looking at less than $5 per input. The fantastic plastic panels at 75c each also from Steve at Desktop Aviator were great too as it meant I could drill them however I wanted to group the buttons and switches to my liking.

Com panel

The radio panel was the main section I wanted to build, as all available solutions are either complicated, expensive, or both. Dual rotary push button switches aren’t easy to find and pricey when you can, and also require either a separate interface controller (usually the more expensive kind used in high-end simulators where you have 80+ inputs per controller) or meant you have to program your own microcontroller to interpret rotating clockwise or anti-clockwise. For the hardcore who won’t accept anything less, they’ll pay quite a price for these kind of inputs, but me, I’ll take a little less!

Taking a basic single-pole 12-position rotary switch (one of the most commonly available at about $2.50) and wiring up pins 1-5-9 and then 3-7-11, it creates the equivalent of a standard toggle switch. To switch between Mhz and Khz when adjusting radio frequencies, after connecting the output of the rotary switch to the standard pulse circuit, the output of this pulse circuit normally going straight to the USB interface controller instead connects to what would be the output of a SPDT toggle switch. The upper terminal can then connect to an input pin on the controller, and the lower terminal to another input pin. Now, when you flip the toggle switch, the rotary controller’s output is sends a different event to the PC. Here’s the circuit to explain a bit better (yes, pretty much just what’s on the Desktop Aviator site):

Circuit diagram

With the way the rotary switch is wired, you only get a pulse sent on every second ‘click’ as we have a break between our contacts. In practice, this actually works nicely, as with FSUPIC which is used to pass the controls to flight sim, it needs a 1/4 second pause (I believe) between inputs otherwise it won’t recognise it, so if you were rotating very quickly, it wouldn’t register anyways. If you had a rotary switch that had a slightly smoother contact point on the rear (as oppose to mine which has quite a large ball which makes a definitive click and clunk), you probably wouldn’t notice it really. Still, our drawback (for the moment…) is that rotating either clockwise or counter-clockwise, we can’t make a difference in whether we’re increasing or decreasing our radio frequency. This is where the more complicated solutions involving a dedicated microcontroller would read in a binary output from the rotary switch (if we wired up our other contacts in the same manner) to calculate what position the switch is being moved to/from and thus whether it’s going up or down. In contact with Desktop Aviator, they are actually producing a pre-programmed chip to do just this, but no word on pricing. Anyway, my simple solution is to use a modifier key within FSUIPC.

In FSUIPC, I mapped each rotary switch to send a key command rather than an action in flight simulator. For example, rotating the rotary switch for COM 1 will map to Ctrl-C by FSUIPC, and then you can set Ctrl-C to represent COM RADIO WHOLE INC. Fairly straightfoward. Then, add another key mapping for Ctrl-Shift-C to represent COM RADIO WHOLE DEC. Hold down shift whilst rotating the rotary switch and now the frequency will decrease. Technically, you can continue rotating the rotary switch clockwise and it will decrease so long as you’re holding down the Shift key but that’s no fun 🙂 As I use the CH Yoke, the left rear button on the yoke is set as the Shift key, so I simply hold my finger down on the button whilst rotating the rotary switch counter-clockwise to decrease the frequency; release the button and turn clockwise to increase the frequency. Repeat this key-mapping process where Shift acts as the modifier key to decrease the frequency for the other COM and NAV functions, and with the toggle switch on both Mhz and Khz.

Sounds like a clunky process, but in practice it’s all pretty natural. When leaning over to adjust the radios, you’d keep your left hand on the yoke anyway, so it’s no problem to press you finger on the button at the rear of the yoke. Flicking between the Mhz and Khz positions is no harder than moving your fingers between the inner and outer knobs on a dual-rotary switch. I also put in two push buttons for each control – one to enable the COM or NAV channel and another to switch standby frequency. Really, the only thing missing is an LED screen showing the frequency and your adjustments, but that’s getting back into substantially increasing cost + complexity. With this setup, each rotary switch requires 2 inputs on the USB interface controller, plus one each for selecting the channel and standby frequency. To do both COM 1 + 2 and NAV 1 + 2, it works out to about $50 including the cost of the USB interface controller. A 3rd of the price of the GoFlight unit, though admitedly requiring a little more work to get going and not providing exact functionality of those in a real airplane by having. Still, for those on budget and with the time and patience to build the controls themselves, very worthwhile.

Other cool features I included was a GPS panel which happily recreates the Garmin GNS 430’s found in the EagleSoft Cirrus SR-22 and the default Garmin 500 model within FS2004. The rotary controls work in the same way as the radio controls. I also used another rotary switch to represent the ignition switch of a GA aircraft, and then a selection of buttons and a toggle switch for sending the transponder code and going between standby + on. There’s no direct controls available for FSUIPC to do things like IDENT but you won’t get that unless you fly online with something like VATSIM, with clients providing that functionality anyways.

Shoot voice recognitionWhilst building these avionics panels, I also came a lightweight, quick, and free voice recognition utility called Shoot which allows you to speak commands and have the computer respond. This is my way of ‘talking’ to ATC without $50 on VoxATC or similar. Again, it’s not going to perfectly replicate talking to ATC with the correct phrases, but in conjunction with Peter Wilding’s control set and adding in a bunch of other commands, I can say “Ready for taxi for north departure” even though all Shoot sends to flight sim is ‘4’ (or whatever) to select from the text-based prompt in the ATC window. Makes things a lot more realistic, and after a few flights of adding in commands on the fly (no pun intended!) as I came across a new ATC command to set, I very fairly have to just say the numbers to move through menus.

All in all, pretty happy with the setup now, as it certainly gives me a lot more to do when flying, and kept me entertained for a good while figuring out how to do it all and then building up the circuits and wiring the controls. An awful lot cheaper than buying pre-built modules, and let me build it exactly how I wanted, such as for the GPS panel. If you have no interest in flight sim, all this has probably made no sense, but will at least give you something to read to help you sleep! And if anyone is trying to do something similar, let me know in the comments to share your ideas + suggestions or if you have any problems.


Senior Content Development for Microsoft writing about Azure virtual machines. Occasionally I play video games.

Posted in computing, flying, my projects Tagged with: , , , , , , , , , ,
7 comments on “Flight simulator avionics panels
  1. emmanuel says:
    Internet Explorer 7.0 Windows XP

    please send me the plans for this please

  2. fouldsy says:
    Mozilla Firefox 3.0.6 Mac OS X 10

    The circuit diagram is already detailed here along with information on how the other systems work. I don’t have anything else, it’s all fairly self-explanatory. The Desktop Aviator website has a mailing list which is pretty good if you need any extra help.

  3. Mozilla Firefox 3.5.3 Windows XP

    Nice piece.It always amazes how you guys have taken real hardware and interfaced it with your flightsim. I am just starting my journey and i am looking for various Aircraft Parts i am also looking to convert the real thing.

  4. Herly Yanto says:
    Mozilla Firefox 40.0 Windows 7

    I still confuse as I tried to connect 3 position toggle switch with keyboard for engine choose. Please help me. Thank you

  5. Herly Yanto says:
    Mozilla Firefox 40.0 Windows 7

    Please help me connecting 3 position toggle switch to engine choose of pmdg 737. Thank you

  6. Cacamole says:
    Mozilla Firefox 44.0 Windows NT

    If this fellow – nice as he might be – thinks this is self-explanatory we have the explanation why Microsoft hasn’t managed to make Windows work since XP.

  7. fouldsy says:
    Google Chrome 48.0.2564.116 Windows NT

    Sorry you’re not following along and feel it’s too complicate, Cacamole. This was never designed to be a walkthrough guiding you everything step by step, the idea was that you could/would follow along through your own research and have, or research, a basic understanding. Truth be told, most of this is largely way outdated at this point – Desktop Aviator have boards that fulfill all the roles these small circuits did, Shoot doesn’t exist/function anymore, and most there Arduino solutions that provide for the LCDs driving radio/NAV. If you want self-explanatory, again, check out the Simkits or similar that are pre-made and you just hook up to USB. This was more to spark people’s curiosity and own drive in learning. There’s plenty of documentation and forums that explain all the different area if you’re willing you dig further. Best of luck to you.

Leave a Reply

Your email address will not be published. Required fields are marked *


About Me

Iain Foulds, 32 years old. Originally from England, now living in Seattle, WA. I currently work as a Senior Content Developer for Microsoft writing about Azure VMs. Gamer. Very passionate about photography. Comments and opinions expressed here are my own. More...