From c33a76059f24ea1b07ca266bc69816d3f1ccbf6b Mon Sep 17 00:00:00 2001
From: Damien George <damien.p.george@gmail.com>
Date: Thu, 11 Feb 2016 13:21:07 +0000
Subject: [PATCH] esp8266/tests: Add neopixel.py test.

---
 esp8266/tests/neopixel.py | 64 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)
 create mode 100644 esp8266/tests/neopixel.py

diff --git a/esp8266/tests/neopixel.py b/esp8266/tests/neopixel.py
new file mode 100644
index 000000000..7717bb496
--- /dev/null
+++ b/esp8266/tests/neopixel.py
@@ -0,0 +1,64 @@
+import time
+import machine
+from esp import neopixel_write
+
+class NeoPixel:
+    def __init__(self, pin, n):
+        self.pin = pin
+        self.n = n
+        self.buf = bytearray(n * 3)
+
+    def __setitem__(self, index, val):
+        r, g, b = val
+        self.buf[index * 3] = g
+        self.buf[index * 3 + 1] = r
+        self.buf[index * 3 + 2] = b
+
+    def __getitem__(self, index):
+        i = index * 3
+        return self.buf[i], self.buf[i + 1], self.buf[i + 2]
+
+    def write(self):
+        neopixel_write(self.pin, self.buf, True)
+
+def test():
+    # put a neopixel strip on GPIO4
+    p = machine.Pin(4, machine.Pin.OUT)
+    np = NeoPixel(p, 8)
+    n = np.n
+
+    # cycle
+    for i in range(4 * n):
+        for j in range(n):
+            np[j] = (0, 0, 0)
+        np[i % n] = (255, 255, 255)
+        np.write()
+        time.sleep_ms(25)
+
+    # bounce
+    for i in range(4 * n):
+        for j in range(n):
+            np[j] = (0, 0, 128)
+        if (i // n) % 2 == 0:
+            np[i % n] = (0, 0, 0)
+        else:
+            np[n - 1 - (i % n)] = (0, 0, 0)
+        np.write()
+        time.sleep_ms(60)
+
+    # fade in/out
+    for i in range(0, 4 * 256, 8):
+        for j in range(n):
+            if (i // 256) % 2 == 0:
+                val = i & 0xff
+            else:
+                val = 255 - (i & 0xff)
+            np[j] = (val, 0, 0)
+        np.write()
+
+    # clear
+    for i in range(n):
+        np[i] = (0, 0, 0)
+    np.write()
+
+test()
-- 
GitLab