Features
- 32 Digital I/O pins*
- Control via the Raspberry Pi I2C port
- Python, MicroPython, C, C++, Node.js and .Net Core libraries
- Stack up to 4 IO Pi Plus boards on a single Raspberry Pi
- Solder jumper selectable I2C addresses
- External 5V Input with an isolation solder jumper
- Based on the MCP23017 from Microchip Technologies Inc
- Configurable interrupt output pins - Configurable as active-high, active-low or open-drain
- INTA and INTB can be configured to operate independently or together
- Configurable interrupt source - Interrupt-on-change from configured register defaults or pin changes
- Polarity Inversion register to configure the polarity of the input port data
The IO Pi Plus digital expansion board gives you 32 I/O pins for your Raspberry Pi and other compatible single-board computers. The board is based around the MCP23017 16-bit I/O expander from Microchip Technology Inc. A pair of MCP23017 expanders are included on the board, allowing you to connect up to 32 digital signals to your Raspberry Pi.
The IO Pi Plus can be powered through the host Raspberry Pi using the 40-pin GPIO port or an external power supply. Extended pins on the GPIO connector allow you to stack the IO Pi Plus and other expansion boards.
The I2C address bits are selectable using the onboard solder jumpers. The MCP23017 supports up to 8 different I2C addresses, so with two MCP23017 devices on each IO Pi, you can stack up to 4 IO Pi boards on a single Raspberry Pi, giving a maximum of 128 I/O pins. This could be expanded further using our I2C Switch expansion board.
The IO Pi Plus includes a 5V port that can be isolated from the Raspberry Pi via an isolation solder jumper marked "Link" on the PCB so that you can use a separate high-current power supply to power the IO Pi, reducing the load on the Raspberry Pi. An external supply is recommended if you connect multiple IO Pi Plus boards to your Raspberry Pi. The 5V input is compatible with our 5mm screw terminals.
To use the IO Pi Plus externally from the Raspberry Pi, you will need to connect the 3.3V (Pin 1), SDA (Pin 3), SCL (Pin 5) and Ground (Pin 6) pins from the Raspberry Pi GPIO header to the corresponding pins on the IO Pi Plus. The 5V pin will also need to be connected if you are not using an external 5V power supply.
How to use:
Our knowledge base has a series of step-by-step guides that will guide you through setting up and using your IO Pi Plus.
IO Pi Plus Tutorials
* Microchip recommends that pin 8 (GPA7) and pin 16 (GPB7) are used as outputs only. This change was made for revision D MCP23017 chips manufactured after June 2020. See the MCP23017 datasheet for more information.
Legacy IO Pi Versions
See our KB article for previous versions of this board.
Code Libraries and Demos
This expansion board has Python, MicroPython, C, C++, Node.JS, .Net Core, Arduino and Home Assistant libraries available to get you started with your next project. You can download all of the libraries from GitHub at:
https://github.com/abelectronicsuk/ or click on the logos below for your selected programming language.
Compatibility
We have tested the IO Pi Plus on the following platforms.
Model |
Status |
Raspberry Pi Pico series |
|
Raspberry Pi Model A / B |
|
Raspberry Pi 1 Model A+ / B+ |
|
Raspberry Pi 2 Model B |
|
Raspberry Pi 3 Model A+ / B / B+ |
|
Raspberry Pi 4 Model B |
|
Raspberry Pi 5 |
|
Raspberry Pi Zero |
|
Raspberry Pi Zero W / Zero 2 W |
|
Raspberry Pi Compute Module 4 IO Board |
|
Raspberry Pi 400 |
|
Orange Pi |
|
Asus Tinker Board |
|
Odroid |
|