Pimoroni IO Expander Review: ADC and 14 GPIO Pins for Your Pi

The affordable Pimoroni IO Expander adds analog inputs and more to your Raspberry Pi.

Pimoroni IO Expander
(Image: © Tom's Hardware)

Tom's Hardware Verdict

An essential piece of kit for every maker, a cost effective expansion of the Raspberry Pi GPIO.

Pros

  • +

    Cheap

  • +

    Easy to use

  • +

    Adds 14 GPIO pins

Cons

  • -

    If not used with Breakout Garden HAT, soldering is required

Why you can trust Tom's Hardware Our expert reviewers spend hours testing and comparing products and services so you can choose the best for you. Find out more about how we test.

The Raspberry Pi GPIO is great but it does miss one vital feature, analog input.There are a few ways to add analog-to-digital conversion, but each has its drawbacks. You could use a cheap ADC chip like the MCP3008, but that requires a lot of wires and soldering. Some of the best Raspberry Pi HATs, have ADC but what if you don’t need or want to pay for a HAT with a ton of other features?

However, if you’re looking for an affordable and lightweight solution for getting analog input on your Raspberry Pi,  the Pimoroni IO Expander could be your best choice. For just $10,  the IO Expander offers ADC, along with Pulse Width Modulation (PWM) and extra GPIO pins to any model of Raspberry Pi.  

Design of the Pimoroni IO Expander 

The Pimoroni IO Expander is not a typical add on board for the Raspberry Pi. Measuring a mere 1 x 0.9 inch (25 x 23mm) the board has only five connections which are made to the GPIO. The need for so few connections is due to the IO Expander using I2C, a two wire serial communication protocol. 

These five pins can be soldered to using the included male / female header pins, then placed atop the I2C pins of the GPIO. This design is not accidental, rather it is deliberate as the IO Expander  is part of Pimoroni’s  Breakout Garden range of boards. Using the Breakout Garden HAT we can insert up to six boards in the range to create bespoke projects quickly. Other boards in the range include a thermal camera, a six axis motion sensor (X,Y,Z and magnetic heading) and there are screens such as LCD, e-ink and OLED. 

Using the Breakout Garden we can mix and match boards to create projects quickly.  (Image credit: Tom's Hardware)

Pimoroni IO Expander Hardware Specifications 

The Pimoroni IO Expander uses a programmable Nuvoton MS51 microcontroller, which  is a cost effective and reliable means to provide the extra GPIO pins via the I2C interface. In fact, the custom firmware can be replaced with your own, should you have the need and the skills to do so. 

The microcontroller provides a full extra 14 GPIO pins, which can be configured as “digital”  and added to those already on the Pi. Or the IO Expander  can be used to provide eight analog pins using the MS51’s built in 12-bit Analog to Digital Converter (2DC) and six Pulse Width Modulation (PWM). All 14 of the IO Expander ’s GPIO pins are pre-soldered and ready for use. Additional pins for a 3.3V output, GND and a voltage input (VIN) are present at the top and bottom of the pin columns.

Using the Pimoroni IO Expander 

 Breakout Garden, purchased separately, is a neat and easy way to add extra functions to your Pi. (Image credit: Tom's Hardware)

We tested the IO Expander using a Breakout Garden HAT on a Raspberry Pi 4 4GB with the latest version of Raspberry Pi OS. Installation of the Python module via cloning a Git repository was painless and, within a few minutes, we were able to complete a series of example projects that covered reading the changing level of an analog voltage source, controlling an RGB LED using PWM to mix the colors, and precisely controlling a servo using PWM.

The Python “ioexpander” module is expansive and will cover even the needs of the most demanding projects. But the module also abstracts the complexities away and thus enables learners to get to grips with the board.

Right now, the only supported way to get data from the IO Expander is via the Python module, but as this board uses I2C to communicate with the Raspberry Pi, it should be possible to read the data with any language that has I2C libraries, for example Node-RED.

Use Cases for the Pimoroni IO Expander 

Using the supplied header pins we can directly use the board with the GPIO of any model of Raspberry Pi. (Image credit: Tom's Hardware)

The IO Expander  is a solid choice if your project needs analog inputs, PWM or just 14 more GPIO pins. With the IO Expander  we can add analog inputs with just this board, making it an ideal drop in replacement for our Raspberry Pi Light Show project, or as a control board for servos to precisely control a robot arm project. But this board is also useful if you have used all of the GPIO pins on your Pi. 

Bottom Line

There is nothing to hate about this board. Small in size but big in features. We finally have a convenient and simple means to add analog input, a feature missing from all models of Raspberry Pi, and augment the existing complement of GPIO pins with extra PWM and digital pins. For just under $10 the IO Expander  is a complete no-brainer, and should be in the bits box of every Raspberry Pi enthusiast. 

Les Pounder

Les Pounder is an associate editor at Tom's Hardware. He is a creative technologist and for seven years has created projects to educate and inspire minds both young and old. He has worked with the Raspberry Pi Foundation to write and deliver their teacher training program "Picademy".