Optimised fork of bikeNomad's WS2811 LED control library. Supports KL25Z and KL46Z

Dependents:   CubicHand

Fork of Multi_WS2811 by Ned Konz

Optimised to use far less RAM than the original.

Capable of running up to 8 strings of 240 LEDs each with plenty of RAM to spare on the KL46Z.

Should run at least three strings of 240 LEDs on the KL25Z (RAM limited)

Files at this revision

API Documentation at this revision

Comitter:
Tomo2k
Date:
Wed Apr 02 12:16:42 2014 +0000
Parent:
5:7e40afd8d533
Child:
7:58623ad7f310
Commit message:
Updated documentation to include RAM usage

Changed in this revision

WS2811.cpp Show annotated file Show diff for this revision Revisions of this file
WS2811.h Show annotated file Show diff for this revision Revisions of this file
--- a/WS2811.cpp	Wed Apr 02 11:57:56 2014 +0000
+++ b/WS2811.cpp	Wed Apr 02 12:16:42 2014 +0000
@@ -1,18 +1,5 @@
-// 800 KHz WS2811 driver driving potentially many LED strings.
+// 800 KHz WS2811 driver driving up to eight LED strips.
 // Uses 3-phase DMA
-// 16K SRAM less stack, etc.
-//
-// Per LED: 3 bytes (malloc'd) for RGB data
-//
-// Per LED strip / per LED
-//          96 bytes (static) for bit data
-//        + 96 bytes (static) for ones data
-//        = 192 bytes
-//
-//        40 LEDs max per string = 7680 bytes static
-//
-//        40 LEDs: 7680 + 40*3 = 7800 bytes
-//        80 LEDs: 7680 + 80*3 = 7920 bytes
 
 #if defined(TARGET_KL25Z)
 #include "MKL25Z4.h"
--- a/WS2811.h	Wed Apr 02 11:57:56 2014 +0000
+++ b/WS2811.h	Wed Apr 02 12:16:42 2014 +0000
@@ -33,6 +33,22 @@
 * WS2811/WS2812/WS2812B
 * LED Strip controller\n
 * For FRDM-KL25Z and FRDM-KL46Z
+
+ RAM usage:\n
+ Per individual LED: 3 bytes (malloc'd) for RGB data
+
+ Strip length per LED:\n
+          24 bytes (static) for bit data\n
+        + 24 bytes (static) for ones data\n
+        = 48 bytes
+
+        240 LEDs max per string = 11,520 bytes static
+
+      One string:\n
+        240 LEDs  : 11520 + 240*3 = 12,240 bytes
+
+      Eight strings:\n
+        240*8 LEDs: 11520 + (240*3) * 8 = 17,280 bytes
 */
 class WS2811 : public LedStrip
 {