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 Responses to “CheerLight Details”

  1. KenNo Gravatar says:

    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.

  2. Good to hear Ken!

    Glad my code was actually useful. :)

  3. MikeNo Gravatar says:

    I am trying to get it on windows too, what changes did you make?

  4. Mike, where does it fail? Did you determine and set the serial port correctly?

    Did you get as far as trying to run the test.pl script?

  5. MikeNo Gravatar says:

    I Recieve this error:

    Cant locate Device/SerialPort.pm in @INC at c:\cheerlights.pl line 4.
    BEGIN Failed-- compilation aborted at c:\cheerlights.pl 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!

  6. Mike, you’ll need to install the Device::Serial module.


  7. MikeNo Gravatar says:

    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?

  8. KenNo Gravatar says:

    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.

« | »

buy the button:

Buy The Button