Average Ticker

The Glindicator – an Adafruit Backlight Project

The GlindicatorIt glows, it's an indicator, so the name isn't so stupid after all huh?

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!

Glindicator on Raspberry Pi

The Glindicator sits on top of the Pi’s GPIO using an ‘old’ 26-pin header

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:

The Glindicator!

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.

Glindicator on three Raspberry Pis

Everything’s lit up in my 3-Pi stack. It’s like car neons for your microcomputer!

The Design

Features

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:

Glindicator on the old Raspberry Pi shape

The Glindicator fits the old shape Raspberry Pi, as well as the new 40-pin models

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:

Glindicator PCBs

My first batch of thin 0.8mm PCBs. They feel surprisingly solid, even on the narrow sections

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.

RS DesignSpark PCB 3D render

The 3D PCB render option in RS DesignSpark PCB is a helpful feature to validate your design

PCB Design

This was my end design, which I knocked up in the free RS DesignSpark PCB software. It’s simple enough:

RS DesignSpark PCB design

RS DesignSpark PCB, despite some niggles, continues to be my go-to circuit board software

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.

Seeed Fusion Website

I found Seeed’s website clutter free and easy to use

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:

Seeed Fusion options

I wasn’t sure what Solder Mask ‘Dam’ or ‘impedance control’ was – but the helpful tooltips suggested I could ignore them.

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!

Delivery

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.

Code

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)

 

PCB Files

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:

Glindicator 0.1

Rich

Be the first to comment on "The Glindicator – an Adafruit Backlight Project"

Leave a comment

Your email address will not be published.


*


This website uses cookies. Please visit our privacy policy page for more information. Privacy policy

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close