EARLIER VERSIONS OF THESE PIXELS USED A DIFFERENT DRIVER CHIP AND/OR WIRING COLORS. ANYTHING PURCHASED AFTER AUGUST 2011 SHOULD MATCH THE FOLLOWING DECRIPTION. We initially sold LEDs in this form factor using the LPD6803 driver chip (BEFORE August 2011). If you are using those pixels, please use the 20mm pixel tutorial (www.ladyada.net/products/pixel20mm), using the wiring and code from that page — nothing further here applies. After switching to the WS2801 chip, the first batch used different wire colors, but is functionally the same as described below.

The “magic” of these pixels is that they're digitally controlled…even though there are only two control lines, you can have as many pixels as you’d like in a single long strand, yet each remains independently controllable.

Though it looks like the 4-conductor ribbon cable is continuous, it isn't! The pixels have a distinct “in” and “out” side. Data from the microcontroller arrives on the input side, where it’s received by the driver chip. The output side then connects to the input of the next pixel, all the way down the line.

The way to tell input from output is different among the shape and version of the pixels you’re using:

For flat pixels, look for an embossed arrow on the side of the plastic capsule. This represents the direction of data flow…bits from the microcontroller should arrive at the “tail” of the arrow, not the pointy head end.
For bullet pixels with a green circuit board inside, look for the rectangular black chip on one side of the board. With this chip facing you, the set of wires in front are the input — data arrives here — and the wires underneath are the output to the next pixel.
For older bullet pixels with a white circuit board inside, look for the “INPUT” label printed on the board. With this side facing you, the set of wires in front are the input — data arrives here — and the wires underneath are the output to the next pixel.
Our LED pixels now include plugs for joining multiple strands and to simplify connection to a microcontroller:
Your pixels will have one end with a plug - these tend to be the input side on bullet shaped pixels but we've found that isn't true 100% of the time so don't rely on this as a way of determine which end is the input
Your pixels will have one end with a receptacle - these tend to be the input side on flat shaped pixels but we've found that isn't true 100% of the time so don't rely on this as a way of determine which end is the input
Mating connectors for both are available in the Adafruit shop. These have a housing at one end and four tinned wires at the opposite end…the wires can be soldered directly to your circuit, or strip a little more insulation to press these into Arduino pin sockets.

Luckily, we have them as a pair so no matter what pixels you end up with, you'll have one for input and one for output
There’s one more trick up our sleeve: if you don’t have a mating connector available, breadboarding jumper wires can be pressed into the connector - here we're assuming that is the input side!
The extra red and blue wires (the exposed ones not inside a connector) are for power — we’ll explain that in the next section.

Connecting to Arduino

To use our example code for Arduino, connect the yellow wire (serial data) to Arduino pin 2 and the green wire (serial clock) to pin 3. The software can be configured to use other pins, but we recommend using this arrangement when starting out, so that everything is tested in a known configuration. The blue wire (ground) should be connected to any of the Arduino GND pins.

Why do the bullet and flat pixels use different “genders” for the connecting plugs? Why can’t I mix and match strands?

This is intentional, to avoid wiring mishaps. Although the two pixel types have the same electrical specifications and use the same data protocol, the order of the wires is different between the two. Joining them directly would mix signal and power wires improperly, potentially damaging the pixels.
Last updated on 2014-04-21 at 05.31.25 PM Published on 2012-07-29 at 03.58.38 PM