c_stealthburner_leds.cfg modified - 23/04/25 - 23:31:49

This commit is contained in:
pi committed 2025-04-23 23:31:52 +10:00
1 parent 4ebe48b19f
commit e6c658d270
1 file changed
+253 -253
@@ -1,254 +1,254 @@
# Macros for setting the status leds on the Voron StealthBurner toolhead (or for any neopixel-type leds). # Macros for setting the status leds on the Voron StealthBurner toolhead (or for any neopixel-type leds).
# #
# You will need to configure a neopixel (or other addressable led, such as dotstar). See # You will need to configure a neopixel (or other addressable led, such as dotstar). See
# https://www.klipper3d.org/Config_Reference.html#neopixel for configuration details. # https://www.klipper3d.org/Config_Reference.html#neopixel for configuration details.
##################################### #####################################
# INSTRUCTIONS # # INSTRUCTIONS #
##################################### #####################################
# How to use all this stuff: # How to use all this stuff:
# #
# 1. Copy this .cfg file into your Klipper config directory and then add [include stealthburner_leds.cfg] # 1. Copy this .cfg file into your Klipper config directory and then add [include stealthburner_leds.cfg]
# to the top of your printer.cfg in order to register the LEDs and macros with Klipper. # to the top of your printer.cfg in order to register the LEDs and macros with Klipper.
# 2. Define your LEDs by editing [neopixel sb_leds] below and entering the data pin from your control board # 2. Define your LEDs by editing [neopixel sb_leds] below and entering the data pin from your control board
# as well as the color order. # as well as the color order.
# #
# Note: RGB and RGBW are different and must be defined explicitly. RGB and RGBW are also not able to # Note: RGB and RGBW are different and must be defined explicitly. RGB and RGBW are also not able to
# be mix-and-matched in the same chain. A separate data line would be needed for proper functioning. # be mix-and-matched in the same chain. A separate data line would be needed for proper functioning.
# #
# RGBW LEDs will have a visible yellow-ish phosphor section to the chip. If your LEDs do not have # RGBW LEDs will have a visible yellow-ish phosphor section to the chip. If your LEDs do not have
# this yellow portion, you have RGB LEDs. # this yellow portion, you have RGB LEDs.
# #
# 3. Save your config and restart Klipper. # 3. Save your config and restart Klipper.
# #
# Note: We set RED and BLUE to 1.0 to make it easier for users and supporters to detect # Note: We set RED and BLUE to 1.0 to make it easier for users and supporters to detect
# misconfigurations or miswiring. The default color format is for Neopixels with a dedicated # misconfigurations or miswiring. The default color format is for Neopixels with a dedicated
# white LED. On startup, all three SB LEDs should light up. # white LED. On startup, all three SB LEDs should light up.
# #
# If you get random colors across your LEDs, change the color_order to GRB and restart. Then # If you get random colors across your LEDs, change the color_order to GRB and restart. Then
# omit the W for each suggested color_order in the next paragraph. # omit the W for each suggested color_order in the next paragraph.
# #
# If you get MAGENTA, your color order is correct. If you get CYAN, you need to use RGBW. If # If you get MAGENTA, your color order is correct. If you get CYAN, you need to use RGBW. If
# you get YELLOW, you need to use BRGW (note that BRG is only supported in the latest Klipper # you get YELLOW, you need to use BRGW (note that BRG is only supported in the latest Klipper
# version). # version).
# #
# 4. Once you have confirmed that the LEDs are set up correctly, you must now decide where you want # 4. Once you have confirmed that the LEDs are set up correctly, you must now decide where you want
# these macros called up...which means adding them to your existing gcode macros. NOTHING will happen # these macros called up...which means adding them to your existing gcode macros. NOTHING will happen
# unless you add the STATUS_????? macros to your existing gcode macros. # unless you add the STATUS_????? macros to your existing gcode macros.
# #
# Example: add STATUS_LEVELING to the beginning of your QGL gcode macro, and then add STATUS_READY # Example: add STATUS_LEVELING to the beginning of your QGL gcode macro, and then add STATUS_READY
# to the end of it to set the logo LED and nozzle LEDs back to the `ready` state. # to the end of it to set the logo LED and nozzle LEDs back to the `ready` state.
# #
# Example: add STATUS_CLEANING to the beginning of your nozzle-cleaning macro, and then STATUS_READY # Example: add STATUS_CLEANING to the beginning of your nozzle-cleaning macro, and then STATUS_READY
# to the end of it to return the LEDs back to `ready` state. # to the end of it to return the LEDs back to `ready` state.
# #
# 5. Feel free to change colors of each macro, create new ones if you have a need to. The macros provided below # 5. Feel free to change colors of each macro, create new ones if you have a need to. The macros provided below
# are just an example of what is possible. If you want to try some more complex animations, you will most # are just an example of what is possible. If you want to try some more complex animations, you will most
# likely have to use WLED with Moonraker and a small micro-controller # likely have to use WLED with Moonraker and a small micro-controller
# #
##################################### #####################################
# END INSTRUCTRUCTIONS # # END INSTRUCTRUCTIONS #
##################################### #####################################
[neopixel sb_leds] [neopixel sb_leds]
pin: EBB:gpio15 pin: EBB:gpio15
# The pin connected to the neopixel. This parameter must be provided. # The pin connected to the neopixel. This parameter must be provided.
chain_count: 3 chain_count: 3
# The number of Neopixel chips that are "daisy chained" to the # The number of Neopixel chips that are "daisy chained" to the
# provided pin. The default is 1 (which indicates only a single # provided pin. The default is 1 (which indicates only a single
# Neopixel is connected to the pin). # Neopixel is connected to the pin).
color_order: GRBW color_order: GRBW
# Set the pixel order required by the LED hardware. Options are GRB, # Set the pixel order required by the LED hardware. Options are GRB,
# RGB, GRBW, or RGBW. The default is GRB. # RGB, GRBW, or RGBW. The default is GRB.
initial_RED: 1.0 initial_RED: 1.0
initial_GREEN: 0.0 initial_GREEN: 0.0
initial_BLUE: 1.0 initial_BLUE: 1.0
initial_WHITE: 0.0 initial_WHITE: 0.0
# Sets the initial LED color of the Neopixel. Each value should be # Sets the initial LED color of the Neopixel. Each value should be
# between 0.0 and 1.0. The WHITE option is only available on RGBW # between 0.0 and 1.0. The WHITE option is only available on RGBW
# LEDs. The default for each color is 0.# # LEDs. The default for each color is 0.#
# Most configuration for the macros can be done by modifying the variables in the _sb_vars macro # Most configuration for the macros can be done by modifying the variables in the _sb_vars macro
# at the start of this file. # at the start of this file.
########## ##########
# MACROS # # MACROS #
########## ##########
# The following status macros are available (these go inside of your macros): # The following status macros are available (these go inside of your macros):
# #
# STATUS_READY # STATUS_READY
# STATUS_OFF # STATUS_OFF
# STATUS_BUSY # STATUS_BUSY
# STATUS_HEATING # STATUS_HEATING
# STATUS_LEVELING # STATUS_LEVELING
# STATUS_HOMING # STATUS_HOMING
# STATUS_CLEANING # STATUS_CLEANING
# STATUS_MESHING # STATUS_MESHING
# STATUS_CALIBRATING_Z # STATUS_CALIBRATING_Z
# #
# With additional macros for basic control: # With additional macros for basic control:
# #
# SET_NOZZLE_LEDS_ON # SET_NOZZLE_LEDS_ON
# SET_LOGO_LEDS_OFF # SET_LOGO_LEDS_OFF
# SET_NOZZLE_LEDS_OFF # SET_NOZZLE_LEDS_OFF
# #
# Contributed by Voron discord users wile.e, Tetsunosuke, and etherwalker # Contributed by Voron discord users wile.e, Tetsunosuke, and etherwalker
[gcode_macro _sb_vars] [gcode_macro _sb_vars]
# User settings for the StealthBurner status leds. You can change the status colors and led # User settings for the StealthBurner status leds. You can change the status colors and led
# configurations for the logo and nozzle here. # configurations for the logo and nozzle here.
variable_colors: { variable_colors: {
'logo': { # Colors for logo states 'logo': { # Colors for logo states
'busy': {'r': 0.4, 'g': 0.0, 'b': 0.0, 'w': 0.0}, 'busy': {'r': 0.4, 'g': 0.0, 'b': 0.0, 'w': 0.0},
'cleaning': {'r': 0.0, 'g': 0.02, 'b': 0.5, 'w': 0.0}, 'cleaning': {'r': 0.0, 'g': 0.02, 'b': 0.5, 'w': 0.0},
'calibrating_z': {'r': 0.8, 'g': 0., 'b': 0.35, 'w': 0.0}, 'calibrating_z': {'r': 0.8, 'g': 0., 'b': 0.35, 'w': 0.0},
'heating': {'r': 0.3, 'g': 0.18, 'b': 0.0, 'w': 0.0}, 'heating': {'r': 0.3, 'g': 0.18, 'b': 0.0, 'w': 0.0},
'homing': {'r': 0.0, 'g': 0.6, 'b': 0.2, 'w': 0.0}, 'homing': {'r': 0.0, 'g': 0.6, 'b': 0.2, 'w': 0.0},
'leveling': {'r': 0.5, 'g': 0.1, 'b': 0.4, 'w': 0.0}, 'leveling': {'r': 0.5, 'g': 0.1, 'b': 0.4, 'w': 0.0},
'meshing': {'r': 0.2, 'g': 1.0, 'b': 0.0, 'w': 0.0}, 'meshing': {'r': 0.2, 'g': 1.0, 'b': 0.0, 'w': 0.0},
'off': {'r': 0.0, 'g': 0.0, 'b': 0.0, 'w': 0.0}, 'off': {'r': 0.0, 'g': 0.0, 'b': 0.0, 'w': 0.0},
'printing': {'r': 1.0, 'g': 0.0, 'b': 0.0, 'w': 0.0}, 'printing': {'r': 1.0, 'g': 0.0, 'b': 0.0, 'w': 0.0},
'standby': {'r': 0.01, 'g': 0.01, 'b': 0.01, 'w': 0.1}, 'standby': {'r': 0.01, 'g': 0.01, 'b': 0.01, 'w': 0.1},
}, },
'nozzle': { # Colors for nozzle states 'nozzle': { # Colors for nozzle states
'heating': {'r': 0.8, 'g': 0.35, 'b': 0.0, 'w':0.0}, 'heating': {'r': 0.8, 'g': 0.35, 'b': 0.0, 'w':0.0},
'off': {'r': 0.0, 'g': 0.0, 'b': 0.0, 'w': 0.0}, 'off': {'r': 0.0, 'g': 0.0, 'b': 0.0, 'w': 0.0},
'on': {'r': 0.8, 'g': 0.8, 'b': 0.8, 'w':1.0}, 'on': {'r': 0.8, 'g': 0.8, 'b': 0.8, 'w':0.1},
'standby': {'r': 0.6, 'g': 0.0, 'b': 0.0, 'w':0.0}, 'standby': {'r': 0.6, 'g': 0.0, 'b': 0.0, 'w':0.0},
}, },
'thermal': { 'thermal': {
'hot': {'r': 1.0, 'g': 0.0, 'b': 0.0, 'w': 0.0}, 'hot': {'r': 1.0, 'g': 0.0, 'b': 0.0, 'w': 0.0},
'cold': {'r': 0.3, 'g': 0.0, 'b': 0.3, 'w': 0.0} 'cold': {'r': 0.3, 'g': 0.0, 'b': 0.3, 'w': 0.0}
} }
} }
variable_logo_led_name: "sb_leds" variable_logo_led_name: "sb_leds"
# The name of the addressable LED chain that contains the logo LED(s) # The name of the addressable LED chain that contains the logo LED(s)
variable_logo_idx: "1" variable_logo_idx: "1"
# A comma-separated list of indexes LEDs in the logo # A comma-separated list of indexes LEDs in the logo
variable_nozzle_led_name: "sb_leds" variable_nozzle_led_name: "sb_leds"
# The name of the addressable LED chain that contains the nozzle LED(s). This will # The name of the addressable LED chain that contains the nozzle LED(s). This will
# typically be the same LED chain as the logo. # typically be the same LED chain as the logo.
variable_nozzle_idx: "2,3" variable_nozzle_idx: "2,3"
# A comma-separated list of indexes of LEDs in the nozzle # A comma-separated list of indexes of LEDs in the nozzle
gcode: gcode:
# This section is required. Do Not Delete. # This section is required. Do Not Delete.
[gcode_macro _set_sb_leds] [gcode_macro _set_sb_leds]
gcode: gcode:
{% set red = params.RED|default(0)|float %} {% set red = params.RED|default(0)|float %}
{% set green = params.GREEN|default(0)|float %} {% set green = params.GREEN|default(0)|float %}
{% set blue = params.BLUE|default(0)|float %} {% set blue = params.BLUE|default(0)|float %}
{% set white = params.WHITE|default(0)|float %} {% set white = params.WHITE|default(0)|float %}
{% set led = params.LED|string %} {% set led = params.LED|string %}
{% set idx = (params.IDX|string).split(',') %} {% set idx = (params.IDX|string).split(',') %}
{% set transmit_last = params.TRANSMIT|default(1) %} {% set transmit_last = params.TRANSMIT|default(1) %}
{% for led_index in idx %} {% for led_index in idx %}
{% set transmit=transmit_last if loop.last else 0 %} {% set transmit=transmit_last if loop.last else 0 %}
set_led led={led} red={red} green={green} blue={blue} white={white} index={led_index} transmit={transmit} set_led led={led} red={red} green={green} blue={blue} white={white} index={led_index} transmit={transmit}
{% endfor %} {% endfor %}
[gcode_macro _set_sb_leds_by_name] [gcode_macro _set_sb_leds_by_name]
gcode: gcode:
{% set leds_name = params.LEDS %} {% set leds_name = params.LEDS %}
{% set color_name = params.COLOR %} {% set color_name = params.COLOR %}
{% set color = printer["gcode_macro _sb_vars"].colors[leds_name][color_name] %} {% set color = printer["gcode_macro _sb_vars"].colors[leds_name][color_name] %}
{% set led = printer["gcode_macro _sb_vars"][leds_name + "_led_name"] %} {% set led = printer["gcode_macro _sb_vars"][leds_name + "_led_name"] %}
{% set idx = printer["gcode_macro _sb_vars"][leds_name + "_idx"] %} {% set idx = printer["gcode_macro _sb_vars"][leds_name + "_idx"] %}
{% set transmit = params.TRANSMIT|default(1) %} {% set transmit = params.TRANSMIT|default(1) %}
_set_sb_leds led={led} red={color.r} green={color.g} blue={color.b} white={color.w} idx="{idx}" transmit={transmit} _set_sb_leds led={led} red={color.r} green={color.g} blue={color.b} white={color.w} idx="{idx}" transmit={transmit}
[gcode_macro _set_logo_leds] [gcode_macro _set_logo_leds]
gcode: gcode:
{% set red = params.RED|default(0)|float %} {% set red = params.RED|default(0)|float %}
{% set green = params.GREEN|default(0)|float %} {% set green = params.GREEN|default(0)|float %}
{% set blue = params.BLUE|default(0)|float %} {% set blue = params.BLUE|default(0)|float %}
{% set white = params.WHITE|default(0)|float %} {% set white = params.WHITE|default(0)|float %}
{% set led = printer["gcode_macro _sb_vars"].logo_led_name %} {% set led = printer["gcode_macro _sb_vars"].logo_led_name %}
{% set idx = printer["gcode_macro _sb_vars"].logo_idx %} {% set idx = printer["gcode_macro _sb_vars"].logo_idx %}
{% set transmit=params.TRANSMIT|default(1) %} {% set transmit=params.TRANSMIT|default(1) %}
_set_sb_leds led={led} red={red} green={green} blue={blue} white={white} idx="{idx}" transmit={transmit} _set_sb_leds led={led} red={red} green={green} blue={blue} white={white} idx="{idx}" transmit={transmit}
[gcode_macro _set_nozzle_leds] [gcode_macro _set_nozzle_leds]
gcode: gcode:
{% set red = params.RED|default(0)|float %} {% set red = params.RED|default(0)|float %}
{% set green = params.GREEN|default(0)|float %} {% set green = params.GREEN|default(0)|float %}
{% set blue = params.BLUE|default(0)|float %} {% set blue = params.BLUE|default(0)|float %}
{% set white = params.WHITE|default(0)|float %} {% set white = params.WHITE|default(0)|float %}
{% set led = printer["gcode_macro _sb_vars"].nozzle_led_name %} {% set led = printer["gcode_macro _sb_vars"].nozzle_led_name %}
{% set idx = printer["gcode_macro _sb_vars"].nozzle_idx %} {% set idx = printer["gcode_macro _sb_vars"].nozzle_idx %}
{% set transmit=params.TRANSMIT|default(1) %} {% set transmit=params.TRANSMIT|default(1) %}
_set_sb_leds led={led} red={red} green={green} blue={blue} white={white} idx="{idx}" transmit={transmit} _set_sb_leds led={led} red={red} green={green} blue={blue} white={white} idx="{idx}" transmit={transmit}
[gcode_macro set_logo_leds_off] [gcode_macro set_logo_leds_off]
gcode: gcode:
{% set transmit=params.TRANSMIT|default(1) %} {% set transmit=params.TRANSMIT|default(1) %}
_set_logo_leds red=0 blue=0 green=0 white=0 transmit={transmit} _set_logo_leds red=0 blue=0 green=0 white=0 transmit={transmit}
[gcode_macro set_nozzle_leds_on] [gcode_macro set_nozzle_leds_on]
gcode: gcode:
{% set transmit=params.TRANSMIT|default(1) %} {% set transmit=params.TRANSMIT|default(1) %}
_set_sb_leds_by_name leds="nozzle" color="on" transmit={transmit} _set_sb_leds_by_name leds="nozzle" color="on" transmit={transmit}
[gcode_macro set_nozzle_leds_off] [gcode_macro set_nozzle_leds_off]
gcode: gcode:
{% set transmit=params.TRANSMIT|default(1) %} {% set transmit=params.TRANSMIT|default(1) %}
_set_sb_leds_by_name leds="nozzle" color="off" transmit={transmit} _set_sb_leds_by_name leds="nozzle" color="off" transmit={transmit}
[gcode_macro status_off] [gcode_macro status_off]
gcode: gcode:
set_logo_leds_off transmit=0 set_logo_leds_off transmit=0
set_nozzle_leds_off set_nozzle_leds_off
[gcode_macro status_ready] [gcode_macro status_ready]
gcode: gcode:
_set_sb_leds_by_name leds="logo" color="standby" transmit=0 _set_sb_leds_by_name leds="logo" color="standby" transmit=0
_set_sb_leds_by_name leds="nozzle" color="standby" transmit=1 _set_sb_leds_by_name leds="nozzle" color="standby" transmit=1
[gcode_macro status_busy] [gcode_macro status_busy]
gcode: gcode:
_set_sb_leds_by_name leds="logo" color="busy" transmit=0 _set_sb_leds_by_name leds="logo" color="busy" transmit=0
set_nozzle_leds_on set_nozzle_leds_on
[gcode_macro status_heating] [gcode_macro status_heating]
gcode: gcode:
_set_sb_leds_by_name leds="logo" color="heating" transmit=0 _set_sb_leds_by_name leds="logo" color="heating" transmit=0
_set_sb_leds_by_name leds="nozzle" color="heating" transmit=1 _set_sb_leds_by_name leds="nozzle" color="heating" transmit=1
[gcode_macro status_leveling] [gcode_macro status_leveling]
gcode: gcode:
_set_sb_leds_by_name leds="logo" color="leveling" transmit=0 _set_sb_leds_by_name leds="logo" color="leveling" transmit=0
set_nozzle_leds_on set_nozzle_leds_on
[gcode_macro status_homing] [gcode_macro status_homing]
gcode: gcode:
_set_sb_leds_by_name leds="logo" color="homing" transmit=0 _set_sb_leds_by_name leds="logo" color="homing" transmit=0
set_nozzle_leds_on set_nozzle_leds_on
[gcode_macro status_cleaning] [gcode_macro status_cleaning]
gcode: gcode:
_set_sb_leds_by_name leds="logo" color="cleaning" transmit=0 _set_sb_leds_by_name leds="logo" color="cleaning" transmit=0
set_nozzle_leds_on set_nozzle_leds_on
[gcode_macro status_meshing] [gcode_macro status_meshing]
gcode: gcode:
_set_sb_leds_by_name leds="logo" color="meshing" transmit=0 _set_sb_leds_by_name leds="logo" color="meshing" transmit=0
set_nozzle_leds_on set_nozzle_leds_on
[gcode_macro status_calibrating_z] [gcode_macro status_calibrating_z]
gcode: gcode:
_set_sb_leds_by_name leds="logo" color="calibrating_z" transmit=0 _set_sb_leds_by_name leds="logo" color="calibrating_z" transmit=0
set_nozzle_leds_on set_nozzle_leds_on
[gcode_macro status_printing] [gcode_macro status_printing]
gcode: gcode:
_set_sb_leds_by_name leds="logo" color="printing" transmit=0 _set_sb_leds_by_name leds="logo" color="printing" transmit=0
set_nozzle_leds_on set_nozzle_leds_on