Workflow for Creating Flight Simulation Panels - MobiFlight/MobiFlight-Connector GitHub Wiki
Overview
MobiFlight and MobiFlght Connector give us the tools to interconnect hardware devices with our favorite flight simulator. Many of the "hardware devices" are collections of knobs, buttons, switches, gauges, LEDs, and/or displays that represent a specific set of functions in the cockpit. In complex aircraft there can be dozens of these groupings, commonly called "panels". This wiki provides a systematic approach to reproducing a panel from any aircraft. This isn't by any means the only way to create a panel, but it's a good starting point for a serious cockpit build out. There are a number of skills you either need to already have or be willing to learn which are described below. This document is NOT a tutorial on any of those skills -- there are tons of fantastic tutorials on YouTube for all of them.
Assumptions
The workflow documented here is assuming you're using 1/8" (3mm) acrylic sheets as the basis for your panels. This is by far the most common material used for panel construction. The workflow progresses from panel layout and construction to printed circuit board layout, but doesn't require you use PCBs for your panels. If you prefer point-point-wiring, just stop the workflow after the panel is fabricated and proceed with your point-to-point approach. I will not cover that approach, but will point out some modifications to the panel fabrication process that need to be considered if you do intend to take the point-to-point wiring approach.
Prerequisites
You'll need to have (or learn) the following skills and equipment for this workflow to be effective:
- Experience with some kind of 3D CAD tool
I use Autodesk Fusion (formerly called Fusion 360) and will be showing screenshots from that tool to illustrate things. If you've got experience with something else (SolidWorks, FreeCAD, Sketch-Up, etc.) be assured there are certainly going to be similar functions to the things Fusion does in your tool. That said, if you have NOT built up skills in any particular CAD tool yet, I strongly recommend Autodesk Fusion (there is a free version for personal use) and excellent "learn Fusion" tutorials on YouTube. - Access to a CO2 laser cutter
White acrylic sheets cannot be cut with a diode laser, irrespective of the laser power. The laser is the wrong frequency and simply will not cut the acrylic. You'll either need your own CO2 laser (they're not cheap), access to one in a local Makerspace, or a willingness to send your panel design to an outside service that does custom laser cuts. An workable alternative is to use a CNC machine to cut the panels. CNC can produce panels at or near the same quality as a laser, so if you don't have access to a laser but do have access to a CNC machine, the same workflow described here will apply. - Some knowledge of microcontrollers
MobiFlight uses standard microcontrollers (several models of Arduino micros or the Raspberry Pi "Pico") to provide the interconnection between your controls and MobiFlight Connector which runs on your Windows PC and "talks" to your flight simulator application. You don't need to able to program the Arduino or Pico yourself, but you need to be comfortable with what they are and how to wire them into your cockpit. - Experience with a printed circuit board layout tool
If you want to use PCBs you need to be able to design the circuits and layout your physical controls on a PCB to match your panel. This may sound terrifying if you don't have experience in electronics -- but trust me: it's not that hard to learn what's needed for the large majority of panels. It's rarely much more than converting the point-to-point wiring you'd be doing anyway between an Arduino (or other microcontroller) and your switches, LEDs, etc. into traces (etched copper paths) on a printed circuit board. Using a PCB dramatically simplifies your cockpit build. While you _could _ learn to etch your PCB design yourself, you absolutely don't need to do that (and I think I'm safe to say that nobody does that any more). There are a dozen or more PCB fabrication shops all over the world that will do it for you at a very low cost. - Experience with soldering
While all of the PCB fab houses will also do component assembly for you, you're going to end up needing to be able to solder. If you don't know how, there are dozens of good tutorials on YouTube and you can get inexpensive "learning to solder" kits from Amazon and/or AliExpress. If you do know how to solder but haven't actually done it in years, it's still a good idea to watch one of those tutorials and get a kit to practice on -- you don't want to mess up your PCB when it gets back from the fab. - Access to a 3D printer
Besides the panel itself you need to be able to reproduce the buttons and knobs on the panels. For this you'll almost certainly need access to a 3D printer. These aren't super-expensive and if you're going to be building lots of panels it's well worth the investment to buy one for yourself. If you don't know much about 3D printing yet, watch some overviews on YouTube. I invested early-on in both a good FDM printer and a good resin printer. You'll end up using both when fabricating parts for your cockpit build. If you have a Makerspace nearby, that's another good place to get access to 3D printers.
Basic Workflow (the TL;DR version)
- Get a screenshot of the panel you want to build
- Figure out the dimensions of that panel
- Sketch the panel in your CAD tool
- Insert the screenshot of the panel into your sketch
- Use the screenshot to place the cutouts for your switches, display, knobs, etc. into the panel sketch
- Export the sketch into a 2D drawing file (typically, DXF format)
- Use the exported DXF file to cut the panel parts from a sheet of acrylic
- Use the exported DXF file in your PCB design tool to locate exactly where to place physical components
- Export the completed PCB design as a STEP file
- Import the PCB step file back into your CAD tool to verify component location against your panel model
- Iterate steps 5-10 as necessary to fine tune your panel cutouts and/or your PCB component locations.
A full description of each step follows.
Detailed Workflow
Get a screenshot of the panel you want to build
This is pretty straightforward. Launch your simulator, load up your aircraft and use your camera controls to zoom in on the panel you want to replicate as a physical panel. I'm building a cockpit for the HotStart Challenger 650 which runs in XPlane and we'll be building up one of the simple panels from that aircraft. Here is a picture of part of the "pedestal" (the center console in a complex aircraft). We're going to build the panel in the upper-left.
Move the camera to zoom frame the panel as carefully as you can and use your favorite screenshot tool to get the image. I just use the standard Windows snipping tool.
Save this away someplace appropriate as you'll need it for step 4.
Side Note:
I strongly encourage you to develop some kind of organized folder structure for your panels right from the beginning. You're going to be collecting up images, notes, drawing files, 3D model STEP files, etc. for every panel. You will drive yourself crazy later trying to find stuff if you don't stay organized.
Figure out the panel dimensions
We need to get the physical dimensions of the panel and that necessitates a diversion into some background about the standards for panels in all modern aircraft -- the real aircraft. The panels in all modern aircraft have a specific function: a radio, or navigation functions, or aircraft trim, or lighting controls -- and on and on. Each panel is modular -- it's designed so it can quickly swapped out for service and a similar panel swapped in to get the aircraft back in the air quickly. This quick-swap mechanism -- and the resulting panel form-factor -- dates back to an engineer named William Dzus in the 1930's (yep, nearly 100 years ago). He invented a quarter-turn, quick release fastener that is used in probably all aircraft in the world today. Along with that came a rail system that the panels mount into -- and that defined form-factor that persists to this day. Almost all panels are exactly 5 3/4" wide (146.05mm, but let's just call if 146mm). Almost all panels are an integer multiple of 3/8" (9.53mm) tall. The spacing of the mounting holes for every panel follows a similar pattern -- they're 5 3/8" center-to-center wide and a multiple of the panel height apart their up/down spacing.
Here is an image of an empty pedestal from some random aircraft that shows the Dzus rail system:
This three-column center pedestal structure is pretty much a standard across commercial aircraft and dictates that all panels have exactly the same width and a set of fixed heights so that they'll line up with the mounting holes on the rails.
With that in mind, we even have to figure out how to measure the width of the panel we're working on from above -- we know it's 146mm wide because that's dictated by the standard. We also know it's some multiple of 3/8" tall -- we just have to figure out what the multiple is, and we'll do that next.
Developing physical measurements from an image
There are a number of tools available online to allow us to extract pretty decent measurements from an image if we have a known dimension. The one that I use is here: Photo Measure. Here's how it works:
I drop my panel screenshot from above into the page:
Now we need a known dimension -- which we absolutely have: the panel is 146mm wide. Drag a line from the top left corner of the panel to the top right corner. Since it's your baseline reference, the line will be red:
And now type in the known dimension:
From now on, any additional lines you draw will be in green and a scaled dimensional value will be displayed with the line. Let's get the height of the panel:
Of note, the measurements from the various image tools are not 100% accurate because they're very sensitive to the initial line you draw for the "known dimension" I can see that I didn't draw the red line all the way across the image and so my height measurement is going to be a little bit wrong -- but I don't care about that because all I'm trying to determine is which of the standard Dzus heights this must be. Looking at a handy reference table:
I see that the closest matching height is for a so-called "6U" panel (6 Dzus units) that's 57.15mm tall. With just that single photo measurement, I know the exact physical dimensions of this panel. It's not an estimate -- it's the exact physical size of the panel. If we make our panel this size it would fit in a real aircraft.
While I'm here I can make any additional measurements I want. In this case I grabbed the height and width of the buttons and diameters of the knobs on the dual-encoders. Again, I want to emphasize that these measurements aren't perfect -- but they're really close and almost certainly good enough for us to develop decent 3D models of the buttons and knobs.