Skip to content

Commit

Permalink
Merge pull request #111 from tannewt/auto_power
Browse files Browse the repository at this point in the history
Automatically turn on NEOPIXEL_POWER when using the NEOPIXEL pin
  • Loading branch information
kattni authored May 20, 2021
2 parents a58fce6 + 1db1ffd commit a8e9975
Showing 1 changed file with 20 additions and 4 deletions.
24 changes: 20 additions & 4 deletions neopixel.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
"""

# pylint: disable=ungrouped-imports
import sys
import board
import digitalio
from neopixel_write import neopixel_write

Expand Down Expand Up @@ -101,10 +103,22 @@ def __init__(
):
if not pixel_order:
pixel_order = GRB if bpp == 3 else GRBW
else:
if isinstance(pixel_order, tuple):
order_list = [RGBW[order] for order in pixel_order]
pixel_order = "".join(order_list)
elif isinstance(pixel_order, tuple):
order_list = [RGBW[order] for order in pixel_order]
pixel_order = "".join(order_list)

self._power = None
if (
sys.implementation.version[0] >= 7
and getattr(board, "NEOPIXEL", None) == pin
):
power = getattr(board, "NEOPIXEL_POWER_INVERTED", None)
polarity = power is None
if not power:
power = getattr(board, "NEOPIXEL_POWER", None)
if power:
self._power = digitalio.DigitalInOut(power)
self._power.switch_to_output(value=polarity)

super().__init__(
n, brightness=brightness, byteorder=pixel_order, auto_write=auto_write
Expand All @@ -118,6 +132,8 @@ def deinit(self):
self.fill(0)
self.show()
self.pin.deinit()
if self._power:
self._power.deinit()

def __enter__(self):
return self
Expand Down

0 comments on commit a8e9975

Please sign in to comment.