mirror of
https://github.com/Makuna/NeoPixelBus.git
synced 2025-08-05 20:04:26 +02:00
Page:
Library Comparisons
Pages
A method for resolving this
API Reference
Advanced Topics Tutorials
Color objects
Concentric Rings Support
DotStar Features
DotStar Methods
ESP32 DotStar Methods
ESP32 NeoMethods
ESP32 and RTOS Tasks
ESP8266 NeoMethods
Examples
FAQ #0
FAQ #1
FAQ #10
FAQ #11
FAQ #12
FAQ #2
FAQ #3
FAQ #4
FAQ #42
FAQ #5
FAQ #6
FAQ #7
FAQ #8
FAQ #9
FAQ
Home
HsbColor object API
HslColor object API
HtmlColor object API
Layout objects
LedSegment enum
Library Comercial Use
Library Comparisons
Matrix Panels Support
Nano 33 BLE NeoMethods
Neo Features
Neo Methods
NeoBitmapFile object API
NeoBitmapFile object
NeoBuffer object API
NeoBuffer object
NeoGamma object
NeoHueBlend objects
NeoMosaic object
NeoPixelAnimator object API
NeoPixelAnimator object
NeoPixelBrightnessBus object API
NeoPixelBrightnessBus object
NeoPixelBus object API
NeoPixelBus object
NeoPixelBusLg object API
NeoPixelBusLg object
NeoPixelSegmentBus object API
NeoPixelSegmentBus object
NeoTiles object
NeoTopology object
NeoVerticalSpriteSheet object API
NeoVerticalSpriteSheet object
Project References
Quick Start Guide
Quick Start Using One Wire LEDs
Quick Start Using Two Wire LEDs
Raster Image Support
Rgb16Color object API
Rgb48Color object API
RgbColor object API
Rgbw64Color object API
RgbwColor object API
RgbwwColor object API
SevenSegDigit object API
Smaller Code
Spiral Topography
T_COLOR_FEATURE
T_GAMMA
T_METHOD
Wiki Work List
enum AlarmAddError
enum AlarmPeriod
Clone
6
Library Comparisons
Michael Miller edited this page 2023-02-02 18:35:38 -08:00
There are multiple competing libraries, FastLED being the biggest and Adafruit NeoPixel being the most common for beginners.
On ESP8266, your primary choices are:
- NeoPixelBus
- Smaller than FastLED, more features and pixel support than esp8266_ws2812_i2s
- On Esp8266 you can choose i2s DMA or UART, both avoiding interrupts (NMIs). FastLED uses interrupts which can be problematic if you use other code that relies on interrupts, or wifi (although FastLED allows other fast interrupts to fire in between pixel updates)
- Supports RGBW pixels (not supported by the other 2 libraries) https://github.com/JoDaNl/esp8266_ws2812_i2s/
- Uses I2S interface to drive Neopixels via DMA providing an asynchronous update.
- Can use UART both in a synchronous and asynchronous model, but asynchronous limits the use of other UART libraries.
- Low level API with other features exposed by external classes.
- Pins available for use varies by platform due to hardware limitations.
- ESP32 parallel support for using both RMT and I2S.
- FastLED
- Very rich API, although at a cost of large code and memory size
- Interrupt driven on ESP8266, so it's sensitive to timing.
- ESP32 support uses RMT which currently is sensitive to timing.
- Adafruit::NeoPixel
- Basic bit bang and interrupt driven library which does not support any other interrupt driven code to work. Not recommended.
On ESP32, both FastLED and NeoPixelBus can provide more than one channel/bus. FastLED primarily uses RMT to support 8 parallel channels. NeoPixelBus now supports the RMT 8 channels and I2S 8/16 channels in parallel. Parallel channels provide for better refresh rate on longer strings (useful past 256 pixels). But do note that the latest cores have issues with high interrupt frequency when using RMT causing timing issues. So, stick to the 8/16 I2S parallel methods.