mirror of
https://github.com/Makuna/NeoPixelBus.git
synced 2025-08-07 12:54:26 +02:00
Updated NeoPixelBus object (markdown)
@@ -16,7 +16,7 @@ NeoPixelBus<NeoGrbFeature, NeoEsp8266Uart800KbpsMethod> strip(32, 2);
|
||||
# Features
|
||||
These "feature" objects will be used to define what color order is used for the pixels and what color size (rgb, or rgbw).
|
||||
Currently there are only a few sizes and color formats.
|
||||
If there is demand, support for others can easily be requested by creating an issue on GitHub.
|
||||
If you do not see what you require, request it by creating an issue on GitHub.
|
||||
|
||||
## NeoGrbFeature
|
||||
A three element color in the order of Green, Red, and then Blue. The most common three element format. This is used for SK6812(grb), WS2811, and WS2812.
|
||||
@@ -25,7 +25,7 @@ A three element color in the order of Green, Red, and then Blue. The most common
|
||||
A four element color in the order of Red, Green, Blue, and then White. The most common four element format. This is used for SK6812rgbw pixels that have the separate white led in them.
|
||||
|
||||
## NeoRgbFeature
|
||||
A three element color in the order of Red, Green, and then Blue. Some older pixels used this.
|
||||
A three element color in the order of Red, Green, and then Blue. Some older pixels used this. Also used by pixels that come in a traditional LED shape rather than the surface mount chip we often see today.
|
||||
|
||||
## NeoBrgFeature
|
||||
A three element color in the order of blue, Red, and then Green.
|
||||
@@ -43,10 +43,21 @@ Same as Neo800KbpsMethod but running at the older and slower data rate.
|
||||
|
||||
## NeoEsp8266Dma800KbpsMethod
|
||||
The NeoEsp8266Dma800KbpsMethod is the underlying method that gets used if you use Neo800KbpsMethod on Esp8266 platforms. There should be no need to use it directly.
|
||||
The NeoEsp8266Dma800KbpsMethod only supports the RDX0/GPIO3 pin. The Pin value passed into the constructor is ignored.
|
||||
|
||||
The NeoEsp8266Dma800KbpsMethod only supports the RDX0/GPIO3 pin. The Pin value passed into the constructor is ignored. See other esp8266 methods below if you don't have this pin available.
|
||||
|
||||
This method uses very little CPU for actually sending the data to NeoPixels but it requires an extra buffer for the DMA to read from. Thus there is a trade off of CPU use versus memory use. The extra buffer needed is four times the size of the primary pixel buffer.
|
||||
It also requires the use of the RDX0/GPIO3 pin which is not exposed on the ESP-01. See other esp8266 methods below if you don't have this pin available.
|
||||
Thanks to g3gg0.de for porting the initial DMA support from the original. The original was located at https://github.com/cnlohr/esp8266ws2812i2s. It has been modified dramatically since those originals but credit is due.
|
||||
|
||||
It also requires the use of the RDX0/GPIO3 pin. This pin is not exposed on the ESP-01. The normal feature of this pin is the "Serial" receive. Using this DMA method will not allow you to receive serial from the primary Serial object; but it will not stop you from sending output like this...
|
||||
```
|
||||
serial.println("I can still debug using serial println");
|
||||
```
|
||||
|
||||
Due to the pin overlap, the NeoPixelBus::Begin() MUST be called after the Serial.begin(). If they are called out of order, no pixel data will be sent as the Serial reconfigured the RDX0/GPIO3 pin to its needs.
|
||||
|
||||
For more details on Serial and pins, refer to the [Esp8266 Arduino Reference](http://esp8266.github.io/Arduino/versions/2.1.0/doc/reference.html)
|
||||
|
||||
Thanks to g3gg0.de for porting the initial DMA support from the original. The original was located at [github/cnlohr/esp8266ws2812i2s](https://github.com/cnlohr/esp8266ws2812i2s). It has been modified dramatically since those originals but credit is due.
|
||||
|
||||
## NeoEsp8266Dma400KbpsMethod
|
||||
Same as NeoEsp8266Dma800KbpsMethod but running at the older and slower data rate.
|
||||
@@ -54,7 +65,11 @@ The NeoEsp8266Dma400KbpsMethod is the underlying method that gets used if you us
|
||||
|
||||
## NeoEsp8266Uart800KbpsMethod
|
||||
NeoEsp8266Uart800KbpsMethod only supports the TXD1/GPIO2 pin. The Pin value passed into the constructor is ignored.
|
||||
|
||||
This method uses the CPU to manage a small hardware managed UART buffer to send the data to the NeoPixels. Thus it requires more CPU overhead than the Dma method but it does NOT require an extra buffer. Its main benefit is that it is usable on ESP-01.
|
||||
|
||||
Due to using the TXD1/GPIO2 pin, the Serial1 object can not be used with the method and must be avoided. The primary serial object "Serial" is available for both read and write.
|
||||
|
||||
Use this instead of Neo800KbpsMethod to force your sketch to use the Uart to send data.
|
||||
|
||||
## NeoEsp8266Uart400KbpsMethod
|
||||
|
Reference in New Issue
Block a user