RGB LED Fun - full color indicators on the PC front panel

Just for fun I replaced the indicator leds on the front panel of my PC with RGB leds to be controlled by an ATmega328 giving selectable color and patterns (solid, pulse, blink) according to the state (on, standby, off w/power). As well as customizing the color of the HD activity led.


I choose an Arduino Nano board and python3 for the control program. The program runs on the PC and communicates with the Arduino to get the current settings and then displays them in a window where they can be changed and sent back to the Nano. The settings can also be saved or loaded via the Nano's eeprom.
 


Just click one of the color buttons to apply a new color to that setting via the standard color selection dialog box. Then click the 'set' button to send the change to the nano and see it instantly on the front panel. The program is written in python3 with the GDK library and Glade user interface designer. Overall it was pretty easy getting up to speed on these tools to create a GUI program.


Communication with the Nano is over a usb serial interface. For convenience I modified an existing cable so it could be connected to an open usb header on the motherboard and remain permanently connected to the Arduino Nano. Physical inputs consist of the power supply lines for GND, PWR_OK, and PS_ON as well as the STANDBY and DISKIO led pins from the motherboard. Outputs are the two RGB leds. To finish it off all that is needed is a little hot glue to hold the perfboard in place.


I used this little project to learn GUI programming in python3 as well as get a little more practice with rgb leds. I also enjoy the ability to make my front panel leds any color and blink/pulse/solid pattern on demand.

My development platform consists of Ubuntu 14.04LTS, Python 3.4.0, Glade 3.16.1, and Arduino 1.0.6 all of which are open source and free. :-)