Knowledge Base

The AB Electronics UK Knowledge Base provides support solutions, tutorials and troubleshooting guides.

Knowledge Base

IO Pi Zero (Discontinued)

Legacy product information for the IO Pi Zero

Legacy IO Pi Zero

This item has been replaced with the IO Zero 32.

Features

  • 16 Digital Inputs/Outputs
  • Control via the Raspberry Pi I2C port
  • Stack up to 8 IO Pi boards on a single Raspberry Pi
  • Solder pad selectable I2C addresses
  • External 5V Input with an isolation pad
  • 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 Zero is a 16-channel digital expansion board designed for use on the Raspberry Pi Zero. The board is based around the MCP23017 16-bit I/O expander from Microchip Technology Inc. An MCP23017 expander is included on the board, allowing you to connect up to 16 digital inputs or outputs to the Raspberry Pi. The IO Pi Zero Expander is powered through the host Raspberry Pi using the GPIO port. Extended pins on the GPIO connector allow you to stack the IO Pi Zero and other expansion boards.

The I2C address bits are selectable using the onboard jumpers. The MCP23017 supports up to 8 different I2C addresses, so with one MCP23017 device on each IO Pi Zero, you can stack up to 8 IO Pi Zero boards on a single Raspberry Pi, giving a maximum of 128 I/O ports.

The IO Pi Zero includes a 5V port that can be isolated from the Raspberry Pi via an isolation solder jumper so you can use a separate high current power supply to power the IO Pi reducing the load on the Raspberry Pi. The use of an external supply is recommended if you plan on connecting more than one IO Pi to your Raspberry Pi.

To use the IO Pi Zero 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 Zero. The 5V pin will also need to be connected if you are not using an external 5V power supply.

Input Ratings & Specifications

Spec
Ratings
Vdd (5V pin on I2C bus)
2.7V - 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

3D CAD Model

Click to download 3d filesIO Pi Zero - 3D CAD File (STEP Format)

Schematic

Click to download schematic
Click to download the schematic PDF.

Mechanical Drawings

Mechanical Drawing of Raspberry Pi IO Pi Zero

The IO Pi Zero is supplied with the 40-pin GPIO connector unsoldered.

We supply the IO Pi Zero this way because the Raspberry Pi Zero is also provided without a GPIO header. The IO Pi Zero could be fitted above or below the Raspberry Pi Zero.

Before using the IO Pi Zero, you must solder the 40-pin GPIO connectors onto the PCB.  

 

PCB Header Assembly Jig

Download and print our PCB Header Assembly Jig to hold your circuit board when soldering the header pins.

Assembly jig for Raspberry Pi expansion board

I2C Address Selection

The MCP23017 contains three address-select pins, which can be tied to Vss or Vdd.  This gives 8 possible I2C addresses for each chip. To simplify address selection on the IO Pi Zero, we have included a set of address selection pads which can be configured by applying a small solder bridge across the required pads. The I2C address table shows your IO Pi Zero's recommended configurations and associated I2C addresses.

Note:
Disconnect the IO Pi Plus from the Raspberry Pi before changing the i2c address. The address pins are tied to GND (low) via a 10K resistor, so the jumper is used to connect a pin to Vcc (high).

Default Configuration (IC1 = 0x20, IC2 = 0x21)

I2C Address Table

2 1 0 Address
      0x20
      0x21
      0x22
      0x23
      0x24
      0x25
      0x26
      0x27

We have Python, C, C++, Node.js and Windows 10 IOT libraries for this expansion board. 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,

Microchip MCP23017


Was this article helpful? Yes No

Please tell us how we can improve this article:

Submit
Created 23/04/2022 | Last Updated: 04/07/2024

Related Expansion Boards

Order a IO Zero 32 Photo of IO Zero 32
IO Zero 32

32 channel digital I/O expander for the Raspberry Pi

£13.19 Ex VAT: £10.99

Related Articles

ADC Pi (Discontinued)
ADC Pi V1 and V2 expansion boards
Serial Pi (Discontinued)
Serial Pi RS232 Expansion board
Expander Pi (Discontinued)
Information for Expander Pi expansion board Legacy Product
Logic Level Converter (Discontinued)
Information for Logic level converter
RTC Pi (Discontinued)
Product Information for the version one RTC Pi board
ADC DAC Pi (Discontinued)
2 Channel ADC and 2 Channel DAC for the Raspberry Pi
Buffer Pi - Legacy Product
Bi-directional voltage-level translator for the Raspberry Pi
RTC Alarm Pi (Discontinued)
RTC Clock Module with alarm for the Raspberry Pi
Com Pi (Discontinued)
Com Pi for the Raspberry Pi
IO Pi Plus 1.0 (Discontinued)
IO Pi Plus 1.0 Legacy version information
Delta-Sigma Pi (Discontinued)
Delta-Sigma Pi ADC Board
IO Pi (Discontinued)
IO Pi Expansion board
IO Pi Zero (Discontinued)
Legacy product information for the IO Pi Zero
1 Wire Pi (Discontinued)
1 Wire Pi expansion board legacy information
1 Wire Pi Plus 1.0 (Discontinued)
1 Wire Pi Plus 1.0 - Legacy version information