I/O Expander - MCP23008

Add another eight pins to your microcontroller using a MCP23008 port expander. The MCP23008 uses two I2C pins which can be shared with other I2C devices, and in exchange gives you eight general purpose pins. You can set each of eight pins to be input, output, or input with a pullup. There's even the ability to get an interrupt via an external pin when any of the inputs change so you don't have to keep polling the chip.

Use this chip from 2.7-5.5V (good for any 3.3V or 5V setup), and you can sink/source up to 20mA from any of the I/O pins so this will work for LEDs and such. Team it up with a high-power MOSFET if you need more juice. DIP package means it will plug into any breadboard or perfboard.

You can set the I2C address by tying the ADDR0-2 pins to power or ground, for up to eight unique addresses. That means eight chips can share a single I2C bus - that's 64 I/O pins!

  • 8-bit remote bidirectional I/O port
  • High-speed I2C interface (MCP23008)
  • Hardware address pins
  • Configurable interrupt output pin
  • Configurable interrupt source
  • Polarity Inversion register for input port data polarity config.
  • External reset input
  • Low standby current: 1 µA (max.) • Operating voltage:
    • 1.8V to 5.5V @ -40°C to +85°C I2C @ 100 kHz SPI @ 5 MHz
    • 2.7V to 5.5V @ -40°C to +85°C I2C @ 400 kHz SPI @ 10 MHz
    • 4.5V to 5.5V @ -40°C to +125°C I2C @ 1.7 kHz SPI @ 10 MHz

I/O Expander - MCP23008 Product Help and Resources

Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

2 Programming

Skill Level: Rookie - You will need a better fundamental understand of what code is, and how it works. You will be using beginner-level software and development tools like Arduino. You will be dealing directly with code, but numerous examples and libraries are available. Sensors or shields will communicate with serial or TTL.
See all skill levels

Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

3 Electrical Prototyping

Skill Level: Competent - You will be required to reference a datasheet or schematic to know how to use a component. Your knowledge of a datasheet will only require basic features like power requirements, pinouts, or communications type. Also, you may need a power supply that?s greater than 12V or more than 1A worth of current.
See all skill levels


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Member #413448 / about 3 years ago / 1

    Will this be available as a QWIIC module soon? Sure would be handy if so.

  • Member #228175 / about 5 years ago / 1

    Why did you choose to stock this and not the MCP23017?

    • davidhbrown / about 4 years ago / 2


      Maybe because as a 16-pin PDIP instead of a 28-pin SPDIP, you can more easily fit one of these on a mini-breadboard along with your MCU module (typically 30 positions long, but may need to waste a couple for overhanging parts). Probably not cost... the '017 is only a few cents more (if you're buying 5k of them, anyway).

      I appreciate your pointing out the 16-port version, though... I'll keep that in mind if I ever need to control all the things!

Customer Reviews

No reviews yet.