

Assembled - PicoIO64 with soldered 2x20 headers and socket for a Pico/Pico2 [W] with headers.
The PicoIO64 adds 64 3.3V I/O pins (5V tolerant) to the Raspberry Pi Pico using four 16-bit XRA1403 SPI I/O Expanders coupled with an 800mA 3.3V regulator. The I/O can be used for front panel LED, buttons interfaces, etc.
The I/O is arranged in two banks each with two 16-bit SPI expanders A/B and C/D, each bank has it's own SPI connection, IRQ, RESET and individual IC chip selects (CS_A/CS_B and CS_C/CS_D). Splitting the banks like this allows each banks SPI interface to be controlled using a dedicated core of the RP2040/RP2350 at up to 26Mhz.
The GPIO connections are documented on the underside of the PCB are shown in the table below.
Signal | GPIO | Description |
---|---|---|
SI_AB | GP19 | SPI IN for Expanders A/B |
SO_AB | GP20 | SPI OUT for Expanders A/B |
SCL_AB | GP18 | SPI Clock for Expanders A/B |
!IRQ_AB | GP16 | IRQ notify from Expanders A/B |
!RST_AB | GP15 | RESET for Expanders A/B |
CS_A | GP21 | SPI chip select for Expander A |
CS_B | GP17 | SPI chip select for Expander B |
SI_CD | GP11 | SPI IN for Expanders C/D |
SO_CD | GP12 | SPI OUT for Expanders C/D |
SCL_CD | GP10 | SPI Clock for Expanders C/D |
!IRQ_CD | GP5 | IRQ notify from Expanders C/D |
!RST_CD | GP14 | RESET for Expanders C/D |
CS_C | GP13 | SPI chip select for Expander C |
CS_D | GP2 | SPI chip select for Expander D |
The XRA1403 I/O expanders are fully featured, each of the I/O pins can be configured as push-pull output (optional three-state mode), input (optional polarity inversion, optional ~100k pull-up resistor) and a multitude of interrupt options (rising/falling edge, filters, etc.).
The I/O expanders can source/sink a maximum of 25mA per pin, up to 100mA per bank of 8 pins (0-7, 8-15) and overall the IC can source 160mA over all 16 pins.
A library to use the XRA1403 I/O expander with CircuitPython can be found on Github.