RGBLED Controller Project Project
Gerry Duprey -- email gerry 'at' rgbled 'dot' org

Downloadables
Project Files (source, CAD, docs) (tgz format) Updated 7/17/06
Project Change Log
Serial Control Protocol Descripton
RGBLED "How To" Step by Step kit assembly guide
mRGBLED "How To" Step by Step kit assembly guide
tiRGBLED "How To" Step by Step kit assembly guide
Java RGBLED Configurator
xPL4Java RGBLED Module




Summary
The RGBLED and mRGBLED controllers allow you to control the color of RGBLEDs.  This might sound trivial, but it actually takes a lot of resources to let you be able to set an RGBLED to any color you'd like.  In addition to just lighting an LED up with a given color, these boards also let you install a color or setup transition/animations effects.  They are easily controller via an RS232 connection (serial port) or an SPI connection (logic level).

The boards can be built reasonably inexpensively and there are PC boards available for either model.  All source code for the onboard PIC processor as well as the software for configuring and using the controllers is available.  The protocol is a simple protocol well documented.

There are two versions of the controller -- the original RGBLED controller and the new mRGBLED controller.  They both share 90% of the same firmware (only the hardware bits are different).  Here's a comparison

RGBLED vs. mRGBLED comparison

RGBLED
mRGBLED
Maximum RGBLEDs
13
3
Max "real" baud rate
38400
38400
PWM Processing
Hardware
Software
Color Change "Smoothness"
Excellent
Very good
Solidness of static bright light
Excellent
Excellent
Solidness of static dim light (<25% intensity)
Excellent
Excellent
Voltage
3.3 or 5VDC (one or the other -- not a range)
5VDC or 7-12 w/regulator installed onboard
Current Draw (w/o LEDs)
20ma
10ma
Current Draw (w/20ma LEDs, all lit)
800ma
190ma
LED Current Control
Automatic, no resistors needed (for 10 or 20ma LEDs)
Resistors needed
Typical: 150 ohm for red, 75 for green and blue (20ma, 2V for red, 3.5V for green & blue)
Max Current Drive
20ma per color
20ma per color
LED "polarity"
Common Anode
Common Anode OR Common Cathode (Common Anode is the default)
Board Size
2.1 x 3.8 in
1.1 x 2.7 in

What is Available
Included in the download is the source code for building the RGBLED and mRGBLED firmware, pre-compiled firmware for the 16LF87 and 16LF88 chips, the CAD files with schematics and board files for the RGBLED, mRGBLED, sRGBLED (SPI-Only super-small board) and the LED Power driver, documentation, a Java based API for interacting with the controller (with source), a Java based tool for configuring and experimenting with the controllers via a GUI (with source) and an xPL gateway allowing control of the RGBLED boards anywhere on the local area network (with source).

Genesis

Dynamically controlling full spectrum RGB LEDs is not simple.  Ideally, you want to be able to vary the levels of each component of the LED (R, G and B).  That requires either some form of D to A converter or a simulation of such via PWM (pulse width modulation).  The logic to track and correctly light a single LED may be workable in a small project, but it can eat up a fair amount of resources.  The logic and effort to control multiple RGB LEDs can quickly overwhelm a project (which is exactly what happened to me).  I needed a way to off-load control 1 or many RGB LEDs and do so in an easy, low impact (on the project using the LEDs) way.

Example Uses
These are uses for this controller that I or others have actually used them for successfully.
Support
All support for this project is exclusively provided on the forums at this site.  Please don't sent me email -- I won't respond to it (or will just respond with a form letter directing you to the forums).  Even for things in the store, the amount of margin is almost nil -- covers the product and some of my time.  I could not hope to support folks on a one-on-one basis, but with a forum, many people can help each other out and there is a searchable history of things that can help you solve your own issues quickly.  Beyond providing the forum, I offer absolutely no guarantee you're request for help will be answered.  It probably will be by someone, but it may take a few days or go unanswered.  I'd strongly suggest searching the forums throroughly first and then asking you question in a pleasant and detailed manor.  Posting questions that have been answered before or posting demanding questions will probably get you ignored -- remember you are "borrowing a cup of sugar" -- folks are helping each other out by their own good graces.

Support forums are available at http://www.rgbled.org/forums

Last updated July 17, 2006