RGB Encoder Breakout

by Pimoroni

Add a colourful light-up dial and spin your Raspberry Pi project right round!

This I2C breakout uses its clever Nuvoton microcontroller to let you easily incorporate a digital rotary encoder into your project. It's possible to directly control the RGB LED inside the encoder - meaning it's great for using as an input device which can also show you a colour coded visual status (like a LED lighting controller, or a synth wave generator). The encoder has a smooth but satisfyingly clicky action.

Encoders have a unlimited range of motion and are good for dials that need to spin round continuously - if you'd prefer one that has a start and an end, check out our RGB Potentiometer Breakout

You can attach it to your Pi's GPIO directly or via a breadboard with the included headers, but it's also compatible with our fancy solderless Breakout Garden, which makes it easy to use several different breakouts at the same time.

Features

Kit includes

  • RGB Encoder Breakout (pre-assembled)
  • 1x5 straight male header
  • 1x5 right angle female header

We've designed this breakout board so that you can solder on the piece of right angle female header and pop it straight onto the bottom left 5 pins on your Raspberry Pi's GPIO header (pins 1, 3, 5, 7, 9).

Software

RGB Encoder Breakout uses the same Python library as our IO Expander Breakout - this example shows you how to read the encoder and control the lights.

You can also use this breakout with Raspberry Pi Pico and other RP2040 boards, using C++ or Pirate brand MicroPython.

Chris has kindly added support for the Potentiometer and Encoder breakouts to his Arduino port of our IO Expander library.

Notes

  • The default I2C address is 0x0F, but it's possible to change this in software if you'd like to use multiple RGB Encoder Breakouts, or avoid conflicts with other I2C devices. The new address will be saved in flash memory, so will persist if unpowered.
  • This board uses a Nuvoton MCU with our custom firmware but if you're brave and hackerly, you can substitute your own firmware to change the way this board works and have a super cheap and capable microcontroller (though this is not for the faint of heart!)
  • Dimensions: approx 25x22x28mm (LxWxH)

6 customer reviews

a day ago
Totally neccessary adjunct to the Pimoroni Presto, it gives IO capability that is not provided by the original device, working through the I2C interface. Works well, have not yet established speed capabilities but very welcome just the same.
by Trevor about IO Expander Breakout via REVIEWS.io
10 days ago
I bought this to add digital IO pins, ADC input and PWM output to my Presto which has only I2C for Input/Output. It is really easy to connect and I've found it to be really useful.
by Anthony about IO Expander Breakout via REVIEWS.io
4 years ago
Looking forward to use this with the Grow Hat to trigger some Grow LED’s and a float switch for a reservoir.
by Darrell about IO Expander Breakout via REVIEWS.io
4 years ago
Quick delivery. Very useful for multiple analogue inputs. Would be useful to have the option of an un-soldered header, and supplied with spare/loose straight and right-angled headers for end-user soldering (some of us "old school" types don't mind a bit of soldering :-)
by Anonymous about IO Expander Breakout via REVIEWS.io
4 years ago
Great little board, I wish there was a Node-Red node to control it rather than having to revert to a Python node in Node Red. Not knowing Python it took me a little while to get my head around it.
by Christopher about IO Expander Breakout via REVIEWS.io
5 years ago
Nice breakout! Your python-code makes the difference. One thing to note though: the holes of the I2C-connector don't properly line up. Maybe this is on purpose, but in this case it would have made more sense to let the already soldered pins face to the other side.
by Bernhard about IO Expander Breakout via REVIEWS.io

User photos