diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2019-07-17 19:58:37 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2019-07-23 21:59:38 -0400 |
commit | 46041f541158067206f29139df188dfa876e3763 (patch) | |
tree | 810b3a1f317c2bd19cddfecbaa30f79b24095984 /klippy/extras/neopixel.py | |
parent | abf3fa4b717ba655f0715e8ee9540afa48784d25 (diff) | |
download | kutter-46041f541158067206f29139df188dfa876e3763.tar.gz kutter-46041f541158067206f29139df188dfa876e3763.tar.xz kutter-46041f541158067206f29139df188dfa876e3763.zip |
neopixel: Add support for daisy-chained chips
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extras/neopixel.py')
-rw-r--r-- | klippy/extras/neopixel.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/klippy/extras/neopixel.py b/klippy/extras/neopixel.py index 5a2fdec5..4920adf6 100644 --- a/klippy/extras/neopixel.py +++ b/klippy/extras/neopixel.py @@ -16,6 +16,7 @@ class PrinterNeoPixel: self.mcu.add_config_cmd("config_neopixel oid=%d pin=%s" % (self.oid, pin_params['pin'])) self.mcu.register_config_callback(self.build_config) + self.chain_count = config.getint('chain_count', 1, minval=1, maxval=18) self.neopixel_send_cmd = None # Initial color red = config.getfloat('initial_RED', 0., minval=0., maxval=1.) @@ -24,7 +25,7 @@ class PrinterNeoPixel: red = int(red * 255. + .5) blue = int(blue * 255. + .5) green = int(green * 255. + .5) - self.color_data = [green, red, blue] + self.color_data = [green, red, blue] * self.chain_count self.printer.register_event_handler("klippy:connect", self.send_data) # Register commands self.gcode = self.printer.lookup_object('gcode') @@ -50,7 +51,13 @@ class PrinterNeoPixel: red = int(red * 255. + .5) blue = int(blue * 255. + .5) green = int(green * 255. + .5) - self.color_data = [green, red, blue] + color_data = [green, red, blue] + if 'INDEX' in params: + index = self.gcode.get_int('INDEX', params, + minval=1, maxval=self.chain_count) + self.color_data[(index-1)*3:index*3] = color_data + else: + self.color_data = color_data * self.chain_count # Send command print_time = self.printer.lookup_object('toolhead').get_last_move_time() self.send_data(self.mcu.print_time_to_clock(print_time)) |