Digital control interface, LED Driver + RGB LED in single package.
This tiny 5050 (5mm x 5mm) RGB LED is fairly easy to solder and is the most compact way possible to integrate multiple bright LEDs to a design. The driver chip is inside the LED and has ~18mA constant current drive so the color will be very consistent even if the voltage varies, and no external choke resistors are required making your design minimal. Power the whole thing with 5VDC and you're ready to rock.
The LEDs are 'chainable' by connecting the output of one chip into the input of another - see the datasheet for diagrams and pinouts. To allow the entire chip to be integrated into a 4-pin package, there is a single data line with a very timing-specific protocol. Since the protocol is very sensitive to timing, it requires a real-time microconroller such as an AVR, Arduino, PIC, mbed, etc. It cannot be used with a Linux-based microcomputer or interpreted microcontroller such as the netduino or Basic Stamp.
Comes in a package with 10 individual LEDs.
You can put in series any number of such LEDs in chain. To control you can use any microcontroller. Just shift its data once containing its RGB value and it remembers your selection till power on.
A close up view of an LED shows the silicon die with the bonding wires:
Each pixel needs 24bit of data (8bit Red, 8bit Green and 8bit Blue). The bits are shifted using a one wire protocol to the LED DIN (Data In) pin. A bit odd, but the bits are shifted as Green-Red-Blue (so not RGB). The MSB (Most Significant Bit) is shifted first. Each pixel will take the first 24bits, and shift out the remaining bits DOUT (Data Out) to the next LED, and so on. So the LED’s can be easily chained together:
The data transmission protocol itself is relatively simple: a digital “1” is encoded as a long high-pulse, “0” as a short pulse on “Din”. When the data line is held low for more than 50µs, the device is reset. After reset, each device reads the first 24 bit (GRB 8:8:8) of data into an internal buffer. All consecutive bits after the first 24 are forwarded to the next device go through internal data reshaping and are then forwarded via “Dout” to the next device. The internal buffer is written to the PWM controller during the next reset.