-
Notifications
You must be signed in to change notification settings - Fork 174
/
fastled_support_faq.txt
155 lines (101 loc) · 5.84 KB
/
fastled_support_faq.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
My FastLED Support FAQ
By: Andrew Tuline
Date: August, 2015
I've made a LOT of mistakes over the past couple of years, and thought I'd pass along some of the things I've seen and done.
Q. Where's the documentation?
A. FastLED Documentation is located at:
http://fastled.io/docs/3.1/modules.html
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.
- Flaky wiring/breadboard.
- The wrong version of the library being used (wasn't up to date).
- Incorrectly named library.
- Duplicate library.
- Didn't rename the library from FastLED-master to FastLED.
- Library placed in wrong location.
- After mucking around, STILL using the library incorrectly in some manner. Start from scratch!
- 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.
- Trying to power too many LED's from the Arduino 5V line.
- Connecting to Dout instead of Din.
- Grounds not tied together.
- 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. (Learn to walk before you can run).
- Trying to do too much stuff. (Ditto).
- Infra Red control doesn't work with WS2812's. No it doesn't. Try APA102's.
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. The terms '5050' or 'IP68' don't count.
- 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).
- A copy of your .ino file (copies to gist.github.com).
- Try and remove all the superfluous code and minimize the amount of code that exhibits the issue.
- Provide specifics on how/where it's all being powered up.
- That would be pins, voltages, power supply used. . . everything.
- Essentially, give us EVERYTHING in excruciating detail.
- Check out "things we've seen" again.
- 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.
A. Make sure you are using (the most recent version of) FastLED.
A. Some routines may require the LATEST development version. Get it.
A. Make sure you've renamed the library to just FastLED.
A. Re-install the library just to be sure.
A. Check your code to make sure it's correct.
A. Try an example that's included with the FastLED library.
A. Post a copy of your code onto gist.github.com and ask for some assistance with it. Please remove the non-relevant portions if you can.
Q. I want to use a LOT of LED's. What do I need to do?
A. Remember that at full brightness, each LED can take up to 60mA of current.
A. If you need to limit the current, consider using the power management capabilities of FastLED.
A. Depending on the brightness, if you're running more than about 30 LED's, you should be using a dedicated power source for them.
A. You shouldn't be powering the Arduino with 5V through the barrel connector. That should be 7-12V, and preferably closer to 7V.
A. Just make sure that all of the grounds are tied together. Robustly.
A. You should put a 1000uf capacitor between Vcc and Gnd near the strip.
A. Add a 330 ohm resistor between the data lines and the strip.
A. Add a 10K ohm resistor between the data lines and Gnd.
A. Use one Arduino data/clock pin per strip. Don't try and drive 2 strips from one pin.
A. If you're thinking of REALLY long data lines, then you might want to investigate RS-485 (which I've never used).
A. Test the whole thing about on a small scale first, so you can isolate power/size issues from basic functionality.
A. 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?
A. Try a different Arduino.
A. Some USB charging cables don't include data lines.
A. Try a different (brand of) cable.
A. Try a short cable.
A. Remove the LED strip from the Arduino.
A. Unhook EVERYTHING from the Arduino. Remove it from a breadboard as well.
A. Are you using an Arduino clone? With a clone FTDI chip? If so, please Google search for 'FTDI fix'.
A. Some Arduino's require you to manually install the drivers.
Q. I need help coding my sequence of awesomeness?
A. It is VERY difficult conveying to others what your sequence should do, so please put considerable effort into doing so.
A. Please use gist.github.com to show your code to others for feedback.
When designing complicated projects:
- Break it down into individual components (i.e. buttons, IR, LED's, demo sequences).
- Create test 'jigs' and programs for each component.
- Slowly combine the functionality and test again.
- Make sure you incorporate lots of testing.
- Consider using git for version control.
- Be prepared to throw it all out and start from scratch with your newly acquired knowledge.