From 95a8abd22a2d96514de2a91102abf7ad8c101582 Mon Sep 17 00:00:00 2001 From: Zach Schimke Date: Wed, 18 Aug 2021 14:46:31 -0700 Subject: [PATCH] Big overhawl of neopixels; test in progress. --- caselight.cfg | 150 +++++++++++++++++++++----------------------------- 1 file changed, 64 insertions(+), 86 deletions(-) diff --git a/caselight.cfg b/caselight.cfg index 11bf776..2a1a113 100644 --- a/caselight.cfg +++ b/caselight.cfg @@ -6,30 +6,55 @@ [neopixel neo_leds] pin: RGB chain_count: 17 -color_order: RGBW +color_order: GRBW initial_RED: 0.0 initial_GREEN: 0.0 initial_BLUE: 0.0 -initial_WHITE: 0.5 +initial_WHITE: 0.1 ##################################################################### # Macros ##################################################################### -[gcode_macro _SET_CASELIGHT] -# use SET_CASELIGHT S0 to switch off -# use SET_Caselight S100 for full brightness -default_parameter_BLINK: 0 -default_parameter_S: 0 -variable_color: 'WHITE' -variable_restore: 'WHITE' -variable_index: 2 -variable_blink: 0 +[gcode_macro _VAR_LEDS] +variable_colors: { 'red': (1.0, 0.0, 0.0, 0.0), + 'orange': (1.0, 0.5, 0.0, 0.0), + 'yellow': (1.0, 1.0, 0.0, 0.0), + 'charteuse': (0.5, 1.0, 0.0, 0.0), + 'green': (0.0, 1.0, 0.0, 0.0), + 'turquiose': (0.0, 1.0, 0.5, 0.0), + 'springgreen': (0.0, 1.0, 0.5, 0.0), + 'cyan': (0.0, 1.0, 1.0, 0.0), + 'azure': (0.0, 0.5, 1.0, 0.0), + 'ocean': (0.0, 0.5, 1.0, 0.0), + 'blue': (0.0, 0.0, 1.0, 0.0), + 'violet': (0.5, 0.0, 1.0, 0.0), + 'purple': (0.5, 0.0, 1.0, 0.0), + 'magenta': (1.0, 0.0, 1.0, 0.0), + 'raspberry': (1.0, 0.0, 0.5, 0.0), + 'rose': (1.0, 0.0, 0.5, 0.0), + 'white': (0.0, 0.0, 0.0, 4.0), + 'off': (0.0, 0.0, 0.0, 0.0)} gcode: - {% if params.COLOR == 'WHITE'%} - SET_GCODE_VARIABLE MACRO=_LCD_KNOB VARIABLE=color VALUE='"GREEN"' - SET_LED LED=neo_leds RED=0 GREEN=0 BLUE=0 WHITE={% S / 100 %} INDEX=3 TRANSMIT=1 -SET_PIN PIN=_caselight VALUE={S} +[gcode_macro _SET_LEDS] +default_parameter_color: 'WHITE' +default_parameter_index: (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16) +gcode: + # Grab the color values + {% set R=printer["gcode_macro _VAR_LEDS"].colors.[params.COLOR][0] %} + {% set G=printer["gcode_macro _VAR_LEDS"].colors.[params.COLOR][1] %} + {% set B=printer["gcode_macro _VAR_LEDS"].colors.[params.COLOR][2] %} + {% set W=printer["gcode_macro _VAR_LEDS"].colors.[params.COLOR][3] %} + + {% for I in index %} + SET_LED LED=neo_leds RED={R} GREEN={G} BLUE={B} WHITE={W} INDEX={I} TRANSMIT={{ loop.last }} SYNC=0 + {% endfor %} + +[gcode_macro _CASELIGHT] +default_parameter_COLOR: 'WHITE' +variable_index: (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16) +gcode: + _SET_LED color={COLOR} index={var_index} [gcode_macro _caselight_state] gcode: @@ -38,13 +63,13 @@ gcode: [gcode_macro _CASELIGHT_ON] gcode: SET_GCODE_VARIABLE MACRO=CASELIGHT VARIABLE=state VALUE='"on"' - _SET_CASELIGHT S=60 + _CASELIGHT _caselight_state [gcode_macro _CASELIGHT_OFF] gcode: SET_GCODE_VARIABLE MACRO=CASELIGHT VARIABLE=state VALUE='"off"' - _SET_CASELIGHT S=0 + _CASELIGHT color='"off"' _caselight_state [gcode_macro CASELIGHT] @@ -56,86 +81,39 @@ gcode: _CASELIGHT_OFF {% endif %} - -[delayed_gcode _LCD_INIT_KNOB] +[delayed_gcode _STATUS_LED_INIT] initial_duration: 1 gcode: - _LCD_KNOB COLOR=RED + _STATUS_LED COLOR=BLUE -[delayed_gcode _LCD_INIT_OFF] -initial_duration: 10 -gcode: - SET_GCODE_VARIABLE MACRO=DISPLAY VARIABLE=state VALUE='"off"' - SET_LED LED=neo_display RED=0 GREEN=0 BLUE=0 INDEX=1 TRANSMIT=1 - -[gcode_macro _LCD_KNOB] +[gcode_macro _STATUS_LED] default_parameter_BLINK: 0 -variable_color: 'GREEN' +variable_color: 'ORANGE' variable_restore: 'GREEN' -variable_index: 2 -variable_blink: 0 +variable_index: 17 +variable_blinkNext: 0 gcode: - {% set var_color=printer["gcode_macro _LCD_KNOB"].color %} - {% set var_restore=printer["gcode_macro _LCD_KNOB"].restore %} - SET_GCODE_VARIABLE MACRO=_LCD_KNOB VARIABLE=blink VALUE={BLINK} - UPDATE_DELAYED_GCODE ID=_BLINK_DELAY DURATION={BLINK|float} - SET_GCODE_VARIABLE MACRO=_LCD_KNOB VARIABLE=restore VALUE='"{var_color}"' - {% if params.COLOR == 'GREEN'%} - SET_GCODE_VARIABLE MACRO=_LCD_KNOB VARIABLE=color VALUE='"GREEN"' - SET_LED LED=neo_display RED=0 GREEN=0.3 BLUE=0 INDEX=2 TRANSMIT=0 - SET_LED LED=neo_display RED=0 GREEN=0.3 BLUE=0 INDEX=3 TRANSMIT=1 - {% elif params.COLOR == 'RED'%} - SET_GCODE_VARIABLE MACRO=_LCD_KNOB VARIABLE=color VALUE='"RED"' - SET_LED LED=neo_display RED=0.5 GREEN=0 BLUE=0 INDEX=2 TRANSMIT=0 - SET_LED LED=neo_display RED=0.5 GREEN=0 BLUE=0 INDEX=3 TRANSMIT=1 - {% elif params.COLOR == 'BLUE'%} - SET_GCODE_VARIABLE MACRO=_LCD_KNOB VARIABLE=color VALUE='"BLUE"' - SET_LED LED=neo_display RED=0 GREEN=0 BLUE=0.5 INDEX=2 TRANSMIT=0 - SET_LED LED=neo_display RED=0 GREEN=0 BLUE=0.5 INDEX=3 TRANSMIT=1 + {% set var_color=printer["gcode_macro _STATUS_LED"].color %} + {% set var_restore=printer["gcode_macro _STATUS_LED"].restore %} + SET_GCODE_VARIABLE MACRO=_STATUS_LED VARIABLE=blink VALUE={BLINK} + UPDATE_DELAYED_GCODE ID=_STATUS_LED_BLINK_DELAY DURATION={BLINK|float} + SET_GCODE_VARIABLE MACRO=_STATUS_LED VARIABLE=restore VALUE='"{var_color}"' + {% if params.COLOR %} + _SET_LED color={COLOR} index={var_index} {% else %} - {% if var_restore == 'GREEN'%} - SET_GCODE_VARIABLE MACRO=_LCD_KNOB VARIABLE=color VALUE='"GREEN"' - SET_LED LED=neo_display RED=0 GREEN=0.3 BLUE=0 INDEX=2 TRANSMIT=0 - SET_LED LED=neo_display RED=0 GREEN=0.3 BLUE=0 INDEX=3 TRANSMIT=1 - {% elif var_restore == 'RED'%} - SET_GCODE_VARIABLE MACRO=_LCD_KNOB VARIABLE=color VALUE='"RED"' - SET_LED LED=neo_display RED=0.5 GREEN=0 BLUE=0 INDEX=2 TRANSMIT=0 - SET_LED LED=neo_display RED=0.5 GREEN=0 BLUE=0 INDEX=3 TRANSMIT=1 - {% elif var_restore == 'BLUE'%} - SET_GCODE_VARIABLE MACRO=_LCD_KNOB VARIABLE=color VALUE='"BLUE"' - SET_LED LED=neo_display RED=0 GREEN=0 BLUE=0.5 INDEX=2 TRANSMIT=0 - SET_LED LED=neo_display RED=0 GREEN=0 BLUE=0.5 INDEX=3 TRANSMIT=1 - {% endif %} + _SET_LED color={var_restore} index={var_index} {% endif %} -[delayed_gcode _BLINK_DELAY] +[delayed_gcode _STATUS_LED_BLINK_DELAY] gcode: - {% set var_color=printer["gcode_macro _LCD_KNOB"].color %} - {% if printer["gcode_macro _LCD_KNOB"].index|int == 2 %} - SET_GCODE_VARIABLE MACRO=_LCD_KNOB VARIABLE=index VALUE=3 - {% if var_color == 'GREEN'%} - SET_LED LED=neo_display RED=0.0 GREEN=0.3 BLUE=0.0 INDEX=2 TRANSMIT=0 - SET_LED LED=neo_display RED=0.0 GREEN=0.0 BLUE=0.0 INDEX=3 TRANSMIT=1 - {% elif var_color == 'RED'%} - SET_LED LED=neo_display RED=0.5 GREEN=0.0 BLUE=0.0 INDEX=2 TRANSMIT=0 - SET_LED LED=neo_display RED=0.0 GREEN=0.0 BLUE=0.0 INDEX=3 TRANSMIT=1 - {% elif var_color == 'BLUE'%} - SET_LED LED=neo_display RED=0.0 GREEN=0.0 BLUE=0.5 INDEX=2 TRANSMIT=0 - SET_LED LED=neo_display RED=0.0 GREEN=0.0 BLUE=0.0 INDEX=3 TRANSMIT=1 - {% endif %} + {% set var_color=printer["gcode_macro _STATUS_LED"].color %} + {% if printer["gcode_macro _STATUS_LED"].blinkNext|int == 0 %} + SET_GCODE_VARIABLE MACRO=_STATUS_LED VARIABLE=blinkNext VALUE=1 + STATUS_LED color={COLOR} {% else %} - SET_GCODE_VARIABLE MACRO=_LCD_KNOB VARIABLE=index VALUE=2 - {% if var_color == 'GREEN'%} - SET_LED LED=neo_display RED=0.0 GREEN=0.0 BLUE=0.0 INDEX=2 TRANSMIT=0 - SET_LED LED=neo_display RED=0.0 GREEN=0.3 BLUE=0.0 INDEX=3 TRANSMIT=1 - {% elif var_color == 'RED'%} - SET_LED LED=neo_display RED=0.0 GREEN=0.0 BLUE=0.0 INDEX=2 TRANSMIT=0 - SET_LED LED=neo_display RED=0.5 GREEN=0.0 BLUE=0.0 INDEX=3 TRANSMIT=1 - {% elif var_color == 'BLUE'%} - SET_LED LED=neo_display RED=0.0 GREEN=0.0 BLUE=0.0 INDEX=2 TRANSMIT=0 - SET_LED LED=neo_display RED=0.0 GREEN=0.0 BLUE=0.5 INDEX=3 TRANSMIT=1 - {% endif %} + SET_GCODE_VARIABLE MACRO=_STATUS_LED VARIABLE=blinkNext VALUE=0 + _STATUS_LED color='off' {% endif %} - UPDATE_DELAYED_GCODE ID=_BLINK_DELAY DURATION={printer["gcode_macro _LCD_KNOB"].blink|float} + UPDATE_DELAYED_GCODE ID=_BLINK_DELAY DURATION={printer["gcode_macro _STATUS_LED"].blink|float}