Updated FAQ #7 (markdown)

Michael Miller
2016-04-03 22:17:16 -07:00
parent ac6595e8d1
commit 0fb6ca45a9

@@ -1,18 +1,18 @@
### How many pixels does this library support? ### How many pixels does this library support?
The primary limiting factor to the number of pixels you can drive with this library is the memory you have on your Arduino. This library requires a working buffer that contains state for every pixel on the bus. The primary limiting factor to the number of pixels you can drive with this library is the memory you have on your Arduino. This library requires a working buffer that contains state for every pixel on the bus.
The next limiting factor is how fast you want to update them, as more pixels takes longer to update. This topic is covered in [FAQ: How fast can I update my NeoPixels](https://github.com/Makuna/NeoPixelBus/wiki/FAQ-%235) The next limiting factor is how fast you want to update them, as more pixels takes longer to update. The topic on speed is covered in [FAQ: How fast can I update my NeoPixels](https://github.com/Makuna/NeoPixelBus/wiki/FAQ-%235)
The amount of memory required does vary on several factors. The amount of memory required does vary based on several factors.
The first factor is what type of pixel do you have? If your pixels are three element pixels, RGB; then they require 3 bytes of data per pixel. If your pixels are four element pixels, RGBW; then they require 4 bytes of data per pixel. The first factor is what type of pixel you have. If your pixels are three element pixels, RGB; then they require 3 bytes of data per pixel. If your pixels are four element pixels, RGBW; then they require 4 bytes of data per pixel.
``` ```
RGB buffer size in bytes = number of pixels * 3 RGB buffer size in bytes = number of pixels * 3
RGBW buffer size in bytes = number of pixels * 4 RGBW buffer size in bytes = number of pixels * 4
``` ```
The second factor is what "method" is used to send the data. For most AVR platforms the method used is similar and requires only a few extra bytes beyond what was listed above to manage the buffer. But there is once current exception today. The second factor is what "method" is used to send the data. For most AVR platforms the method used is similar and requires only a few extra bytes beyond what was listed above to manage the buffer. But there is one current exception today.
The NeoEsp8266Dma800KbpsMethod, the default method for Esp8266, is that exception. You can find more information on this method on the [NeoPixelBus object page](https://github.com/Makuna/NeoPixelBus/wiki/NeoPixelBus-object). This "method" not only requires the above buffer, but it also requires a DMA buffer for the hardware to use. This DMA buffer requires four bytes per byte used from the primary buffer. The NeoEsp8266Dma800KbpsMethod. This is the default method for Esp8266. You can find more information on this method in the [NeoPixelBus object page](https://github.com/Makuna/NeoPixelBus/wiki/NeoPixelBus-object). This "method" not only requires the above buffer, but it also requires a DMA buffer for the hardware to use. This DMA buffer requires four bytes per byte used from the primary buffer.
``` ```
DMA RGB buffer size in bytes = number of pixels * 3 * 4 DMA RGB buffer size in bytes = number of pixels * 3 * 4
DMA RGBW buffer size in bytes = number of pixels * 4 * 4 DMA RGBW buffer size in bytes = number of pixels * 4 * 4