- 16-channel digital input/outputs (Pins 8 and 16 are outputs only)
- 8-channel 12-bit resolution analogue input (ADC)
- 2 channel 12-bit resolution analogue output (DAC)
- Real-time Clock (RTC) with CR2032 battery holder.
Expander Pi is a versatile digital and analogue expansion board for the Raspberry Pi and other compatible single-board computers. It allows you to connect to switches, lights, sensors, and many other devices, allowing you to communicate with the outside world.
The Expander Pi plugs into the GPIO port on your Raspberry Pi and can be securely fitted to the Raspberry Pi using the optional mounting kit. It is powered through the host Raspberry Pi using the GPIO port or the onboard power connector. Extended pins on the GPIO connector allow you to stack the Expander Pi and other expansion boards.
Using the Expander Pi, you can connect 8 analogue inputs, 2 analogue outputs and 16 digital inputs or outputs to your Raspberry Pi. The Expander Pi also features an onboard Real Time Clock (RTC) to ensure that your Raspberry Pi always has the correct date and time.
Mounting holes are provided so you can securely bolt the Expander Pi to your Raspberry Pi with our mounting kit (sold separately).
The 16 input and output channels, using the MCP23017 16-bit I/O expander from Microchip Technology Inc, can be independently configured as either inputs or outputs with a maximum input of 5 volts on each channel.
The 2-channel digital-to-analogue converter is a 12-bit resolution using Microchip MCP4822 dual channel 12-bit DAC with an internal voltage reference.
The 8 analogue to digital converter is a 12-bit resolution using a Microchip MCP3208 8-Channel 12-Bit A/D Converters with SPI Serial Interface with a maximum sample rate of 100 ksps and includes a 4.096 volt precision voltage reference. Please note the maximum sample rate is dependent on the programming language used and the CPU speed and usage. A separate Vref pin is included allowing you to use an external voltage reference. If you use an external voltage reference, you must disconnect the onboard voltage reference IC by removing the solder bridge from jumper J1. Failing to remove the J1 solder bridge when using an external reference could cause damage to the onboard voltage reference or your external reference circuitry.
The Real Time Clock uses the DS1307 RTC real-time clock and a CR2032 battery to maintain the date and time when the main system power is unavailable.
Warning: Do not connect the Expander Pi to your Raspberry Pi when the power is connected without a CR2032 battery installed. This can cause damage to the DS1307 RTC chip.
The Expander Pi uses a CR2032 button battery (battery not included).
Due to the use of the SPI bus and fixed addresses on the I2C bus, the Expander Pi can not be stacked alongside the ADC DAC Pi Zero or RTC Pi. Only one Expander Pi can be used on a Raspberry Pi.
The I2C address for the MCP23017 digital I/O chip is set to 0x20; if you use the Expander Pi with an IO Pi Plus/Zero, you will need to ensure the addresses for the IO Pi chips are not set to 0x20.
Suppose you want to power the Raspberry Pi from the USB connector and use a separate supply for powering the Expander Pi. In that case, we recommend removing the solder bridge "JUMPER" next to GPIO pin 1 on the Expander Pi, disconnecting it from the Raspberry Pi 5V pins.
Note for MCP4822 LDAC pin: The Expander Pi is supplied with the LDAC pin on the MCP4822 DAC connected to ground, disabling the LDAC functions. The LDAC pin can be connected to the GPIO 25 pin on the Raspberry Pi GPIO header by removing resistor R3 and bridging the pads on R4 with solder or a 0R resistor.
Note for MCP23017 IO Controller: 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.
Note for changes in version 2.1:
- U3 74HC4050D was replaced with a TXB0108PWR. U3 is used for level shifting the SPI bus from 3.3V on the Raspberry Pi to 5V.
- Resistors R3 and R4 were added to allow the LDAC pin on the MCP4822 to be connected to ground or GPIO25 on the Raspberry Pi GPIO header.
- The schematic for version 2.0 can be viewed here.
Legacy Expander Pi Versions
See our KB article for previous versions of this board.
Code Libraries and Demos
This expansion board has Python, C, C++, Node.js and Windows 10 IOT libraries. 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.
The Expander Pi uses the SPI port and I2C addresses 0x20 and 0x68; please ensure that any additional expansion boards do not have an address conflict with these I2C addresses.
Please follow our tutorials for enabling I2C and SPI before using the Expander Pi on your Raspberry Pi.
The Expander Pi can be stacked with the following boards.
- 1-Wire Plus / Zero
- ADC Pi (i2c address needs to be changed using selection jumpers)
- ADC Differential Pi (i2c address needs to be changed using selection jumpers)
- I2C Switch
- IO Pi Plus / Zero (i2c address needs to be changed using selection jumpers)
- IO Zero 32 (i2c address needs to be changed using selection jumpers)
- RS485 Pi
- Servo PWM Pi
- Serial Pi Plus / Zero
The Expander Pi is not compatible with the following boards:
- ADC DAC Pi Zero
- RTC Pi Plus / Zero
We have tested the Expander Pi on the following platforms.
|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
|Asus Tinker Board