Big overhawl of neopixels; test in progress.

This commit is contained in:
Zach Schimke 2021-08-18 14:46:31 -07:00
parent 26d3b1c1a3
commit 95a8abd22a
1 changed files with 64 additions and 86 deletions

View File

@ -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}