FMC Arduino and keyboard design files

Copyright Theo Deckers 2021

This documentation describes Open Hardware and is licensed under the CERN Open Hardware License OHL version 1.2  You may redistribute and modify this documentation under the terms of the CERN OHL v.1.2. This documentation is distributed WITHOUT ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING OF MERCHANTABILITY, SATISFACTORY QUALITY AND FITNESS FOR A PARTICULAR PURPOSE. Please see the CERN OHL v.1.2 for applicable conditions.

Custom libraries common to all schematics and PCB layouts

KiCAD 5.0 mcp_panel symbol library with all the custom schematic symbols used in the schematics on this page. You need this only if you want to open the source schematics below in KiCAD. There is also a PDF variant of all the KiCAD schematics and layouts.

KiCAD mcp_panel layout footprint library with all custom layout footprints used in the PCB layouts on this page.  You need this only if you want to open the source PCB layouts below in KiCAD.

FMC master PCB

The FMC master PCB uses an Arduino Nano and if no gauges stepper board is present in the system, it communicates with the serial pins (over a UTP cable) to the Arduino Mega 2560 on the Master Arduino PCB.
The FMC master has two 30 pin connectors that connect to the captain and first officer FMC keyboards below.
The unused positions in the key matrix are used for the overhead IRS keyboard (PCB design currently being tested) that can be connected with the third UTP connector.
If also the gauges stepper board is used in the system (which uses the same serial connection) the FMC master UTP socket Jkeymatrix_serial_1 connects to the keymatrix UTP connector with the same name at the gauges stepper board and the jumper at that board must be set to define that both the gauges stepper and FMC boards are present in the system.

KiCAD 5.0 schematic  (PDF)

KiCAD 5.0 PCB layout (PDF)

Gerber files (can be uploaded to a PCB manufacturer, see the instruction at the bottom of this page)

Interactive Bill of Materials (page takes some time to load)

Spreadsheet with more detailed description of the components for all PCBs

FMC Keyboard PCB

KiCAD 5.0 schematic  (PDF)

KiCAD 5.0 PCB layout (PDF)

Gerber files (can be uploaded to a PCB manufacturer, see the instruction at the bottom of this page)

Interactive Bill of Materials (page takes some time to load)

HCSCI (SimVim) config file (save as data.cfg file in X-Plane HCSCI plugin directory): see the HCSCI/SimVim configuration files section at the home page

3D model:

Sketchup 2016 3D model

3D print files:

Front panel with sidewalls (iron grey) (STL format)

Monitor frame (goes beween the front panel and PCB, iron grey) (STL format)

4.9 mm – 5.3 mm spacers for use between the front panel and PCB (STL format)
The sidewalls of the front panel are 5.0 mm high, but depending on how flat you can solder the LED switches it may be needed to use a somewhat higher spacer. These bolts were used (M3x16mm)

FMC keyboard handle (iron grey) (STL format)

Line select key bottom part (transparent) (STL format)

Alpha key bottom part (transparent) (STL format)

Numeric key bottom part (transparent) (STL format)

Function key bottom part (transparent) (STL format)

Warning LED plates bottom part (transparent) (STL format)

Rotary encoder knob, for rotary encoder with 15 mm long D-shaft (black) (STL format)

Mask for accurately glueing the text plates to the keys as shown in the video (STL format)

Material used for 3D printing the front panel, monitor frame and handle: Fillamentum PLA Extrafill Iron Grey (RAL 7011)

Recently I had some problems with filament clogging while printing the latest front panel design.
Although it may be related to my worn out Creality CR-10S extruder I have also noticed that it worked better if the gcode file was generated with Cura 4.5: with newer versions clogging becomes worse.
I’ve also switched-off ironing because this also makes it worse and the front side of the panel is at the 3D printer bed so ironing is not needed.

Non-default settings used for slicing in Cura (Super Quality – 0.12 mm profile):

  • Initial layer horizontal expansion: -0.15 mm (to avoid elephant foot causing the keys not to move easily)
  • Generate support
  • Support placement: Touching Buildplate

I used transparent PETG to print the key bottom parts, but transparent PLA is also possible.
Non-default Cura settings for these were the same as for the front panel plus additional:


  • Printing temperature 230 degrees
  • Retraction distance 6.0 mm
  • Retraction speed 38.0 mm/s

For 3D printing of 16 keys in one go (STL file of 1 key loaded, multiplied 15 times and placed at 50 mm intervals from (-75,-75) to (75,75) plus:

  • Print Sequence: One at a Time

CNC files:

Key plates with centerline font for CNC engraving, 1.6 mm black-on-white Trolase engraving plate (SVG format, DXF format, PDF format)

Key plates with font for laser engraving (SVG format, DXF format, PDF format)

Watch this video before building the FMC:

This design is part of a complete system of Master Arduino PCB, MCP PCB, two EFIS PCB’s, revision 2.5 radio backplane PCB (using a universal radio panel PCB design for 6 radios), MIP PCB, FMC master with 2 FMC keyboard PCB’s, four Overhead PCB’s (for the IRS, Electrical and Pressurization panels and using the multiplexers and LED drivers of a second MIP PCB for the remaining Overhead functions) and a stepper driver PCB for all the gauges.
Development and testing of these will take time, but once successfully tested  these will also be made available for free download in this blog.