We've made a LOT of mistakes over the past few years with the FastLED library for the Arduino, so here's some things to think about when troubleshooting your project:
Q. Where's the documentation?
A. FastLED Documentation is located at:
Q. My LED's are the wrong colour.
A. Run RGB Calibrate as found at:
https://github.com/FastLED/FastLED/tree/master/examples/RGBCalibrate
You could be using Neopixels, which typically have a colour ordering of GRB. Instead of using:
FastLED.addLeds<NEOPIXEL, DATA_PIN>
try:
LEDS.addLeds<WS2812, LED_DT, RGB> // or
LEDS.addLeds<WS2812, LED_DT, GRB>
In the case of APA102, try:
LEDS.addLeds<APA102, LED_DT, LED_CK, BGR>
Things We've Seen
Connecting to the wrong data/clock pin.
Incorrect LEDS.addLeds definition (i.e. using APA102 strip with WS2812 definition).
Incorrect pin definitions.
Flaky wiring/breadboard.
The wrong version of the library being used (wasn't up to date).
Old version of the Arduino IDE.
Incorrectly named library.
Using the wrong/old version of the library.
Duplicate library.
Didn't rename the library from FastLED-master to FastLED.
Library placed in wrong location.
Not enough power/current available.
Too high of a voltage being used (and you might have blown up the 1st LED). Try connecting clock/data to the 2nd LED.
Noisy power supplies.
Bad solder joints.
Trying to power too many LED's from the Arduino 5V line.
Connecting to Dout instead of Din.
Grounds not tied together (lots of people have this issue).
Blown LED's (see voltage above).
Memory leakage, i.e. referring to leds[NUM_LEDS] as opposed to leds[NUM_LEDS-1].
Wrong colours (as in Neopixels).
Make sure you're not using a 12V led strip.
Getting errors when using BLEND. Replace BLEND with LINEARBLEND instead.
Your board may not yet be supported.
Your code just does NOT work (yet). Have you tried known working code?
Trying to support too many LED's. There's 3 bytes per LED and only 2K of RAM on an UNO. Try a Teensy instead.
Infra Red libraries don't work with WS2812's. Try APA102's or WS2801's.
Swap out your USB cord. . Again if necessary.
Try a different Arduino.
Q. I've tried the above and it still doesn't work. Help!!!
A. There could be loads of reasons, so let's gather information. Please provide details:
What kind of LED's you're using.
What microcontroller board you're using.
How it's all powered up.
What version of the FastLED library you're using.
What version of Arduino IDE you're using.
What
OS you're building from.
A circuit diagram/layout (try using Fritzing to show it).
-
Essentially, give us EVERYTHING in excruciating detail.
Provide specifics on how/where it's all being powered up.
That would be pins, voltages, power supply used. . . everything.
Try and remove all the superfluous code and minimize the amount of code that exhibits the issue.
A. Oh, and triple check EVERYTHING. Again!
If you ask a question online and later get it resolved, please have the courtesy and post what the solution was.
Q. My FastLED .ino file gives me a (long assed) compile error.
Make sure you are using (the most recent version of) FastLED.
Some routines may require the LATEST development version (currently 3.1). Get it.
Make sure you've renamed the library to just FastLED.
Re-install the library just to be sure.
Check your code to make sure it's correct.
Try an example that's included with the FastLED library.
Post a copy of your (simplified) code that exhibits the problem onto pastebin.com or gist.github.com and ask for some assistance with it.
Q. I want to use a LOT of LED's. What do I need to do?
Remember that at full brightness, each LED can take up to 60mA of current.
If you need to limit the current, consider using the power management capabilities of FastLED.
Depending on the brightness, if you're running more than about 30 LED's, you should be using a dedicated power source for them.
You shouldn't be powering an Arduino UNO with 5V through the barrel connector. It should be 7-12V.
Just make sure that all of the grounds are tied together. Robustly.
You could put a 1000uf capacitor between Vcc and Gnd near the strip.
You could add a 330 ohm resistor between the data lines and the strip.
You could add a 10K ohm resistor between the data lines and Gnd.
Make sure that the wiring distance between the Arduino and the strip is <1M.
Use one Arduino data/clock pin per strip. It gets risky when driving 2 strips from one pin.
Consider using a Teensy 3.X with an OctoWS2811 adaptor.
Test the whole thing about on a small scale first, so you can isolate power/size issues from basic functionality.
Here's an interesting article:
http://ledwallproject.blogspot.ca/2014/05/making-5v-signals-for-ws2812-with-logic.html?m=1
Q. My Arduino is not recognized? What do I do?
Try a different Arduino.
Try a different cable.
Try a short cable.
Try a different computer.
Remove the LED strip and everything else connected to the Arduino.
Are you using an Arduino clone? With a clone FTDI chip? If so, please Google search for 'FTDI fix'.
Some Arduino's require you to manually install the drivers.
Q. I need help coding my sequence of awesomeness?