Updated FAQ (markdown)

Michael Miller
2016-02-27 12:22:57 -08:00
parent 0abe7cf947
commit 83787a971e

10
FAQ.md

@@ -1,3 +1,13 @@
### I have connected this to my Esp8266 (or other 3.3v based Arduino) and they don't show the colors correctly.
The effects you may see but are not limited to is the first or last pixels show incorrect colors, you see random flashes, or you see nothing.
This is due to the IO Pins on the device are 3.3v and the pixels require +-0.5v IO to there power voltage. Most pixels require 5v to run; so this puts the Pin IO out of spec. There are several solutions to this problem.
1) Make sure there isn't a 5v IO Pin on your device. A few lower voltage devices expose a compatible output pin just for this purpose. Switch to that Pin.
2) Use a level shifter in your design. [Adafruit sells one](https://www.adafruit.com/products/1875) that will work and you can find similar modules and circuits that you can incorporate. This will shift the 3.3v IO output to 5v for the pixels.
3) Lower the running voltage to your pixels to within range of the IO pins. Since the pixels need +-0.5v IO, if the primary voltage of the NeoPixel is 3.8v, then the 3.3v of the IO pin are within spec. Some pixels can run just fine at 3.8v and this is often the lowest rated voltage they can run at. The problem with this solution is how do you provide 3.8v at the current requirements the Pixels run at? You will need to get a variable power module and with a good meter set the voltage output to 3.8v. A lot more effort than just getting a level shifter.
For this reason I don't suggest this solution except for the bench testing.
### I wish to dynamically set the number pixels, other libraries expose a method to change the number of pixels like updateLength() or setPixelCount().
The key word here is dynamic. The best practice when dealing with key feature change is to dynamical create the object and recreate it when things change. It will often lead to smaller program code size even though you may have to type more. See the following snippet of code as an example of how to do this.
```