Subscribe to Arduino Academy and start learning today for FREE!

Add up to 128 Inputs, Outputs, or a mix to your Arduino or Raspberry Pi

The MCP23017 is a very useful chip. This I2C device can be wired for 8 unique addresses, and offers 16 inputs, 16 outputs, or 8 of each. A one stop chip for all needs.

You can talk directly to the chip, or use widely available libraries to insulate your experience from the nitty gritty.

Tronixstuff has a fantastic Arduino tutorial which covers a non library implementation. Very easy to understand, you may wish to avoid a library altogether.

Adafruit has a great Raspberry Pi tutorial to get you up to speed with a great increase in I/O capability, as well as allowing 5v I/O where the Raspberry Pi would only accept 3v inputs.

Become the Maker you were born to be. Try Arduino Academy for FREE!

These can be used to convert a parallel lcd to I2C, and give button inputs as well. Adafruit makes a lcd button shield using this functionality. Build your own at

Drive this 16 channel relay board –


Notify of
Inline Feedbacks
View all comments


Would love your thoughts, please comment.x