Last active
May 22, 2024 09:32
-
-
Save bistory/1b1c7f39a19ed139971cdf6d38be6380 to your computer and use it in GitHub Desktop.
Voron StealthBurner LEDs config example
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[gcode_macro CALIBRATE_Z] | |
rename_existing: BASE_CALIBRATE_Z | |
gcode: | |
STATUS_CALIBRATING_Z | |
BASE_CALIBRATE_Z |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 | |
# https://www.klipper3d.org/Config_Reference.html#neopixel for configuration details. | |
# | |
# CONFIGURATION | |
# | |
# Example neopixel configuration: | |
# [neopixel sb_leds] | |
# pin: <your pin> # Spider : PD3 / Octopus : PB0 | |
# # The pin connected to the neopixel. This parameter must be | |
# # provided. | |
# chain_count: 3 # For single Logo LED | |
# #chain_count: 10 # For PCB Logo | |
# # The number of Neopixel chips that are "daisy chained" to the | |
# # provided pin. The default is 1 (which indicates only a single | |
# # Neopixel is connected to the pin). | |
# color_order: GRBW # For single Logo LED | |
# #color_order: GRB, GRB, GRB, GRB, GRB, GRB, GRB, GRB, GRBW, GRBW # For PCB Logo | |
# # Set the pixel order required by the LED hardware. Options are GRB, | |
# # RGB, GRBW, or RGBW. The default is GRB. | |
# initial_RED: 0.0 | |
# initial_GREEN: 0.0 | |
# initial_BLUE: 0.0 | |
# initial_WHITE: 0.0 | |
# # 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 | |
# # 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 | |
# at the start of this file. | |
# | |
# MACROS | |
# | |
# The following status macros are available: | |
# STATUS_OFF ; All off | |
# STATUS_READY ; White logo and red nozzle | |
# STATUS_BUSY ; Red logo and white nozzle | |
# STATUS_HEATING ; Yellow logo and nozzle | |
# STATUS_LEVELING ; Pink logo and white nozzle | |
# STATUS_HOMING ; Cyan logo and white nozzle | |
# STATUS_CLEANING ; Blue logo and white nozzle | |
# STATUS_MESHING ; Green logo and white nozzle | |
# STATUS_CALIBRATING_Z ; Magenta logo and white nozzle | |
# STATUS_PRINTING ; Red logo and white nozzle | |
# With additional macros for direct control: | |
# SET_NOZZLE_LEDS_ON | |
# SET_NOZZLE_LEDS_OFF | |
# SET_LOGO_LEDS_OFF | |
# | |
# You will need to add the status macros into your configuration before the matching command | |
# | |
# Example: | |
# [gcode_macro print_start] | |
# gcode: | |
# STATUS_HOMING | |
# G28 | |
# STATUS_HEATING | |
# M140 S{bed_temp} | |
# M104 S{e0_temp} | |
# ... | |
# STATUS_PRINTING | |
# | |
# Contributed by Voron discord users wile.e, Tetsunosuke, and etherwalker | |
[gcode_macro _sb_vars] | |
# User settings for the StealthBurner status leds. You can change the status colors and led | |
# configurations for the logo and nozzle here. | |
variable_colors: { | |
'logo': { # Colors for logo states | |
'off': {'r': 0.0, 'g': 0.0, 'b': 0.0, 'w': 0.0}, | |
'ready': {'r': 0.01, 'g': 0.01, 'b': 0.01, 'w': 0.1}, | |
'busy': {'r': 0.4, 'g': 0.0, 'b': 0.0, 'w': 0.0}, | |
'heating': {'r': 0.3, 'g': 0.18, 'b': 0.0, 'w': 0.0}, | |
'leveling': {'r': 0.5, 'g': 0.1, 'b': 0.4, 'w': 0.0}, | |
'homing': {'r': 0.0, 'g': 0.6, 'b': 0.2, 'w': 0.0}, | |
'cleaning': {'r': 0.0, 'g': 0.02, 'b': 0.5, 'w': 0.0}, | |
'meshing': {'r': 0.2, 'g': 1.0, 'b': 0.0, 'w': 0.0}, | |
'calibrating_z': {'r': 0.8, 'g': 0.0, 'b': 0.35, 'w': 0.0}, | |
'printing': {'r': 1.0, 'g': 0.0, 'b': 0.0, 'w': 0.0}, | |
}, | |
'nozzle': { # Colors for nozzle states | |
'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}, | |
'ready': {'r': 0.6, 'g': 0.0, 'b': 0.0, 'w':0.0}, | |
'heating': {'r': 0.8, 'g': 0.35, 'b': 0.0, 'w':0.0}, | |
}, | |
'thermal': { | |
'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} | |
} | |
} | |
variable_logo_led_name: "sb_leds" | |
# The name of the addressable LED chain that contains the logo LED(s) | |
variable_logo_idx: "1" # For single Logo LED | |
#variable_logo_idx: "1,2,3,4,5,6,7,8" # For PCB Logo | |
# A comma-separated list of indexes LEDs in the logo | |
variable_nozzle_led_name: "sb_leds" | |
# The name of the addressable LED chain that contains the nozzle LED(s). This will | |
# typically be the same LED chain as the logo. | |
variable_nozzle_idx: "2,3" # For single Logo LED | |
#variable_nozzle_idx: "9,10" # For PCB Logo | |
# A comma-separated list of indexes of LEDs in the nozzle | |
variable_thermal_config: { | |
'extruder': { | |
'cool_temp': 40, | |
'leds': 'logo', | |
}, | |
'heater_bed': { | |
'cool_temp': 40, | |
'leds': 'nozzle', | |
}, | |
} | |
# temperatures at which cooling will be considered complete | |
gcode: | |
; Do nothing | |
[gcode_macro _set_sb_leds] | |
gcode: | |
{% set red = params.RED|default(0)|float %} | |
{% set green = params.GREEN|default(0)|float %} | |
{% set blue = params.BLUE|default(0)|float %} | |
{% set white = params.WHITE|default(0)|float %} | |
{% set led = params.LED|string %} | |
{% set idx = (params.IDX|string).split(',') %} | |
{% set transmit_last = params.TRANSMIT|default(1) %} | |
{% for led_index in idx %} | |
{% 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} | |
{% endfor %} | |
[gcode_macro _set_sb_leds_by_name] | |
gcode: | |
{% set leds_name = params.LEDS %} | |
{% set color_name = params.COLOR %} | |
{% set color = printer["gcode_macro _sb_vars"].colors[leds_name][color_name] %} | |
{% set led = printer["gcode_macro _sb_vars"][leds_name + "_led_name"] %} | |
{% set idx = printer["gcode_macro _sb_vars"][leds_name + "_idx"] %} | |
{% 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} | |
[gcode_macro _set_logo_leds] | |
gcode: | |
{% set red = params.RED|default(0)|float %} | |
{% set green = params.GREEN|default(0)|float %} | |
{% set blue = params.BLUE|default(0)|float %} | |
{% set white = params.WHITE|default(0)|float %} | |
{% set led = printer["gcode_macro _sb_vars"].logo_led_name %} | |
{% set idx = printer["gcode_macro _sb_vars"].logo_idx %} | |
{% set transmit=params.TRANSMIT|default(1) %} | |
_set_sb_leds led={led} red={red} green={green} blue={blue} white={white} idx="{idx}" transmit={transmit} | |
[gcode_macro _set_nozzle_leds] | |
gcode: | |
{% set red = params.RED|default(0)|float %} | |
{% set green = params.GREEN|default(0)|float %} | |
{% set blue = params.BLUE|default(0)|float %} | |
{% set white = params.WHITE|default(0)|float %} | |
{% set led = printer["gcode_macro _sb_vars"].nozzle_led_name %} | |
{% set idx = printer["gcode_macro _sb_vars"].nozzle_idx %} | |
{% set transmit=params.TRANSMIT|default(1) %} | |
_set_sb_leds led={led} red={red} green={green} blue={blue} white={white} idx="{idx}" transmit={transmit} | |
[gcode_macro set_logo_leds_off] | |
gcode: | |
{% set transmit=params.TRANSMIT|default(1) %} | |
_set_logo_leds red=0 blue=0 green=0 white=0 transmit={transmit} | |
[gcode_macro set_nozzle_leds_on] | |
gcode: | |
{% set transmit=params.TRANSMIT|default(1) %} | |
_set_sb_leds_by_name leds="nozzle" color="on" transmit={transmit} | |
[gcode_macro set_nozzle_leds_off] | |
gcode: | |
{% set transmit=params.TRANSMIT|default(1) %} | |
_set_sb_leds_by_name leds="nozzle" color="off" transmit={transmit} | |
[gcode_macro status_off] | |
gcode: | |
set_logo_leds_off transmit=0 | |
set_nozzle_leds_off | |
[gcode_macro status_ready] | |
gcode: | |
_set_sb_leds_by_name leds="logo" color="ready" transmit=0 | |
_set_sb_leds_by_name leds="nozzle" color="ready" transmit=1 | |
[gcode_macro status_busy] | |
gcode: | |
_set_sb_leds_by_name leds="logo" color="busy" transmit=0 | |
set_nozzle_leds_on | |
[gcode_macro status_heating] | |
gcode: | |
_set_sb_leds_by_name leds="logo" color="heating" transmit=0 | |
_set_sb_leds_by_name leds="nozzle" color="heating" transmit=1 | |
[gcode_macro status_leveling] | |
gcode: | |
_set_sb_leds_by_name leds="logo" color="leveling" transmit=0 | |
set_nozzle_leds_on | |
[gcode_macro status_homing] | |
gcode: | |
_set_sb_leds_by_name leds="logo" color="homing" transmit=0 | |
set_nozzle_leds_on | |
[gcode_macro status_cleaning] | |
gcode: | |
_set_sb_leds_by_name leds="logo" color="cleaning" transmit=0 | |
set_nozzle_leds_on | |
[gcode_macro status_meshing] | |
gcode: | |
_set_sb_leds_by_name leds="logo" color="meshing" transmit=0 | |
set_nozzle_leds_on | |
[gcode_macro status_calibrating_z] | |
gcode: | |
_set_sb_leds_by_name leds="logo" color="calibrating_z" transmit=0 | |
set_nozzle_leds_on | |
[gcode_macro status_printing] | |
gcode: | |
_set_sb_leds_by_name leds="logo" color="printing" transmit=0 | |
set_nozzle_leds_on |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment