You’ll need an Arduino microcontroller board (any model should do — Uno, Leonardo, etc.) and a suitable USB cable. The Arduino is only used during testing, it’s not a permanent part of the project. If you don’t have an Arduino board around, maybe you can borrow one from a geeky friend, or just buy one (they’re fun to experiment with)…then work through a couple introductory tutorials to understand how the software gets installed and code gets uploaded to the board.
If you don’t already use it, download and install the Adafruit NeoPixel Library for Arduino to run the test code. We have a tutorial for library installation too.
Don’t connect any NeoPixels yet. There’s a procedure to follow.
// Simple NeoPixel test. Lights just a few pixels at a time so a // long strip can safely be powered from Arduino 5V pin. Arduino // may nonetheless hiccup when LEDs are first connected and not // accept code. So upload code first, unplug USB, connect pixels // to GND FIRST, then +5V and digital pin 6, then re-plug USB. // A working strip will show a few pixels moving down the line, // cycling between red, green and blue. If you get no response, // might be connected to wrong end of strip -- look for the data // direction arrows printed on the strip. #include <Adafruit_NeoPixel.h> #define PIN 6 #define N_LEDS 150 // 5 meter reel @ 30 LEDs/m Adafruit_NeoPixel strip = Adafruit_NeoPixel(N_LEDS, PIN, NEO_GRB + NEO_KHZ800); void setup() { strip.begin(); } void loop() { chase(0xFF0000); // Red chase(0x00FF00); // Green chase(0x0000FF); // Blue } static void chase(uint32_t c) { for(uint16_t i=0; i<strip.numPixels()+4; i++) { strip.setPixelColor(i , c); // Draw new pixel strip.setPixelColor(i-4, 0); // Erase pixel a few steps back strip.show(); delay(25); } }
Look for the solder pad labeled “DIN” (data input), with the arrow pointing toward the first LED (this shows the direction of data moving down the strip).
Both ends of the strip have a 2-pin JST connector, plus two extra wires for power.
Look closely at the JST plug. One of the two wires (usually white) leads to the DIN pin on the strip. Using a jumper wire, connect DIN to Arduino pin 6.
- Put a 330 Ohm resistor between Arduino pin 6 and DIN on the strip (a slightly larger resistor like 500 Ohms is fine, if that’s what you have around).
- Put a 100K resistor between DIN and GND.
You can do this even if you’re not in a dry climate. Better safe than sorry.
Make sure the power wires at the “out” end aren’t touching anything or each other!
Now connect the USB cable between the Arduino and a computer’s USB port or a USB wall charger. After a moment you should see a few pixels chase down the strip. Red, green, blue, repeat.
If it’s working, let this run for a few minutes. Look down the strip, watching closely for any pixels that don’t light the right color, or don’t light at all. Does the “chase” make it all the way down the strip, or does it cut out part way down?
If everything checks out, dismantle it in the reverse order: unplug USB, disconnect DIN, then 5V, then GND. Roll it back up and proceed to the next reel.
- If you’re using a computer’s USB port for power: does the computer report a device is drawing too much current? This is almost certainly an electrical short. Are the power wires at the “out” end touching each other, or anything electrically conductive? How about the Arduino? Is it sitting on one of the anti-static bags? Watch it…they’re mildly conductive.
- Check the strip and Arduino wiring against the diagram: GND, 5V and DIN.
- Are you connected to the input end? DIN? Not DOUT.
- Did you upload the test program to the Arduino first?
- If you have a multimeter, check the voltage across the power wires at the “out” end. It’ll be lower than 5 Volts, that’s normal…but it should not read 0V.
- Pinch down on the strip on the last good pixel and the first bad one. Any change? If so, there’s a cracked solder joint. There’s ways you can try repairing this, or you can set up an exchange.
- NeoPixel strips are manufactured in 1/2 meter lengths, which are then soldered together to produce a reel. Look closely between the last working pixel and the first bad one. Is this one of the half-meter join spots? If so, give a pinch there too.
Next Steps
As long as they’re testing OK, repeat the procedure for every reel. It goes faster if you have friends helping out, assembly-line style.
If one reel is misbehaving, it’s probably a defect. If a second reel misbehaves the same, STOP IMMEDIATELY. You might be killing them!
If you encounter any problems, post on the Adafruit Forums (in the “Glowy Things” section). It’s very helpful if you can provide a photo (or several) clearly showing your wiring between the Arduino and NeoPixel strip, and please describe your test setup and the symptoms observed. We’ll look it over for gremlins and try to correct any user error. If it’s defective, we can then set up an exchange.
For defective parts, you have options:
- If you prefer to keep it simple, we can just exchange the complete reel(s).
- Maybe you’re eager to make progress. On the next pages, we’ll be cutting 2-meter sections from these reels and joining pairs of the remaining 1-meter sections. If you’re able and willing to salvage some working 2-meter or 1-meter sections from the 5-meter reel, we can exchange the defective section(s) for an equivalent length of new strip.