Need help with Adafruit-MCP23017-Arduino-Library?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

225 Stars 153 Forks Other 41 Commits 27 Opened issues

Services available


Need anything else?

Contributors list

Adafruit MCP23017 Arduino Library Build StatusDocumentation

This is a library for the MCP23017 I2c Port Expander

These chips use I2C to communicate, 2 pins required to interface

Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit!

Written by Limor Fried/Ladyada for Adafruit Industries.
BSD license, check license.txt for more information All text above must be included in any redistribution

To download. click the DOWNLOADS button in the top right corner, rename the uncompressed folder AdafruitMCP23017. Check that the AdafruitMCP23017 folder contains AdafruitMCP23017.cpp and AdafruitMCP23017.h

Place the Adafruit_MCP23017 library folder your /libraries/ folder. You may need to create the libraries subfolder if its your first library. Restart the IDE.

Pin Addressing

When using single pin operations such as pinMode(pinId, dir) or digitalRead(pinId) or digitalWrite(pinId, val) then the pins are addressed using the ID's below. For example, for set the mode of GPB0 then use pinMode(8, ...).

Physical Pin #

Pin Name Pin ID
21 GPA0 0
22 GPA1 1
23 GPA2 2
24 GPA3 3
25 GPA4 4
26 GPA5 5
27 GPA6 6
28 GPA7 7
1 GPB0 8
2 GPB1 9
3 GPB2 10
4 GPB3 11
5 GPB4 12
6 GPB5 13
7 GPB6 14
8 GPB7 15

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.