Adafruit
Adafruit MCP23017 I2C GPIO Expander Breakout
The Adafruit MCP23017 I2C GPIO Expander Breakout adds 16 extra GPIO pins to any microcontroller or microcomputer over I2C. Each pin can be configured as a di...
The Adafruit MCP23017 I2C GPIO Expander Breakout adds 16 extra GPIO pins to any microcontroller or microcomputer over I2C. Each pin can be configured as a digital output (driving up to 25 mA — perfect for LEDs) or as an input with optional internal pull-up resistors.
With three configurable address pins, you can connect up to 8 boards on a single I2C bus for a total of 128 GPIO. Two configurable interrupt (IRQ) pins let you monitor input changes without polling the bus. The MCP23017 runs on both 3.3V and 5V power and logic, making it compatible with virtually any development board.
Key Features
- 16 GPIO Pins – Each configurable as input (with optional pull-up) or output (up to 25 mA per pin)
- I2C Interface – Simple two-wire communication with 3 address pins for up to 8 devices per bus
- Dual Interrupt Pins – Configurable IRQ outputs eliminate the need for bus polling
- 3.3V and 5V Compatible – Works with any logic level without additional shifting
- STEMMA QT / Qwiic Ports – Solderless I2C daisy-chaining on both sides of the board
- Matching Ground Pads – Convenient ground connections alongside each GPIO pin
- Breadboard Friendly – Includes header strips for breadboard prototyping
Ideal For
- Projects requiring more GPIO than your microcontroller provides
- LED matrix or button matrix control
- Input expansion for keypads, switches, and sensors
- Daisy-chaining multiple expanders for large-scale I/O
Package Contents
- 1× Adafruit MCP23017 I2C GPIO Expander Breakout (with STEMMA QT / Qwiic connectors)
- 2× Header pin strips
Resources
Jargon buster
Plain-language definitions for the technical terms used above.
- breakout
- A breakout is a small circuit board that makes a tiny or hard-to-solder component easier to connect to with standard pins. It matters because this OLED module can be wired into a microcontroller project without needing to solder directly to the display’s fine contacts.
- GPIO
- General-purpose input/output pins are microcontroller pins you can set in software to read signals, switch devices on and off, or connect to peripherals. The number of GPIO pins matters because it limits how many buttons, LEDs, sensors, and other parts you can wire directly to the board.
- I2C
- I2C is a two-wire communication bus used by many sensors and small modules. It matters because several I2C devices can share the same two wires, but each device needs a compatible address and your controller must support I2C.
- IRQ
- Short for interrupt request, a signal pin a device uses to get a microcontroller’s attention when something needs handling. It matters here because I2C communication with the sensor requires connecting the IRQ pin to a suitable input pin.
- LED
- A light-emitting diode is a small electronic component that lights up when current flows through it in the correct direction. In this kit, LEDs create the flashing effect, so polarity and correct soldering matter for the project to work.
- microcontroller
- A microcontroller is a small computer on a chip that runs your program and controls connected inputs and outputs. For this product, it is the part that reads buttons and sensors, drives the display and speaker, and communicates over Bluetooth.
- Qwiic
- Qwiic is a plug-in connector system for I2C devices that uses small 4-pin cables, so you can connect compatible sensors without soldering. It matters because your controller or adapter also needs Qwiic, or you will need a cable or breakout to wire it up.
- STEMMA
- A plug-and-cable connection system used on some maker electronics boards to make wiring simpler. If a product uses STEMMA, you need the matching cable or connector type to plug it in without soldering.
- STEMMA QT
- A small plug-in connector system for I2C boards that lets you connect compatible sensors and controllers without soldering. It matters because it can make wiring faster and less error-prone, especially when adding several small modules to a project.
Related Tutorials
Free guides on learn.littlebird.com.au