SPRING SALE up to 20% OFF! (excludes trade customers)  •  FREE Standard Delivery for orders over £35 (ex VAT)

IO Pi Plus

32 channel GPIO Expander for the Raspberry Pi and Single-Board Computers

Save 20%

The IO Pi Plus is a 32-channel GPIO expander built around two MCP23017 16-bit I/O expander chips from Microchip Technology. It gives any single-board computer (SBC) with a standard 40-pin GPIO header and I²C bus up to 32 additional digital input or output pins, dramatically expanding the number of sensors, switches, relays, LEDs, and other devices your project can control.

Designed with the Raspberry Pi as its primary platform, the IO Pi Plus has also been tested and confirmed compatible with Orange Pi, Asus Tinker Board, Odroid, and other SBCs that expose an I²C bus on a standard 40-pin header. Any platform that can communicate over I²C at 3.3 V logic can use the IO Pi Plus with the appropriate software library.

The board is powered directly from your SBC's GPIO header. Extended header pins allow it to be stacked alongside other expansion boards, and an isolated 5 V external power input is available when you need to keep high-current loads off your SBC's power rail.

Features

  • 32 GPIO pins across two MCP23017 I/O expander chips
  • Compatible with any SBC that provides I²C on a standard 40-pin header (Raspberry Pi, Orange Pi, Asus Tinker Board, Odroid, and more)
  • Control via the host SBC's I²C port. No additional drivers or kernel modules required on supported platforms
  • Stack up to 4 IO Pi Plus boards on a single SBC for up to 128 I/O pins
  • Solder-jumper-selectable I²C addresses. 8 unique addresses per MCP23017 chip
  • External 5 V input with isolation solder jumper. Run high-current loads without stressing your SBC
  • Configurable interrupt output pins, active-high, active-low, or open-drain
  • Polarity inversion register for flexible input-port data configuration
  • Open-source software libraries: Python, MicroPython, C, C++, Node.js, .NET Core, Arduino, and Home Assistant
  • Extended GPIO header pins allow stacking with other compatible expansion boards

If you have any questions about how to use the IO Pi Plus you can browse through our Frequently Asked Questions.

Our IO Pi Plus Knowledge Base has step-by-step guides that will guide you through setting up and using your IO Pi Plus.

Technical Details

Input Ratings & Specifications

Spec Ratings
Vdd (5V pin on board) 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 Bus (1 MCP23017 device) 125 mA

Mechanical Drawings

Mechanical Drawing

Click the image to enlarge.

External Power Supply

Why use external power?

Driving multiple IO Pi Plus boards, or connecting loads such as relays and solenoids, can exceed the current budget of most SBC GPIO headers. An external 5 V supply via the screw terminal input keeps your SBC's regulator comfortable.

How to connect it

Connect a regulated 5 V supply to the 5 V input terminal (compatible with standard 5 mm 2-pin screw terminals). Remove the Link solder jumper to isolate the supply from your SBC. An external supply is recommended when stacking two or more IO Pi Plus boards.

Compatibility

The IO Pi Plus communicates over the industry-standard I²C protocol, which is supported by the vast majority of modern SBCs. If your board exposes SDA and SCL on a 40-pin GPIO header running at 3.3 V logic, the IO Pi Plus should work.

Platform Status Notes
Raspberry Pi A+ / B+ Tested Primary platform, full library support
Raspberry Pi 2 / 3 / 4 / 5 Model B Tested All variants confirmed, including 400 & 500
Raspberry Pi Zero / Zero W / Zero 2 W Tested The board will overhang one edge of the Raspberry Pi Zero
Raspberry Pi Pico Tested Via I²C pins; use MicroPython library
Orange Pi Tested Enable I²C via board config; see our Orange Pi guide
Asus Tinker Board Tested Enable SMBus/I²C; see our Tinker Board guide
Odroid Tested I²C device node must be enabled in OS config
Other 40-pin I²C SBCs Likely compatible Any board with 3.3 V I²C on SDA/SCL and a GND + 3.3 V or 5 V supply pin should work
Using an unlisted SBC? As long as your board provides a 3.3 V I²C bus, a 3.3 V supply, and a ground connection, the IO Pi Plus will communicate correctly. Enable I²C in your OS (e.g., via armbian-config, orangepi-config, or your board's device-tree overlay), then use our Python or C library. Visit our Other Supported Platforms knowledge base page for configuration guides and community tips.

Using the IO Pi Plus Standalone or with Non-Standard Headers

The IO Pi Plus does not have to plug directly into an SBC's header. You can connect it to any microcontroller or SBC, including those with a non-40-pin layout, by wiring just four signals from the host to the IO Pi Plus header:

3.3 V Pin 1
SDA Pin 3
SCL Pin 5
GND Pin 6

If you are not connecting an external 5 V supply, also connect the 5 V (Pin 2) from your host. This makes the IO Pi Plus compatible with Arduino-class boards and any SBC that exposes I²C on individual breakout pins rather than a 40-pin header, including the Raspberry Pi Pico.

When connecting an external 5 V supply, remove the "Link" solder jumper on the PCB to isolate the IO Pi Plus power rail from your SBC. This is particularly important when driving relays or other higher-current loads.

Assembly Instructions

The IO Pi Plus is supplied with the 40-pin GPIO connector unsoldered. Before using the IO Pi Plus, you need to solder the connector onto the PCB. The power link and I2C address selection are configured using solder jumpers. For convenience, we supply the IO Pi Plus with the power link jumper and one address selection jumper pre-soldered.

The I/O input pads are spaced 2.54mm apart. You can solder wires directly to the board or use 2.54mm pitch headers. The IO Pi Plus is compatible with 20-pin IDC vertical and right-angle headers allowing you to use ribbon cables to connect external devices to the board.

To install the IO Pi, press the 40-pin connector down onto the Raspberry Pi GPIO pins with the board sitting over the top of the Raspberry Pi.

When installing more than one IO Pi on a single Raspberry Pi board, you must configure the address select jumpers for each IO Pi.

Remove the isolation jumper when connecting an external power supply to the 5V port.

Assembly Guide Video

Watch our assembly guide on YouTube. (opens in a new window)

PCB Header Assembly Jig

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

Use

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 Plus, 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 Plus'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
LOW LOW LOW 0x20
LOW LOW HIGH 0x21
LOW HIGH LOW 0x22
LOW HIGH HIGH 0x23
HIGH LOW LOW 0x24
HIGH LOW HIGH 0x25
HIGH HIGH LOW 0x26
HIGH HIGH HIGH 0x27

Datasheets

Code Libraries and Tutorials

All AB Electronics software libraries are open-source and available on our GitHub repository. Libraries are available for the following languages and frameworks, covering Raspberry Pi, Orange Pi, Asus Tinker Board, Odroid, and other Linux-based SBCs with I²C support:

Language   Notes
Download Python 2 and 3 code samples Python Works on any Linux SBC with the smbus or smbus2 package
Download MicroPython code samples MicroPython For Raspberry Pi Pico and other MicroPython-capable microcontrollers
Node js code samples Node.js Suitable for server-side or IoT automation on Linux SBCs
C code samples C Bare-metal performance on any I²C-capable Linux board
C++ code samples C++ Bare-metal performance with object-orientation on any I²C-capable Linux board
Download .Net Core code samples .NET Core Cross-platform; runs on any .NET-supported Linux SBC
Download Arduino code samples Arduino For direct wiring to Arduino-class boards via I²C breakout pins
Download Home Assistant Components Home Assistant Integrate directly into your Home Assistant instance running on any supported SBC

See the IO Pi Plus Knowledge Base for platform-specific setup guides, including I²C configuration walkthroughs for Orange Pi, Asus Tinker Board, and Odroid.

IO Pi Plus Articles & Tutorials

You may also like

Important Information

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. Note: documents in Portable Document Format (PDF) require Adobe Acrobat Reader 5.0 or higher to view, download Adobe Acrobat Reader or other PDF reading software for your computer or mobile device.

Shipping and Delivery

For orders under £35 and tracked orders, the following delivery charges apply.

Shipping Rates

United Kingdom

Service Cost  Estimated Delivery Time 
Royal Mail 1st Class £3.29 1 - 3 days (Mon - Sat)
Royal Mail Special Delivery (Tracked) £8.49 Next day (Mon - Sat)

European Union

Deliveries to: Austria, Belgium, Bulgaria, Croatia, Republic of Cyprus, Czech Republic, Denmark, Estonia, Finland, France, Germany, Greece, Hungary, Ireland, Italy, Latvia, Lithuania, Luxembourg, Malta, Netherlands, Poland, Portugal, Romania, Slovakia, Slovenia, Spain and Sweden. 

Service Cost  Estimated Delivery Time 
Royal Mail Airmail Service £4.29 3-5 Working Days **
Royal Mail International Tracked and Signed £12.99 3-5 Working Days **

Rest of the World

Service Cost  Estimated Delivery Time 
Royal Mail Airmail Service £5.99 5-7 Working Days **
Royal Mail International Tracked and Signed £18.99 5-7 Working Days **

* Free delivery uses the Royal Mail 1st Class service for UK orders and Royal Mail Airmail Service for international orders.

** All International destinations are subject to customs clearance at the destination country, which can add a short delay to your delivery times. Additional import duty may be charged for your order by customs on arrival to your country based on the order value.

We have a full list of all available delivery destinations on the Shipping Country List.

We aim to dispatch your order within 1 working day.  

Working days are normal weekdays; dispatch times do not include Saturdays, Sundays and national holidays. Delivery transit times do not include national holidays and Sundays but may include Saturdays, depending on the delivery service provider in the destination country.

You can view details of international shipping issues and delays with the Royal Mail airmail service at Royal Mail International Incident Bulletin.

You can check the status of your order by going to the My Account area of the website.

Import One-Stop Shop (IOSS) FAQ

What is the Import One-Stop Shop (IOSS)?

The Import One-Stop Shop (IOSS) is a system introduced by the European Union to simplify VAT collection for goods valued at €150 or less that are shipped to customers in the EU from outside the EU. By using IOSS, sellers collect VAT at the point of sale, ensuring that buyers do not have to pay additional import taxes or customs fees upon delivery.

How does IOSS benefit me as a customer?

IOSS makes your shopping experience easier and more transparent by:

Including VAT in the purchase price you see at checkout.

Eliminating unexpected customs charges or fees upon delivery.

Reducing potential delivery delays caused by customs clearance.

Will I have to pay any additional charges when my order is delivered?

No. If your order is covered by IOSS, all applicable VAT and import charges are already included in the price you pay at checkout. There will be no additional charges when your order is delivered.

How do I know if my order is covered by IOSS?

All orders shipped to EU countries and valued at €150 or less are covered by our IOSS registration. If your order qualifies, the VAT and import fees will be automatically calculated and included in the total price during checkout.

Does IOSS apply to all products?

IOSS applies to goods valued at €150 or less that are shipped from outside the EU to customers in EU member states. Certain items, such as excisable goods (e.g., alcohol or tobacco), may not qualify for IOSS coverage.

What happens if my order exceeds €150?

For orders valued above €150, IOSS does not apply. In such cases, import VAT and any applicable customs duties will need to be paid separately, usually upon delivery. We recommend checking your local regulations for further details.

Do I need to do anything to use IOSS?

No action is required on your part. We handle all the necessary IOSS processes on our end to ensure your order is VAT-compliant and free from additional import fees.

Does IOSS reduce delivery times?

Yes, IOSS can help speed up delivery times by streamlining the customs clearance process. Since VAT is prepaid, your order is less likely to be delayed during customs inspections.

Is IOSS available in all EU countries?

Yes, IOSS applies to all EU member states. Regardless of where you are in the EU, you can enjoy the benefits of IOSS when shopping with us.

Can I claim VAT back if I am VAT registered in the EU?

If you are VAT registered in the EU and wish to claim VAT back, please use the Guest Checkout and enter your VAT registration details before placing your order. It is not possible to enter your VAT details when using the PayPal express checkout.

What should I do if I still have questions?

If you have any further questions about IOSS or your order, feel free to contact our customer support team. We’re here to help!

Delivery Duty Unpaid for orders sent outside of the United Kingdom and EU over 150 euros

All orders sent to countries other than the United Kingdom and EU over 150 euros are shipped on a DDU (Delivery Duty Unpaid) basis, and the recipient may be subject to local taxes and customs import duty, which is charged on the value of the order.

Payment of these fees is the sole responsibility of the customer. 

Order Tracking

Our standard shipping service is not tracked, and we cannot supply tracking information for your order.

We can offer alternative shipping using Royal Mail, tracked and signed for service. You can select this option at checkout. Please note full end-to-end tracking depends on the tracking service from the regional postal service in the destination country.

Once your order has been sent, you can view your tracking code, which is available in the My Account section. Please allow up to 72 hours for your tracking code to be added to your order after despatch.

Returns

Our 180-day returns guarantee means that if for any reason you are unhappy with your purchase, you may return it to us in its original condition within 180 days of the date you received the item, unopened (with any seals and shrink-wrap intact), and we will issue a full refund for the price you paid for the item. We can only accept the return of opened items if they are faulty.

All Raspberry Pi add-on boards are checked on a Raspberry Pi during production, and all inputs are checked to ensure the inputs and outputs are within the specified ratings.

We cannot accept returns for faults caused by over-voltage being applied to inputs on the boards by the purchaser.

When returning an item to us, please clearly state why you are returning your parcel and whether you require a refund or exchange. Please note that the parcel is your responsibility until it reaches us, so we recommend you send it via registered or recorded post. 

The time it takes for a refund to reach the customer depends on the banks involved. It would normally take 3 - 5 working days to complete it.

Sales Tax

United Kingdom VAT at 20% is added to all orders for UK destinations. VAT is not added to NON-UK and EU destinations where the order total is more than 150 euros.

We are not responsible for any import taxes or VAT on the orders in the destination country. Import duty/tax is always paid by the person/company receiving the parcel/order.

Removed Delivery Destinations

We regret that we had to remove the following countries from our delivery destinations due to a very high failure rate of our parcels being delivered using the Royal Mail airmail service. This resulted in us refunding all of the missing orders, and we cannot continue to make such large losses by sending parcels to destinations where a large percentage of the items are lost in the postal systems.

Brazil, China, Israel, Mexico, Saudi Arabia, Singapore, Sri Lanka, Taiwan, Turkey and the United Arab Emirates.

Also, due to problems with the courier delivering parcels to these destinations, we cannot use a third-party courier service for these delivery destinations due to the extra costs involved.

Customers can purchase our products from one of our international resellers

Home

Shop

Learn

Forum

FAQ

Contact