USB Controlled Moodlight
Moodlight is a light, which changes it's color gradually. Check out the video to get the idea:

The light can be controlled with a computer, but the light doesn't need to be connected to a computer all the time, only when the user is making changes to the color patterns or the speed of the color change. Here's a screenshot of the control application:

How does it work?

The brains of the light is a Microchip PIC18F2550 microcontroller, which stores colors and other settings in it's EEPROM. The microcontroller also receives color updates from a computer and drives the 3 colors using the PWM method. The light is using the highest power RGB led I could find as the light source, a led from Lamina Ceramics, the Atlas RGB led.
The project shares the PCB and the firmware with my other USB project, the USB oscilloscope.

Because I gave out these lights as christmas presents, the software has to run also on Windows. Thus I've decided to write it using C# so that it can be run on Linux (using Mono) and on Windows.


  • Firmware running on the microcontroller. A MPLAB 7.51 project containing the sources and the compiled .hex binary. (Also for the oscilloscope project.)
  • Software running on a computer. A Visual Studio 2005 project containing the sources and compiled binaries. (Also for the oscilloscope project.)
  • PCB file to be used with the ExpressPCB software.