Around March last year I was playing with some of the Adafruit LED backlight modules. They’re a cool alternative to traditional LEDs as they disperse light over a panel rather than out of a single 5mm head.
I eventually found a project for them just before Christmas. I decided that my stack of Pis running [email protected] would look much cooler on my desk with a bit of blinky, so I came up with an idea to mount the backlight on a PCB in-between each Raspberry Pi.
Around the same time, as if by fate, the folks over at Seeed offered me a voucher to try out their PCB fabrication service. I’d used some of Seeed’s maker products before but not their PCB service.
So I knocked up my design idea and got a batch made. The ‘Glindicator’ was born!
Adafruit LED Backlights
First let’s show you these backlights. They come in a few sizes (I’m using the small ones) and work just like any other LED.
Here’s a closer look – I put together a 60-second video showing these things in action:
So what is this board with the stupid name?
The Glindicator is a small Raspberry Pi add-on board that houses one of the small Adafruit backlights alongside an RGB LED. It’s super thin, shaped to fit old and new Pis, and has a cut-out to allow light to pass through both sides of the PCB.
The idea is to provide a neat glowing light from the centre of each Raspberry Pi in my stack (soon to be 6 Pis), whilst also giving an indication of the SETI job status via the RGB LEDs.
I wanted to experiment with PCB shapes as well as some different thicknesses, so I got a little creative with my board – avoiding the boring default rectangle as much as possible.
The board is super minimal, cutting around the components to allow as much light to pass around as it can. The size also allows it to be used on all models of Raspberry Pi, using a 26-pin connector to accommodate this:
Inspired by Pimoroni’s Lipo Shim, I opted for a super thin 0.8mm PCB as the Seeed Fusion guys offer this service. I hadn’t seen that option on some of the board fabricators I had used previously, so I just had to give this a go:
I added an RGB LED (common cathode flavour) to use as a status indicator, which I can use as a SETI work unit progress indicator or even a CPU temperature monitor.
Finally I opted for green solder mask. Green’s not getting much love these days but I thought it would look more at home sandwiched between the Pis.
This was my end design, which I knocked up in the free RS DesignSpark PCB software. It’s simple enough:
It’s worth noting that I made a couple of labelling errors – the backlight is on GPIO 22 not 26, and the backlight resistor I’m using is 27 ohms not 180 (it doesn’t really matter what resistor is used though, as long as it’s over ~20 ohms).
RGB Resistor Values
RGB LEDs are just like 3 different colour LEDs crammed into one. They have four legs – one for a shared GND (the ‘common cathode’) and one for each LED. You need to add a resistor for each LED leg, just like you would do with 3 separate LEDs.
I calculated the minimum resistor value for each colour, but I found them too bright for something that would be sitting on my desk all day. With some trial and error, I ended up using the following:
- Red = 390 ohms
- Green = 1.2k ohms
- Blue = 680 ohms
Ordering with Seeed
It was time to order the PCBs, so off to Seeed I skipped with my coupon in hand. Seeed offer both a PCB manufacturing and a full-on PCB assembly service – but I just wanted bare circuit boards this time round.
I was quite impressed with the Seeed Fusion website, it’s clean and intuitive to use, and even gives a render of your uploaded PCB gerber.
My only slight gripe was the amount of options I didn’t recognise. Now – this level of detail and customisation is probably really useful to ‘proper‘ electrical engineers, but I didn’t have knowledge of a few of the options.
Other manufacturers have fewer options which could be a good or bad thing – I guess it all depends on what you’re after:
Pricing was clear and straight-forward, with the cost updating after each selection to help you keep within your personal budget. My order of 20x 0.8mm thick 50x30mm boards came to $24.01 including shipping.
All that was left to do now was wait for them to arrive!
Despite coming from somewhere in China, the PCBs arrived faster than I expected – faster than some of my orders from AliExpress anyway.
I ordered on 31st October and the package arrived to me in the UK on 16th November. Not bad. I think there are faster shipping options, but I’m never in much of a hurry with this stuff.
For now (until my SETI build is complete) I’m just testing these with some rough GPIO on/off loop code (see below). I plan to have the Adafruit backlight turn on when a Pi is working on a SETI job, and the RGB LED will indicate percentage progress with colours.
It’s a simple board though – essentially just an LED control board – so it can be used on all sorts of different projects with different triggers for the lights.
import RPi.GPIO as GPIO import time # Set the GPIO mode GPIO.setmode(GPIO.BCM) # Set the GPIO numbers red = 25 #390 ohm green = 24 #1.2k ohm blue = 23 #680 ohm backlight = 22 #27 ohm # Set the GPIO pins as outputs GPIO.setup(red, GPIO.OUT) GPIO.setup(green, GPIO.OUT) GPIO.setup(blue, GPIO.OUT) GPIO.setup(backlight, GPIO.OUT) # Start with all RGB lights off GPIO.output(red,False) GPIO.output(green,False) GPIO.output(blue,False) # Backlight on GPIO.output(backlight,True) while 1: print ("Red") GPIO.output(red,True) GPIO.output(green,False) GPIO.output(blue,False) time.sleep(2) print ("Green") GPIO.output(red,False) GPIO.output(green,True) GPIO.output(blue,False) time.sleep(2) print ("Blue") GPIO.output(red,False) GPIO.output(green,False) GPIO.output(blue,True) time.sleep(2)
If you want to make your own Glindicator board, I’ve added a link to the PCB gerber files below (for personal use). They still have the label errors – I may get round to updating that if I make another batch: