MCP, EFIS, MIP, SimVim, knobs and the throttle quadrant

The original prototype of the radio panel backplane PCB used almost all pins of an Arduino Mega.
To get more inputs and outputs available, the authors of SimVim introduced the use of multiplexers for inputs and 7-segment display driver clocks and updated their software so that multiple LED drivers can be daisy-chained for up to 64 LEDs per Arduino pin.

Using this concept I have designed new radio backplane, MCP, EFIS, MIP and FMC PCBs.
All of these are connecting to a single Arduino Mega master PCB that interfaces with X-Plane.
The master PCB that connects to the Arduino has been moved from the back of the radio backplane to the back of the MCP PCB, because that is more central in the cockpit.
The MCP and the two EFIS PCBs have short flatcable connections to this master PCB while the radio backplane, MIP and FMC PCBs connect to it with UTP cables.

The first designs that have been tested are the MCP and EFIS.


Except for the solenoid AT Arm switch circuit, which has not been tested yet, all functions of the MCP work, but some things need improvement:
– the pins for connecting the dual LED switches currently are not on a standard connector pitch. Although they can be soldered it’s easier to connect them with a 6-pin IDC connector.
– when moving one of the MAX7219 7-segment controllers to a different location on the PCB the Iset resistor has not been moved by mistake, meaning that it has very long wires to the MAX7219 in the current design.
– the 74HC595 shift registers that drive the LEDs are not ideal because they can supply very limited currents and are sensitive to interference. I’m going to replace them with DM13A circuits instead. This has a big impact on all other PCB designs because the 74HC595 connects to the power (anode) pin of the LEDs , while most constant current LED driver circuits like the DM13A connect to the ground (cathode) pin of the LEDs. This means that all signal LED pins must be swapped and need a common power connection instead of a ground connection.
– the margins around the holes for the switches were very small, which means that closeby PCB tracks easily may get damaged when milling the holes
– blanked 7-segment displays (VS and part of the IAS/MACH display) are faintly flickering. The root cause for this has not been found yet, but ideas for fixing this are wider power and ground traces and putting the three MAX7219 controllers closely together in the center of the PCB to avoid long clock and load signal traces. To make room for this it was decided to switch to SOP24 SMD package MAX7219s instead of through-hole 24 pin DIP packages.
– Only 3 out of 16 multiplexer outputs are used for the MCP MAX7219s clocks, so an UTP connector has been added that may be used later to connect 8 clocks to some other part of the cockpit (e.g. a future Overhead)

In the first prototype of the MCP through-hole packages were chosen because I had no experience with SMD soldering. On the EFIS PCB there was no space for the large 24 pin multiplexers so I had to use the somewhat smaller SMD variants and found that soldering these was easier than I had expected, even with my simple cheap soldering iron.

– the backlight LED PWM powerFET and heatsink have been removed because switching large currents caused too much interference on the other circuits. Instead an external LED dimmer will be used.
– For more realism a new solenoid AT Arm switch has been designed using a momentary toggle switch (‘active on’: hold the switch lever in the up position when AT Arm is enabled instead of ‘active off’: pull the lever down when AT Arm is disabled). A different electromagnet is used for this because cheap push/pull solenoids get too hot when used continuously for a long period.


To lower the temperature even more a PWM circuit is considered, which has been integrated on the MCP PCB, but if interference appears to be a problem it may be left out of the MCP PCB and moved to a separate PCB.

Also all functions of the EFIS design worked on the first prototype PCB, but although the connections for it were there, the mechanical construction of the band switch with push button had not been taken into account.
Meanwhile an updated EFIS PCB has arrived plus two small PCBs that are used to mount the LED switches behind the rotary switches.

Unfortunately I made a small mistake with one DM13A connection on the new Arduino master PCB, but luckily it can be patched so that I can test the rest of it.

Most of the master FMC PCB has been assembled, but unfortunately the Arduino Nano pins don’t fit in the round pin sockets that I had planned to use for it, so I’m currently waiting for new sockets to arrive.


Besides the PCBs I’ve also been working on 3D designs for the MCP and EFIS knobs.


The 3D models and STL files of the knobs can be found here.

I’ve also started to work on a yoke: progress of that can be read here.

As I got a number of requests for drawings of the throttle quadrant I’ve converted my 2D drawings into a Sketchup Make 3D model.
By using the free STL or DXF export plugin each part of the model can be exported.

Before finalizing the model I first want to complete the throttle PCB design as wiring is getting too messy now.

I’m still a bit in doubt how to interface the throttle to the simulator: the large number of I/Os require an Arduino Mega, but I’ve read that an Arduino Leonardo or Micro connected to USB can be seen as a joystick by the PC, which would make a very easy interface. As Chinese Arduino versions are cheap I could use both, but using two Arduinos for the throttle alone feels a bit like overkill, especially if it is possible to connect the rest of the whole cockpit with just a single Arduino mega.

8 thoughts on “MCP, EFIS, MIP, SimVim, knobs and the throttle quadrant

  1. Dear Theo,
    nice work you did, but i ve a Question about you Arduino you connct with X-Plane. How do you write the Commands to x-Plane…Are you using XPUIPC for this or other stuff ?
    I Plan an Controller for the A320 Ultimate and want to DIY.

    Greetings Patrick


  2. Awesome work and thanks for sharing with the community.

    I also will be using Simvim and had a question about the FMC build. The button programming I understand.

    What method did you use to output video to the FMC display?



    1. Hi Kalease, I’m using ZCDU for both FMC plus lower EICAS displays on a large monitor, so my FMC frame just has a hole for the display and lies on the large monitor


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s