-
-
Notifications
You must be signed in to change notification settings - Fork 126
Getting started with KiCAD for sim panels
So lets make a new project with KiCAD. You will have two files in the project: The _PCB_and the schema.

Even though we are looking for a PCB design in the end, we should start with a schema first, to make routing the connections easier later.
So our example is an classic analog audio panel as found on many older GA aircraft:

We can identify the following switches:
- rotary switch with 3 positions for MIC selector
- 9 toggle switches with 3 positions each
And the following leds:
- 3 marker leds
There is also a round thing on the bottom edge of the panel, that could possibly be a photocell to adjust a backlight to turn on when it is dark but lets not go there since it's maybe a bit out of the scope for this tutorial anyway.
So we can identify the following connections:
- GND (of course)
- MIC COM1
- MIC COM2
- MIC EXT
Most 3-position toggle switches are ON-OFF-ON type, so they use 2 pins each. We can also just choose to ignore the SPEAKER and use two position toggles, which would work fine as an audio panel, most people use a headset anyway. But we can wire them both here just to cover the case of three position switces.
- AUTO (SPEAKER and PHONE)
- COM1
- COM2
- NAV1
- NAV2
- ADF
- DME
- MKR audio
- Marker lights brightness
And the leds:
- Inner marker
- Middle marker
- Outer marker
So GND, 21 switch pins and 3 leds would be 1 + 21 + 3 = 25 pins for the IDC connector if I calculated right.
Lets edit the schema and lay this out. When you doubleclick the schema in KiCAD main window, you get the schema editor with an empty page. Lets click the "Add symbol" tool.

We are laying out symbols at this point, so we need to think of functionality. We have the following types of components:
- Leds
- A rotary switch
- Three position toggle switches
Lets look. You get the "Choose symbol" window that has a ton of components that KiCAD comes with. Lets look up the led first. Typing "LED" in the search field, we see "LED" under "Device" category, this is what we want, and on the right side we have options to select footprints. These are two things: The symbol is in your schematic, and the footprint is what gets placed on the PCB.

You can pick a footprint from the selector that says "No default footprint" by default. But if you are unsure, just don't pick any at this point, the footprints can be changed later. Sometimes we also need to create our own, which is not impossibly hard either.
But now we want the regular 5mm leds in this case, since the panel has clearly space for them. There are two main categories for footprints: SMD (surface mount) and THT (through-hole). Look up "LED THT 5mm" that is the most common basic LED. That'll do great here.
Make sure the "Place repeated copies" is checked, and lets place those three leds. Click three times on the schematic page.

Lets look up the connector next. Searching for "IDC" does not really work, because the schematic symbols are logical components, and the IDC connector is a footprint type, so we cannot find it with symbol search. On the schematic a pin header and a IDC connection, or a parallel port connector are the same: just pins grouped into a connector of whatever type defined by the footprint.
But since the IDC connector is two rows of pins, lets search for "conn_02x25" instead. And under there we see "Connector_Generic" and specifically _Conn_02x25_Odd. Great. Except not, we get twice as many pins as we wanted, and a huge connector.
The naming convention for connectors is based on the number of rows instead of total number of pins! So lets try again with 02x13 (26 pins) and we will find what we want. Two things to consider here:
- There are different pin layouts for 2x13, what I usually like to use is the "odd / even", so the pin numbering is based on the pins on the flat cable, there are also symbols where the pins just walk around the connector like you would walk around a building. Either work, but for now lets choose the "odd even" version.
- The footprint selector now has IDC connectors since it is a two row connector! Lets pick "IDC header 2x13 P2.54mm vertical"

We now found our connector, how cool is that? Lets add it!

The switches are also logically named. What we are after is "SPDT" "single pole, dual throw" which is a naming convention. What matters is the logical symbol here - a connection on the left is routed to two possible connectios on the right side. Our three position switch will usually have 3 pins, so one of them is GND in the center (3 in this symbol) and two additional pins for the extreme states. Something like this:

There are also 6-pin switches where you can detect the center position as well, but the wiring becomes more complicated. In MobiFlight we can also just assume "no position" means "center", so the 3 pin variant will work for us.

There will be no useful footprints to be found at this point in the selector like with the connector and leds, because there are just so many different kinds of switches, it would not make sense to list them all here. So lets just click OK and place 9 of them on the schema.
- MobiFlight Connector Installation
- Mobiflight Connector BETA version installation
- Modules
- MobiFlight Connector Files Structure
- MobiFlight Connector Uninstall
- Modules Reset to factory default
- Verifying the WASM module installation and locating the MSFS2020 community folder
- Verifying the WASM module installation and locating the MSFS2024 community folder
- Using a Winwing FCU with MobiFlight
- Using VKB controllers with MobiFlight
- Providing logs from MobiFlight
- MobiFlight Connector How does it work
- Mobiflight Connector Main Window
- Flash module with MobiFlight firmware
- Input and Output devices
- Joysticks
- Midi Boards
- Sim Variables (for Output)
- Input Actions
- Merging configuration files
- Disabling specific COM ports
- Examples Output LEDs
- Examples Input Switch
- Example 7 segment display
- Example Servo motor
- Controlling LEDs with an output shift register
- Adding lots of buttons with an input shift register
- Beginner's guide to input multiplexers
- Key Matrix with standard MobiFlight and Multiplexers
- Tutorial Easy Driver and x.27 or x.40 Stepper Motor
- Tutorial for Airbus VS display via 7-Segment LED Module
- Example Analog Input Potentiometer
- Baron G58 Tutorial Gear, Flaps, Mags, ELT Input Output Programming
- Using Mobiflight to control arduino-based 3rd party panels (RealSimGear GNS530)
- How to use a VNH2SP30 DC motor shield with MobiFlight
- Using 3D printer mainboards
- Playing sounds by sending keystrokes to AutoHotKey
- Using the selector knob on a Honeycomb Bravo
- Using an adjustable 12 position switch as a GA starter
- Brightness of LCD displays with I2C
- Using three-position switches
- Transponder with one Rotary
- Workflow for Creating Flight Simulation Panels ‐ Part 1
- MSFS2020 RPN Tips and Tricks
- MSFS2020 Using the Custom Input Code Box
- MSFS2020 Install WASM module and Event List
- MSFS2020 How to Create and Use User Defined Lvars
- MSFS2020 How to Create a Blinking LED configuration
- MSFS2020 User Defined WASM Module Events Best Practices
- MSFS2020 Developer Mode, Model Behavior dialog and Console window
- MSFS2020 PMDG 737‐700 List of Events that require use of FSUIPC7
-
MSFS2020 PMDG 737‐700 Calibrate throttle idle and reverse thrust using interpolation (Valkyrie)
- MSFS2020 PMDG 737-700 Chrono unit functions implemented in Mobiflight
- Configuring PMDG 737 Parking Brake Lever Auto-Release with a Servo in Mobiflight
- Using encoder to drive a value back and forth within a given range
- Adding a custom board to MobiFlight
- User guide - Community Board and Custom Devices
- Developing your own custom devices/boards