X-Plane 11.10, released yesterday, features a new default Garmin 1000 module ... which can be used as an option in the Cessna 172 right now, and most likely will be adopted by add-on GA aircraft eventually.
I have three ongoing unfinished home cockpit projects but this is tempting me to start a fourth! It looks like I am going to end up with a hybrid Boeing 737/Cessna 172 !
A Few Hours Later ...
So let's just say ... IF ... I were to do this ... what would it entail?
Two LCD panels to begin with. I actually already have two LCD panels, but am toying with the idea of replacing them, as they are TN LCD panels, and look terrible when viewed from an angle (here's a comparison), which is how they end up being viewed given their position on my desk. The best would be to get an IPS panel -- if you've seen an iPad you know they have a wide viewing angle.
The size and type of the LCD doesn't matter, but in my case I am constrained by space. A 12"-12.5" display fits on my desk nicely. My plan would be to get a "naked" LCD panel, and build a frame around it with the knobs and buttons. My ThinkPad X220 laptop uses a 12.5" "LG LP125WH2" IPS panel, which is a good place to start. These are USD56 each, with free shipping. These panels have a resolution of 1366x768 -- good enough for a 12" display. Too small and it will appear ugly, too big (e.g. a full HD 1920x1080) and it puts a strain on your PC's display system.
Note that these panels have a 16:9 wide-screen aspect ratio, which is wider than the G1000's 4:3 ratio displays, so things will appear a bit stretched. How stretched? Here's an example. It's not unusable, and given that these fit my desk and are reasonably priced and I can fit two XHSI panels (for the glass-cockpit 737NG) and also use them with Air Manager (for old-style steam gauges), I can probably live with the stretching.
If you insist on having the 4:3 look, then I would suggest getting this "LCD Module with 10.4inch HDMI VGA input GDNHD156AU-G104X1-L04" from good-display.com which comes with a HDMI/VGA driver board. It is unfortunately USD306.25 each! I
Back to the LP125WH2, these displays come with a 30-pin "EDP" interface, which means we need a LCD Driver for them. These are USD25 each, again with free shipping. They connect to the LCD panel via a ribbon cable, and in turn provide a HDMI, DVI and VGA port to connect to your PC.
For my flight sim PC, I have an nVidia GTX980Ti driving my three main 24" monitors. My motherboard, a Gigabyte GA-H170M-D3H has support for on-board graphics (a VGA D-Sub, DVI, and HDMI connector, with support for up to 3 displays at the same time). The interesting thing is that the onboard graphics can still be used while an NVidia card is plugged in as the primary display. So these two G1000 panels can be driven directly just by using the onboard graphics, saving me from needing to buy an additional low-end graphics card just to drive them. I only need to get a 2 meter DVI-to-HDMI (USD2.68) and HDMI-HDMI (USD 1.94) cable.
For the microcontroller and i/o, I've become inclined towards designing application-specific solutions rather than making generic modules that work in combination (as I've learnt from my 737 Overhead panel, modular solutions are a nightmare to wire). So (IF ...) I were to design a controller for this, I would custom make a PCB, and have everything on the board itself. But what is "everything" ? I'm keen to try using the Raspberry Pi Zero W (MYR42.40 or USD11.00), as it is small and can plug straight into a PCB (if you solder the pins below the board), and also features built-in WiFI. They can be a bit hard to source without resorting to scalpers, however, depending on where you live.
The Pi comes with about 23 GPIO lines, insufficient to drive all the knobs and switches on the G1000, so we will need to look at I/O expanders. I've had good experience with the MCP23017 I/O expanders, but how many do we need?
To answer this, I went through the G1000's PFD, MFD and COM panel and summarised all the controls into a spreadsheet.
For regular push-buttons, we can save on GPIOs by using a matrix design. Given we have a total of sharable 91 push buttons, I decided to build a 16x6 keypad matrix. This is because it is easy to read 16 lines in one go from the MCP23017 expander. The matrix therefore needs a total of two MCP23017 ICs (with 10 pins left over).
What type of push button switches? At this moment I'm thinking to just panel mount the buttons and rotary encoders, and attach 3D- printed covers over them, so simple panel mount momentary push button switches will do. I plan to use these simple ones, that come in a pack of 20 for USD4.38. We will need 5 packs altogether.
For the dials, we will need to use incremental rotary encoders, so that we can report clockwise or anti-clockwise movement to the simulator. It is easier to have dedicated GPIOs for this, as we can have them trigger interrupts whenever there is a state-change, which is important so as not to miss any signals when they are spun rapidly. The signals on most rotary encoders also share a common ground wire, making them difficult to use with matrix designs.
The rotary encoders used on the real G1000 are dual concentric encoders with push switches. These have an outer ring that can be spun independently of an inner knob, allowing two separate rotations to be registered. Pressing the inner knob can also trigger a switch.
These rotary encoders are bloody expensive to source in small quantities, so I shall settle for the simpler EC11-like rotary encoders. These are panel-mount rotary encoders, and have just a single rotating shaft. They also feature a built-in push button switch, so we can simulate a dual concentric encoder via a rotate to simulate the inner knob, and a push-and-rotate to simulate the outer knob. I found a pack of 10 with 20mm D-shaft on ebay for USD4.99 (x2). Of course, where the real G1000 alsomakes use of a push-function, we will need to have a separate push button for it, which makes it not a 100% accurate replica. But this is the price to pay for keeping costs down.
We need a total of 57 "dedicated" GPIOs. This takes up 4 MCP23017 ICs (with 7 pins left over).
There are LEDs on the Radio Panel. Some of these are "dummy buttons", so the ones that actually work in X-Plane come up to a total of 9 LEDs. They require a GPIO each. We can use the 10 spare pins from the previous MCP23017. In addition to GPIOs, they also require some electronics to drive their higher current requirements. Rather than use discreet NPN transistors for each one, I've decided to try using ULN28003A ICs. These ICs have 8 NPN transistors built into them. Two ULN28004As would be enough for what we need. I found a pack of ten ULN28003As on eBay for USD1.27. We will also need DIP holders, which can be found for a pack of twelve for USD0.99.
This brings our MCP23017 count to a total of 2 + 4 = 6 ICs. We can get 10 pcs of MCP23017 for USD 8.77. I'll also need narrow DIP28 holders for them (20 pack for USD1.86).
The LCD driver needs a 12V 3A power supply (it is used to power the driver board and also the LCD Panel). Let's double this since I have two displays, bringing us up to 6A, and maybe add another amp or two to cover the Raspberry Pi and I/O interfaces. a 12V 10A can be purchased for MYR 43.00 / USD10. Add in a 12V-to-5V buck converter to power the Pi and I/O intefaces (USD2.62).
Here's a shopping list spreadsheet ... that I would use *if* I were to build a G1000 panel that is. 😀
A Day Later
Parts ordered ...! 😀