@@ -121,23 +121,26 @@ def gpio_startup(self, pin, settings):
121
121
if pin in self .Lights :
122
122
self .gpio_cleanup (pin )
123
123
124
- GPIO .setup (self ._gpio_get_pin (pin ), GPIO .OUT )
125
124
try :
126
125
self .Lights [pin ] = copy .deepcopy (settings )
127
126
if settings ["ispwm" ]:
128
127
if self ._is_hw_pwm_pin (self ._gpio_get_pin (pin )):
129
128
try :
130
129
self .Lights [pin ]["pwm" ] = HardwarePWM (self ._get_hw_pwm_channel (self ._gpio_get_pin (pin )), int (settings ["frequency" ]))
131
- self ._logger .debug ("Setup HW PWM succeded!" )
130
+ self ._logger .debug ("Setup hardware PWM succeded!" )
132
131
except Exception as e :
133
- self ._logger .error ("Tried to setup pin {} as Hardware PWM on channel {}, but failed:" .format (pin , self ._get_hw_pwm_channel (self ._gpio_get_pin (pin ))))
132
+ self ._logger .error ("Tried to setup pin {} as hardware PWM on channel {}, but failed:" .format (pin , self ._get_hw_pwm_channel (self ._gpio_get_pin (pin ))))
134
133
self ._logger .error (e )
135
- self ._logger .warning ("Setting up as Soft PWM instead..." )
134
+ self ._logger .warning ("Setting up as software PWM instead..." )
135
+ self ._logger .warning ("If your LEDs appear to be flickering, look into hardware PWM." )
136
+ GPIO .setup (self ._gpio_get_pin (pin ), GPIO .OUT )
136
137
self .Lights [pin ]["pwm" ] = GPIO .PWM (self ._gpio_get_pin (pin ), int (settings ["frequency" ]))
137
138
else :
139
+ GPIO .setup (self ._gpio_get_pin (pin ), GPIO .OUT )
138
140
self .Lights [pin ]["pwm" ] = GPIO .PWM (self ._gpio_get_pin (pin ), int (settings ["frequency" ]))
139
141
self .Lights [pin ]["pwm" ].start (100 if self .Lights [pin ]["inverted" ] else 0 )
140
142
else :
143
+ GPIO .setup (self ._gpio_get_pin (pin ), GPIO .OUT )
141
144
GPIO .output (self ._gpio_get_pin (pin ), 1 if self .Lights [pin ]["inverted" ] else 0 )
142
145
143
146
self .Lights [pin ]["value" ] = 0
0 commit comments