The way that you hook the chip up to your breadboard will depend on the package you use (8-pin MCP23008 or 16-pin MCP23017). The pinouts are quite different between the two chips, so check the datasheet carefully first.
The MCP23017 is shown above with two LEDs connected, on GPA0 and GPA1.
- The yellow line is SDA
- The green line is SCL
- The three black lines on top are the address pins
- The brown pin is RESET which must be pulled high for normal operation
- Red is 3.3V
- Black is GND.
Since these io expander chips use i2c to communiate, you can theoretically power them from 5V while still connecting the i2c data lines to a 3.3V device like the pi. That's because the Pi has two i2c resistors that pull up SDA/SCL to 3.3V. Just make sure not to connect any resistors to SDA/SCL to 5V and you can power the chip from 5V (and have 5V input/output on the MCP chip). Its also fine of course to power the MCP chip from 3.3V but the 5V line on the Pi has more current capability so you might find its better to go that way.
BUT if your Pi power supply drifts a little higher than 5V, it might stop being able to register the 3.3V signal. So we recommend starting with 3.3V, and if you need 5V GPIO signalling on the MCP expander, try swapping the red wire to 5.0V
You can compare the two pinouts below to figure out how the 8-pin package should be hooked up depending on the pin names:
Here's a quick video of the setup I was using during testing and development. An MCP23017 is used here, running out to a mixed-signal oscilloscope with an 8-channel logic analyzer (ergo the white clip-ons on all the GPIO pins).