Please share your experience with the MCP23016 16-bit I2C IO Device with me.

I am building an Arduino system that will need a bunch of IO primarily for buttons, switches and LEDs. There are a few out there, but the MCP23016 seems to be readily available at EBAY and comes a Dip package, which I like.

I am counting 8 LEDs (outputs) and 10 Switches (inputs) so I probably want to design with two of these.

I would likely then wire each device to do 8 inputs and 8 outputs. That would give me a total of 16 each, input and output on my circuit. That would be good for futureproofing my design.

I hope to be able to drive the LEDs directly.

I also looked at the PCF8575 but as far as I can tell, it is unavailable in Dip package.

I prefer Dip devices because I can't see those darn little pins and I haven't invested in a $400 soldering iron yet.

Anyway, I would be interested in any comments.

For example, do I need a specific Library to operate these, or just an I2C Library?, etc.

Thanks!

From the Microchip device overview.

The MCP23016 is not recommended for new designs. Please consider using the MCP23017 or MCP23018 instead.

I have used the MCP23017. It comes in a DIP package.

I used the wire library for I2C but my own code to setup, read and write to it. Here is an Adafruit library, though I have not used it so can't comment on its use.

The 23017 can be used as 2 8 bit registers, each with its own interrupt or as a single 16 bit register.

Don't use the MCP23016. It requires an external timing capacitor & resistor, and I have experienced compatibility problems with an ESP8266. As suggested, use the MCP23017 instead and note the different pinout.

Thanks guys -- works for me.

I just ordered a few and will begin my adventure.

Greg