summaryrefslogtreecommitdiffstatshomepage
path: root/ports/esp8266/modules/neopixel.py
diff options
context:
space:
mode:
authorJim Mussared <jim.mussared@gmail.com>2021-08-11 15:22:29 +1000
committerDamien George <damien@micropython.org>2021-08-19 22:50:32 +1000
commit62fd450e621c8c46a93082f8e5f5417a32ef3fb8 (patch)
tree9e46482375b29145dd5bc4958c69c5697ed749e7 /ports/esp8266/modules/neopixel.py
parent39e9c0788fd533d8712d2b19ae93ab8efa56c599 (diff)
downloadmicropython-62fd450e621c8c46a93082f8e5f5417a32ef3fb8.tar.gz
micropython-62fd450e621c8c46a93082f8e5f5417a32ef3fb8.zip
drivers/neopixel: Add common machine.bitstream-based neopixel module.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Diffstat (limited to 'ports/esp8266/modules/neopixel.py')
-rw-r--r--ports/esp8266/modules/neopixel.py44
1 files changed, 0 insertions, 44 deletions
diff --git a/ports/esp8266/modules/neopixel.py b/ports/esp8266/modules/neopixel.py
deleted file mode 100644
index 9ed5155c72..0000000000
--- a/ports/esp8266/modules/neopixel.py
+++ /dev/null
@@ -1,44 +0,0 @@
-# NeoPixel driver for MicroPython
-# MIT license; Copyright (c) 2016 Damien P. George, 2021 Jim Mussared
-
-from micropython import const
-from machine import bitstream
-
-_BITSTREAM_TYPE_HIGH_LOW = const(0)
-_TIMING_WS2818_800 = (400, 850, 800, 450)
-_TIMING_WS2818_400 = (800, 1700, 1600, 900)
-
-
-class NeoPixel:
- ORDER = (1, 0, 2, 3)
-
- def __init__(self, pin, n, bpp=3, timing=1):
- self.pin = pin
- self.n = n
- self.bpp = bpp
- self.buf = bytearray(n * bpp)
- self.pin.init(pin.OUT)
- self.timing = (
- (_TIMING_WS2818_800 if timing else _TIMING_WS2818_400)
- if isinstance(timing, int)
- else timing
- )
-
- def __len__(self):
- return self.n
-
- def __setitem__(self, index, val):
- offset = index * self.bpp
- for i in range(self.bpp):
- self.buf[offset + self.ORDER[i]] = val[i]
-
- def __getitem__(self, index):
- offset = index * self.bpp
- return tuple(self.buf[offset + self.ORDER[i]] for i in range(self.bpp))
-
- def fill(self, color):
- for i in range(self.n):
- self[i] = color
-
- def write(self):
- bitstream(self.pin, _BITSTREAM_TYPE_HIGH_LOW, self.timing, self.buf)