File tree Expand file tree Collapse file tree 1 file changed +20
-4
lines changed Expand file tree Collapse file tree 1 file changed +20
-4
lines changed Original file line number Diff line number Diff line change 1313"""
1414
1515# pylint: disable=ungrouped-imports
16+ import sys
17+ import board
1618import digitalio
1719from neopixel_write import neopixel_write
1820
@@ -101,10 +103,22 @@ def __init__(
101103 ):
102104 if not pixel_order :
103105 pixel_order = GRB if bpp == 3 else GRBW
104- else :
105- if isinstance (pixel_order , tuple ):
106- order_list = [RGBW [order ] for order in pixel_order ]
107- pixel_order = "" .join (order_list )
106+ elif isinstance (pixel_order , tuple ):
107+ order_list = [RGBW [order ] for order in pixel_order ]
108+ pixel_order = "" .join (order_list )
109+
110+ self ._power = None
111+ if (
112+ sys .implementation .version [0 ] >= 7
113+ and getattr (board , "NEOPIXEL" , None ) == pin
114+ ):
115+ power = getattr (board , "NEOPIXEL_POWER_INVERTED" , None )
116+ polarity = power is None
117+ if not power :
118+ power = getattr (board , "NEOPIXEL_POWER" , None )
119+ if power :
120+ self ._power = digitalio .DigitalInOut (power )
121+ self ._power .switch_to_output (value = polarity )
108122
109123 super ().__init__ (
110124 n , brightness = brightness , byteorder = pixel_order , auto_write = auto_write
@@ -118,6 +132,8 @@ def deinit(self):
118132 self .fill (0 )
119133 self .show ()
120134 self .pin .deinit ()
135+ if self ._power :
136+ self ._power .deinit ()
121137
122138 def __enter__ (self ):
123139 return self
You can’t perform that action at this time.
0 commit comments