[Update 06/22/2018]

The MCP23017 is still the way to go to get all the GPIO (General Purpose Input/Output) pins needed for the FS1000 FTD. Since 2016, a company has come out with an expansion board that can plug into the microprocessor, but at $70.00 it is an expensive solution. Thus, I’m going to stay with using the MCP23017 as a low cost software solution to IO pin expansion. I have already developed the code to make this work.


The MCP23017 is an IO Port Expander chip. These can be used with almost any kind of microprocessor that doesn’t have enough IO pins on it. You can buy an MCP23017 chip (they are inexpensive) and add 16 additional IO pins per chip.

Here is what the chip looks like up close:


You can ‘chain’ these together to keep adding more IO pin capability, up to 8 chips, for a total of 128 additional IO pins! Take that Ardunio Mega 2560!

For those of you who are just beginning to get into this hobby field of working with microprocessors and breadboards, etc. you need at least one IO pin to support a switch or other electrical component. And often times one component will need 2 or 3 IO pins. So depending on your project size, you can start to run out IO pins fast!

Below is a picture of my breadboard test setup I built to test my MCP23017 code. Notice there are two MCP chips, so I have added 32 additional IO pins to use. I built this about 10 months ago and wrote all the code to make it work and I’m just revisiting it again. I am making a Fritzing diagram of all of the wires for a record of how I built it.

I did connect my Tablet to this breadboard to test it out and fired up the Garmin G1000 Trainer software and the 12 soft keys when pressed operated the G1000 buttons perfectly! Yahoo it still works!


And yes, the above picture looks like a rats nest of wires!

Below is my Tablet running the Garmin G1000 Trainer software and my breadboard connected to it via the USB port. I was pushing the physical buttons on the top part of the breadboard and watching the 12 soft keys on the screen work! Sweet!


So I’m finally at the point where I’m figuring out how many IO ports I’m going to need for my FS1000 FTD project. Yikes, 73 IO pins will be needed! That’s a lot of controls on the panel to interact and control the G1000 Trainer software.

I drew a pin map of the Teensy 3.6 CPU and kept feeding in MCP23017 chips until I had all the IO pin bases covered. I’m going to have to add 4 MCP23017 chips!