Super-slim, super-cheap, super-rainbowy! Blinkt! is a single row of eight APA102 (also known as DotStar) RGB LEDs, kind of like a quarter of a Unicorn pHAT, or an eighth of a Unicorn HAT.

It's just gone on sale on our shop today and we think it's going to be a popular one, because LEDs + cheapness = must buy.

Here's the story of its (very brief) development...


The APA102 LEDs that Blinkt! uses are a lot nicer than the ubiquitous WS2812/Neopixel LEDs in many ways. They don't require the precise timing of the WS2812s, which makes working with them with the Raspberry Pi much easier.

APA102 closeup

Blinkt! uses pins BCM 23 and 24 for its data and clock respectively, and the pixels are all individually addressable, just like our other LED pixel pHATs and HATs.

It's fascinating to look at the pixels under the inspection microscope and see the IC and pads to which it is connected. The two small white squares and one red square at the bottom, with the wires attached, are the red, green and blue elements.

APA102 closerup

It's ideal for use as a status indicator, or in combination with one of our other pHATs or HATs, but more on that later...


Blinkt! was an idea that developed while Alex Ellis was visiting us less than a month ago for his special guest appearance on the Bilge Tank, talking about Docker on the Raspberry Pi.

Alex had been using the Ciseco Pi-LITEr - a tiny, white, 8 LED strip - as a status indicator for his Pi Zero Docker cluster, but mentioned that it would be nice to have something similar, but with RGB LEDs. Well, that was all he had to say...

Within a day (!!), Jon had designed the PCB in Eagle and sent off for a prototype panel from Eurocircuits.


Alex's Docker cluster

Alex was keen to use Enviro pHAT, in combination with Blinkt!, to demonstrate how they could be used in a Docker cluster to monitor server racks for temperature spikes or unauthorised interference. In fact, he was going to be speaking about it at DockerCon 16 in three weeks' time!

Less than two weeks later, we had the prototype panel in-hand and put together a few of them to send off to Alex. As with all of our prototype spins, the components were hand-placed by Gee and then run through the reflow oven to attach the components.

The biggest problem here was that our reel of APA102 LEDs had been sitting around for a while in our (slightly damp) warehouse and, after going through the reflow oven, several of the LEDs were either completely dead or had at least one of the RGB elements not working. After much gnashing-of-teeth and hot-air-gun-ning of replacement pixels, we had six prototypes that we could send to Alex, and a couple left over for our own testing.

We came up with quite a nice little setup for Alex's Docker cluster nodes, with the Enviro pHATs mounted on a right-angled header soldered to the Pi Zero, and the Blinkt! mounted on an extra long header on the Enviro pHAT. Connor designed a nice little mounting plate for the whole thing, giving it quite a professional look.

Alex's Docker node

You can see Alex's demo of his Docker cluster below.

Production panels

For the production panels, we made a couple of minor changes.

The first, was to make the top corners of the PCBs more rounded (than the bottom corners). Due to the size of Blinkt! being no bigger than the header itself, unlike a HAT or pHAT, it's not immediately obvious which orientation is the correct one. So, we rounded the top corners to match the rounded corners of the Pi, and left the lower two right-angled (in the prototypes, the bottom corners had a shallower rounded corner). We also added the Blinkt! logo, which should match the orientation of the text on the Pi.

Production panel

We noticed, in our testing, that random noise from the GPIO pins resulted in one or more pixels lighting up at full brightness on boot, or when Blinkt! was plugged in. So, for the production panels we added a pull-down resistor to the clock pin to prevent those shenanigans.

Last, because the orientation matters with Blinkt! and because we'd previously had all of the ground pins connected on the prototype boards, plugging Blinkt! in the wrong way round would cause pins to short and the Pi to reboot. The solution was just to use the first ground pin, pin 6, meaning that plugging Blinkt! the wrong way would cause no harm.

Using Blinkt!

As we said above, Blinkt! is perfect for sticking on a Pi Zero and creating a little status indicator for CPU load, CPU temperature, disk space, network load, etc.

The fun begins when you combine it with our other HATs and pHATs!

You can use Blinkt! with our HATs, like Drum HAT (to visualise drum hits), on a Mini Black HAT Hack3r or, if you're using a pHAT, you can solder an extra long female header to the pHAT and stick Blinkt! right on top.

Enviro pHAT, Blinkt

It goes really well with Enviro pHAT, where you can use Blinkt! to display changes in the sensor values, like temperature. We demo-ed using Blinkt! to visualise temperature and pressure in Bilge Tank 042.

As always, we have a shiny Python library for Blinkt! that makes using it super-simple.

And, tomorrow, we'll have a tutorial on showing you how to get started with Blinkt!