CheerLight Details


The CheerLights folks posted about my build, but at the time I hadn’t been able to provide many details, so I wrote up some details

CheerLights is a fun little project that is powered by ThingSpeak, a service which makes it easy to use Twitter as a control mechanism for the Internet of Things.

CheerLight Innards

Originally I just tossed a few notes up on the Milwaukee Makerspace wiki, but now I’ve got some code on GitHub and a detailed project page for my CheerLight.


Here’s my CheerLight connected to my MacBook Pro, ready to change colors at your command.

(And yes, my project is called "CheerLight" mainly because it consists of just one light. At least that’s the story I’m sticking with.)

8 replies on “CheerLight Details”

I just wanted you to know I grabbed your code last night and built my own Cheerlight. I had to do some minor changes to the code to make it work with Strawberry Perl and Arduino 1.0 on Windows, but it was a lot faster than writing my own code. I was also introduced to ThingSpeak through this project – very cool stuff.

I Recieve this error:

Cant locate Device/ in @INC at c:\ line 4.
BEGIN Failed-- compilation aborted at c:\ line 4.

its a problem with the serial port, line four is:
use Device::SerialPort;

I need to change this to COM3, this looks like a unix path to serial ports though , i dont know how to make it for windows, would i just make port value = COM3?

my $portvalue = '/dev/tty.usbserial-A100eFAj';

thanks for taking the time to reply by the way!

Ah figured out my problem ,strawberry perl was messed up so i swapped to active state perl. On a windows machine you must change Device:: to Win32:: to work on windows and change the serial port to ‘COMX”, where x is the number of port. Also when you copy it form git hub it messes up the code a bit, do a find and replace ‘->’ with ‘->’.

I had a question about your arduino code, whey do the cases start at 48 if the colours in the perl script are numbered from 0 – 9?

I downloaded Strawberry Perl and installed the Win32::SerialPort module from cpan. I changed the serial port name to COM3, as that’s where my Arduino ended up attaching. I also had to change the references to WProgram.h to Arduino.h in the HughesyShiftBrite.h and HughesyShiftBrite.cpp files to get Arduino 1.0 to compile the code cleanly. The ShiftBrite has been merrily changing colors all day. I do need to come up with a better way to diffuse the light from the Shiftbrite so that the “mixed” colors look better.

Comments are closed.