TLDR; If you see ink flooding around the die when you touch a Sharpie to the face of a Neopixel, you should probably throw away the batch. Disturbing video example after the jump.
I recently found a huge lot of WS2812B Neopixels on Alibaba for $3/meter, which is about 1/2 the going rate in China and about 1/8th the price for similarly spec’ed strips on Adafruit. So I bought a lot (both meanings) of them. A NeoPixel is a NeoPixel, right? How bad could these NeoPixels be? Very bad, it turns out…
Would you do with a massive full color animated LED display? How about…
- Read your Tweets in giant 140 char gulps from a block away
- Add English sub-titles to the Eiffel Tower
- Display a live-updating, 45 digit long countdown of the number of atoms left in the known universe
What if you could build the display however long you needed it, for only about $15/foot?
What if it was really easy to build and used everyone’s favorite low cost micro-controller so you could easily change the software to do whatever you wanted?
Well you can! Read on for details and perfunctory video!
We’ve already seen that it is possible to drive thousands of WS2812B NeoPixels with a lowly Arduino using careful bit-banging. But what if we could bang out 8 bits at a time rather than sending them single file? Could it be possible to drive 8 times as many strings (or get 8 times the refresh rate) from our Arduino by processing bits in parallel? It would be like having a tiny pipelined GPU render engine inside our Arduino!
Read on to find out the results of a quick proof-of-concept test!….
Polycarbonate panels are cheap, strong, light, durable, and easy to buy. They are perfect for constructing large scale LED strip installations. But what is the best way to secure your LED strips to the panels? I’ve done a lot of testing to find out, and the most reliable method turns out to also be one of the cheapest and easiest…
NeoPixel strips are great when all you want to do is go in a straight line, but what about when you want to make a turn?
Here is a simple little board that makes it easy and keeps perfect spacing on both axes.
Last time, we connected a NeoPixel directly to a RaspberryPi. This is certainly fun and useful, but the real motivation behind this project was to explore clever ways to make use of limited hardware resources. NeoPixels need a precisely timed string of bits to be happy. Luckily, every RaspPi comes with built-in hardware for generating strings of precisely timed bits – a serial port!
If all you care about is making pretty colors the easy way, don’t bother reading this article. If you are wondering how it is possible to reliably generate a pulse train with +/-150ns precision on a Raspberry Pi pin without kernel mods or DMA, then read on!
In the PWM article, we discovered that each NeoPixel has a clock that free-runs at about 500Hrz and each pixel will only update its displayed color at the end of a clock cycle. This means that there should be about 2ms of jitter when updating a pixel, which absolutely limits the maximum refresh rate.
This sounds good in theory, but how can we actually see something that happens over the course of 1-2ms?