Datasheet
Another is to develop your own code for a more capable microcontroller or an FPGA that drives
multiple NeoPixel strips in parallel. One such project — OctoWS2811 for the Teensy 3.0
microcontroller — is shown later. This sort of thing is a complex undertaking and not
recommended for beginners. And even among more experienced programmers, there’s often an
unreasonable over-emphasis on data rates when the real bottlenecks lie elsewhere…don’t dwell
on this too much unless you can confirm it’s a problem.
Can I control NeoPixels using (Board X)?
We currently only offer an Arduino library. See the links later for other devices. For anything
beyond this, if considering writing your own library, understand that some devices are better
suited to the task than others. Read through the timing requirements shown below and
determine if the processor or device in question can synthesize a signal meeting those
specifications. An 8 MHz AVR can just barely keep up…anything slower may have trouble,
though some hardware-specific hacks (like clever use of SPI) might make it possible. In many
cases, assembly language is required.
Why not Raspberry Pi?
The Raspberry Pi running Linux is a multitasking system, and control may switch among multiple
running programs at any time. As such, it’s impossible to guarantee the strict 800 KHz signal
required by NeoPixels. You may be able to fudge it for short intervals, but it’s not something that
can be counted upon. This is why we use LPD8806 pixels for the Raspberry Pi light
painting (http://adafru.it/aPk) demonstration.
Third-Party Libraries
NeoPixel-compatible libraries have been developed for devices beyond Arduino. Please keep in
mind that Adafruit did not develop any of this code, does not know it inside and out, and can’t fix
bugs or offer technical help. This is Wild West stuff.
OctoWS2811 (http://adafru.it/cDM): specifically for the PJRC Teensy 3.0 microcontroller
board. Uses DMA to drive up to 8 NeoPixel strips concurrently with minimal processor load.
Multiple boards can be cascaded for still larger displays.
FadeCandy (http://adafru.it/cDN): also for Teensy 3.0. Doesn’t support as many pixels as
OctoWS2811, but adds smooth interpolation and other features for the color-persnickety.
LEDscape (http://adafru.it/cDO): specifically for BeagleBone Black. Although the
BeagleBone is a multitasking Linux system like the not-NeoPixel-compatible Raspberry Pi, this
code exploits hardware features specific to the BeagleBone Black to drive hundreds of meters
of NeoPixel strip with virtually no processor load.
WS2812 LED Driver (http://adafru.it/cDP) for Parallax Propeller.
xCORE NeoPixel test code (http://adafru.it/dcO) for the XMOS xCORE startKIT.
Some of these are 3.3V devices. See the “Powering NeoPixel” page for notes on controlling
5V NeoPixels from 3.3V microcontrollers.
© Adafruit Industries https://learn.adafruit.com/adafruit-neopixel-uberguide Page 37 of 39