File tree 1 file changed +20
-4
lines changed 1 file changed +20
-4
lines changed Original file line number Diff line number Diff line change 13
13
"""
14
14
15
15
# pylint: disable=ungrouped-imports
16
+ import sys
17
+ import board
16
18
import digitalio
17
19
from neopixel_write import neopixel_write
18
20
@@ -101,10 +103,22 @@ def __init__(
101
103
):
102
104
if not pixel_order :
103
105
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 )
108
122
109
123
super ().__init__ (
110
124
n , brightness = brightness , byteorder = pixel_order , auto_write = auto_write
@@ -118,6 +132,8 @@ def deinit(self):
118
132
self .fill (0 )
119
133
self .show ()
120
134
self .pin .deinit ()
135
+ if self ._power :
136
+ self ._power .deinit ()
121
137
122
138
def __enter__ (self ):
123
139
return self
You can’t perform that action at this time.
0 commit comments