The I2C address bits are selectable using the on-board 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 ports.
The IO Pi includes a 5V port that can be isolated from the Raspberry Pi via an isolation jumper so you can use a seperate high current power supply to power the IO Pi reducing the load on the Raspberry Pi. Use of an external supply is recommended if you plan on connecting more than one IO Pi to your Raspberry Pi.
I2C Address Selection
The MCP23017 contains three address select pins which can be tied to Vss, Vdd. This gives 8 possible I2C addresses for each chip. The IO Pi contains two MCP23017 chips so you can stack up to 4 IO Pi boards on a single Raspberry Pi. To simplify address selection on the IO Pi we have included a set of address selection pins which can be configured using the included jumpers. The illustrations below show the four recommended configurations for your IO Pi and the associated I2C addresses.
Disconnect the IO Pi from the Raspberry Pi before changing the address pins. The address pins are tied to Vdd (high) via a 10K resistor so the jumper is used to tie a pin to ground (low).
Default Configuration (IC1 = 0x20, IC2 = 0x21)
When you purchase the IO Pi the address selection jumpers will be pre-configured to the following addesses. IC1 Port = I2C Address: 0x20, IC2 Port = I2C Address: 0x21
Recommended Address Configurations
IC1 Port = I2C Address: 0x20
IC2 Port = I2C Address: 0x21
IC1 Port = I2C Address: 0x22
IC2 Port = I2C Address: 0x23
IC1 Port = I2C Address: 0x24
IC2 Port = I2C Address: 0x25
IC1 Port = I2C Address: 0x26
IC2 Port = I2C Address: 0x27
Input Ratings & Specifications
Vdd (5V input pin when isolation jumper is removed): 4.5V - 5.5V
All digital inputs and outputs: 0 - Vdd
Current at I/O Pin (sourced or sunk): 25 mA
Maximum current on a single I/O Bank (1 MCP23017 device): 125 mA
To install the IO Pi simply press the 26 pin connector down onto the Raspberry Pi GPIO pins with the board sat over the top of the Raspberry Pi.
If you are installing more than one IO Pi on a single Raspberry Pi board then you will need to configure the address select jumpers for each IO Pi as shown on page 2 of this datasheet.
Remove the isolation jumper when connecting an external power supply to the 5V port.
A mounting kit (sold separately) can be used to secure the IO Pi to the Raspberry Pi.
Click to download schematic PDF.
Click image to enlarge
We have python 2 and 3 libraries available for this expansion board. You can download all of the libraries from github at:
To download the Python 2 libraries to your Raspberry Pi type in terminal:
git clone https://github.com/abelectronicsuk/ABElectronics_Python_Libraries.git
To download the Python 3 libraries to your Raspberry Pi type in terminal:
git clone https://github.com/abelectronicsuk/ABElectronics_Python3_Libraries.git
We have several tutorials avaiable for the IO Pi and IO Pi Plus in our Knowledge Base.
This development board/kit is intended for use for ENGINEERING DEVELOPMENT, DEMONSTRATION, OR EVALUATION PURPOSES ONLY and is not considered by abelectronics.co.uk to be a finished end-product fit for general consumer use. As such, the goods being provided are not intended to be complete in terms of required design-, marketing-, and/or manufacturing-related protective considerations, including product safety and environmental measures typically found in end products that incorporate such semiconductor components or circuit boards. Persons handling the product(s) must have electronics training and observe good engineering practice standards. This development board/kit does not fall within the scope of the European Union directives regarding electromagnetic compatibility, restricted substances (RoHS), recycling (WEEE), FCC, CE or UL, and therefore may not meet the technical requirements of these directives or other related directives.