Compare commits

..

No commits in common. "4460ffcfff49f4e3c0cfc10a781ab730105ce07d" and "ba99efea878b9a33f3b9a7b9f4f7a5d3715fb659" have entirely different histories.

3 changed files with 147 additions and 287 deletions

View file

@ -106,12 +106,4 @@ type: git_repo
path: ~/klipper-backup
origin: https://github.com/Staubgeborener/klipper-backup.git
managed_services: moonraker
primary_branch: main
[update_manager led_effect]
type: git_repo
path: ~/klipper-led_effect
origin: https://github.com/julianschill/klipper-led_effect.git
is_system_service: False
primary_branch: main

View file

@ -24,17 +24,12 @@
## Obtain definition by "ls -l /dev/serial/by-id/" then unplug to verify
##--------------------------------------------------------------------
serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_41004C000A51313133353932-if00
restart_method: command
##--------------------------------------------------------------------
[mcu nhk]
## Obtain definition by "ls -l /dev/serial/by-id/" then unplug to verify
##--------------------------------------------------------------------
serial: /dev/serial/by-id/usb-Klipper_rp2040_4E363334320D3925-if00
#/dev/serial/by-id/usb-Klipper_stm32f446xx_41004C000A51313133353932-if00
restart_method: command
##--------------------------------------------------------------------
[include mainsail.cfg]
[include nitehawk36.cfg]
[include stealthburner_leds.cfg]
[include case_lights.cfg]
[include print_handling.cfg]
@ -76,7 +71,7 @@ enable_pin: !PF14
rotation_distance: 40
microsteps: 32
full_steps_per_rotation:200 #set to 400 for 0.9 degree stepper
endstop_pin: nhk:gpio13
endstop_pin: PG6
position_min: 0
##--------------------------------------------------------------------
@ -115,7 +110,7 @@ enable_pin: !PF15
rotation_distance: 40
microsteps: 32
full_steps_per_rotation:200 #set to 400 for 0.9 degree stepper
endstop_pin: PG6
endstop_pin: PG9
position_min: 0
##--------------------------------------------------------------------
@ -242,11 +237,11 @@ microsteps: 32
full_steps_per_rotation: 200 #200 for 1.8 degree, 400 for 0.9 degree
nozzle_diameter: 0.400
filament_diameter: 1.75
heater_pin: nhk:gpio9 #-----------------------------------------------------------------------------------------------------------------------------------------Heater Issue
heater_pin: PA2
## Check what thermistor type you have. See https://www.klipper3d.org/Config_Reference.html#common-thermistors for common thermistor types.
## Use "Generic 3950" for NTC 100k 3950 thermistors
sensor_type: ATC Semitec 104NT-4-R025H42G #-----------------------------------------------------------------------------------------------------------------------------------------Thermistor Issue
sensor_pin: nhk:gpio29
sensor_type: ATC Semitec 104NT-4-R025H42G
sensor_pin: PF4
min_temp: 10
max_temp: 280
max_power: 1.0
@ -304,7 +299,7 @@ max_temp: 130
## For the PROBE port. Will not work with Diode. May need pull-up resistor from signal to 24V.
#pin: ~!PB7
## For the DIAG_7 port. NEEDS BAT85 DIODE! Change to !PG15 if probe is NO.
pin: nhk:gpio10
pin: PG15
## For Octopus Pro Probe port; NPN and PNP proximity switch types can be set by jumper
#pin: ~!PC5
@ -344,55 +339,16 @@ samples_tolerance_retries: 3
[fan]
## Print Cooling Fan - FAN0
pin: PA8 # Output pin controlling the fan. This parameter must be provided.
max_power: 0.8
# This should be set to 0.8 on most motherboards to give full range of control to your slicer.
# Anything above 80% duty cycle will be full power on this particular brushless driver.
# To fine-tune the max_power parameter for your particular motherboard, set max_power to 1.0, go into the Klipper dashboard, and increase fan speed 1% at a time until the actual fan speed stops increasing as you increase the fan speed. Divide the fan speed at this point by 100 and enter it into the max_power parameter.
# This parameter defines the maximum power (expressed as a value from 0.0 to 1.0) that the pin may be set to.
# The value 1.0 allows the pin to be set fully enabled for extended periods, while a value of 0.5 would allow the pin to be enabled for no more than half the time.
# This setting may be used to limit the total power output (over extended periods) to the fan.
# If this value is less than 1.0, then fan speed requests will be scaled between zero and max_power (for example, if max_power is 0.9 and a fan speed of 80% is requested, then the fan power will be set to 72%).
shutdown_speed: 0
# The desired fan speed (expressed as a value from 0.0 to 1.0) if
# The microcontroller software enters an error state.
# The default is 0.
cycle_time: 0.010 #0.005 Example config value
# The amount of time (in seconds) for each PWM power cycle to the fan.
# It is recommended this be 10 milliseconds or greater when using software-based PWM.
# The default is 0.010 seconds.
hardware_pwm: False
# Enable this to use hardware PWM instead of software PWM.
# Most fans do not work well with hardware PWM, so it is not recommended to enable this unless there is an electrical requirement to switch at very high speeds.
# When using hardware PWM, the actual cycle time is constrained by the implementation and may be significantly different than the requested cycle_time.
# The default is False.
kick_start_time: 0.100
# Time (in seconds) to run the fan at full speed when either first enabling or increasing it by more than 50% (helps get the fan spinning).
# The default is 0.100 seconds.
off_below: 0.1
# The blower will not spin with the included brushless driver when the duty cycle is below 8%. When scaled with Max_power at 0.8, the off_below parameter should be set to 0.1.
# To calibrate this setting, gradually lower the fan speed to determine the lowest input speed that reliably drives the fan without stalls.
# Set off_below to the duty cycle corresponding to this value (for example, 8% -> 0.08/Max_power -> 0.08/0.8 -> 0.1) or slightly higher.
# This parameter is the minimum input speed that will power the fan (expressed as a value from 0.0 to 1.0).
# When a speed lower than off_below is requested, the fan will instead be turned off.
# This setting may be used to prevent fan stalls and to ensure effective kick starts.
# To calibrate this setting, start with off_below set to 0.0 and the fan spinning.
# Gradually lower the fan speed to determine the lowest input speed that reliably drives the fan without stalls.
# Set off_below to the duty cycle corresponding to this value (for example, 12% -> 0.12) or slightly higher.
#Tachometer_pin:
# Tachometer input pin for monitoring fan speed. A pullup is generally required.
# This parameter is optional.
#Tachometer_ppr: 1
# When tachometer_pin is specified, this is the number of pulses per revolution of the tachometer signal.
#Tachometer_poll_interval: 0.0005
# When tachometer_pin is specified, this is the polling period of the tachometer pin, in seconds.
# The default is 0.0015, which is fast enough for fans below 10,000 RPM at 2 PPR.
# This must be smaller than 30/(tachometer_ppr*rpm), with some margin, where rpm is the
# maximum speed (in RPM) of the fan.
pin: PA8
kick_start_time: 0.5
## Depending on your fan, you may need to increase this value
## if your fan will not start. Can change cycle_time (increase)
## if your fan is not able to slow down effectively
off_below: 0.10
[heater_fan hotend_fan]
## Hotend Fan - FAN1
pin: nhk:gpio5
pin: PE5
max_power: 1.0
kick_start_time: 0.5
heater: extruder

View file

@ -10,7 +10,7 @@
# How to use all this stuff:
#
# 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 for 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
# as well as the color order.
#
@ -45,21 +45,21 @@
#
# 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
# likely have to use WLED with Moonraker and a small micro-controller (please see the LED thread for help inside
# of the stealthburner_beta channel on Discord).
# likely have to use WLED with Moonraker and a small micro-controller
#
#####################################
# END INSTRUCTRUCTIONS #
#####################################
[neopixel sb_leds]
pin: nhk:gpio7
pin: PB0
# The pin connected to the neopixel. This parameter must be provided.
chain_count: 10
chain_count: 3
# 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: GRB, GRB, GRB, GRB, GRB, GRB, GRB, GRB, GRBW, GRBW
color_order: GRB
# Set the pixel order required by the LED hardware. Options are GRB,
# RGB, GRBW, or RGBW. The default is GRB.
initial_RED: 1.0
@ -70,273 +70,185 @@ initial_WHITE: 0.0
# 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.
##########################
# LED Effects Animations #
##########################
##########
# MACROS #
##########
##################
## logo effects ##
##################
[led_effect sb_logo_busy]
autostart: false
frame_rate: 24
leds:
neopixel:sb_leds (1-8)
layers:
breathing 3 1 top (1,0,0)
[led_effect sb_logo_cleaning]
autostart: false
frame_rate: 24
leds:
neopixel:sb_leds (1-8)
layers:
breathing 3 1 top (0.0, 0.02, 0.5)
[led_effect sb_logo_calibrating_z]
autostart: false
frame_rate: 24
leds:
neopixel:sb_leds (1-8)
layers:
breathing 3 1 top (0.0, 0.0, 0.35)
[led_effect sb_logo_heating]
leds:
neopixel:sb_leds (1,3,7,8,6,2)
autostart: false
frame_rate: 24
layers:
comet 0.3 0 add (1, 0.18, 0)
[led_effect sb_logo_cooling]
leds:
neopixel:sb_leds (1,3,7,8,6,2)
autostart: false
frame_rate: 24
layers:
comet 0.3 0 add (0, 0, 1)
[led_effect sb_logo_homing]
autostart: false
frame_rate: 24
leds:
neopixel:sb_leds (1-8)
layers:
breathing 3 1 top (0.0, 0.6, 0.2)
[led_effect sb_logo_leveling]
autostart: false
frame_rate: 24
leds:
neopixel:sb_leds (1-8)
layers:
breathing 3 1 top (0.5, 0.1, 0.4)
[led_effect sb_logo_meshing]
autostart: false
frame_rate: 24
leds:
neopixel:sb_leds (1-8)
layers:
breathing 3 1 top (0.2, 1.0, 0.0)
[led_effect sb_logo_printing]
autostart: false
frame_rate: 24
leds:
neopixel:sb_leds (1-8)
layers:
gradient 0.3 1 add (0.3, 0.0, 0.0),(0.3, 0.3, 0.0),(0.3, 0.1, 0.0)
[led_effect sb_logo_standby]
autostart: false
frame_rate: 24
leds:
neopixel:sb_leds (1-8)
layers:
breathing 3 1 top (0.01, 0.01, 0.01)
[led_effect sb_logo_part_ready]
autostart: false
frame_rate: 24
leds:
neopixel:sb_leds (1-8)
layers:
breathing 3 1 top (0.0, 1.0, 0.0)
####################
## nozzle effects ##
####################
[led_effect sb_nozzle_heating]
autostart: false
frame_rate: 24
leds:
neopixel:sb_leds (9,10)
layers:
breathing 3 1 top (1.0, 0.18, 0.0, 0.0)
[led_effect sb_nozzle_cooling]
autostart: false
frame_rate: 24
leds:
neopixel:sb_leds (9,10)
layers:
breathing 3 1 top (0.0, 0.0, 1.0, 0.1)
[led_effect sb_nozzle_standby]
autostart: false
frame_rate: 24
leds:
neopixel:sb_leds (9,10)
layers:
breathing 3 1 top (0.6, 0.0, 0.0, 0.0)
[led_effect sb_nozzle_part_ready]
autostart: false
frame_rate: 24
leds:
neopixel:sb_leds (9,10)
layers:
breathing 3 1 top (0.6, 1.0, 0.0, 0.1)
# The following status macros are available (these go inside of your macros):
#
# STATUS_READY
# STATUS_OFF
# STATUS_BUSY
# STATUS_HEATING
# STATUS_LEVELING
# STATUS_HOMING
# STATUS_CLEANING
# STATUS_MESHING
# STATUS_CALIBRATING_Z
#
# With additional macros for basic control:
#
# SET_NOZZLE_LEDS_ON
# SET_LOGO_LEDS_OFF
# SET_NOZZLE_LEDS_OFF
#
# Contributed by Voron discord users wile.e, Tetsunosuke, and etherwalker
#####################
## all led effects ##
#####################
[led_effect sb_critical_error]
leds:
neopixel:sb_leds
layers:
strobe 1 1.5 add (1.0, 1.0, 1.0)
breathing 2 0 difference (0.95, 0.0, 0.0)
static 1 0 top (1.0, 0.0, 0.0)
autostart: false
frame_rate: 24
run_on_error: true
[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
'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},
'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},
'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},
'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},
'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},
},
'nozzle': { # Colors for nozzle states
'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},
'on': {'r': 0.8, 'g': 0.8, 'b': 0.8, 'w':1.0},
'standby': {'r': 0.6, 'g': 0.0, '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"
# 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"
# A comma-separated list of indexes of LEDs in the nozzle
gcode:
# This section is required. Do Not Delete.
[led_effect rainbow]
leds:
neopixel:sb_leds
autostart: true
frame_rate: 24
layers:
gradient 0.3 1 add (0.3, 0.0, 0.0),(0.0, 0.3, 0.0),(0.0, 0.0, 0.3)
[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 %}
#######################
# LED Effects Statics #
#######################
[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) %}
[led_effect set_nozzle_leds]
leds:
neopixel:sb_leds (9,10)
#neopixel:caselight
autostart: false
frame_rate: 24
layers:
static 0 0 top (0.0, 0.0, 0.0, 1.0)
_set_sb_leds led={led} red={color.r} green={color.g} blue={color.b} white={color.w} idx="{idx}" transmit={transmit}
[led_effect set_logo_leds]
leds:
neopixel:sb_leds (1,2,3,4,5,6,7,8)
#neopixel:caselight
autostart: false
frame_rate: 24
layers:
static 0 0 top (1.0, 1.0, 1.0)
[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) %}
##############
# The Macros #
##############
_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_LED_EFFECT EFFECT=set_logo_leds STOP=1
[gcode_macro set_logo_leds_on]
gcode:
SET_LED_EFFECT EFFECT=set_logo_leds
{% 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_LED_EFFECT EFFECT=set_nozzle_leds
{% 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_LED_EFFECT EFFECT=set_nozzle_leds STOP=1
{% set transmit=params.TRANSMIT|default(1) %}
_set_sb_leds_by_name leds="nozzle" color="off" transmit={transmit}
[gcode_macro status_off]
gcode:
STOP_LED_EFFECTS
set_logo_leds_off transmit=0
set_nozzle_leds_off
[gcode_macro status_ready]
gcode:
STOP_LED_EFFECTS
SET_LED_EFFECT EFFECT=rainbow
[gcode_macro status_part_ready]
gcode:
STOP_LED_EFFECTS
SET_LED_EFFECT EFFECT=sb_nozzle_part_ready
SET_LED_EFFECT EFFECT=sb_logo_part_ready
_set_sb_leds_by_name leds="logo" color="standby" transmit=0
_set_sb_leds_by_name leds="nozzle" color="standby" transmit=1
[gcode_macro status_busy]
gcode:
STOP_LED_EFFECTS
SET_LED_EFFECT EFFECT=sb_logo_busy
_set_sb_leds_by_name leds="logo" color="busy" transmit=0
set_nozzle_leds_on
[gcode_macro status_heating]
gcode:
STOP_LED_EFFECTS
SET_LED_EFFECT EFFECT=sb_logo_heating
SET_LED_EFFECT EFFECT=sb_nozzle_heating
[gcode_macro status_cooling]
gcode:
STOP_LED_EFFECTS
SET_LED_EFFECT EFFECT=sb_logo_cooling
SET_LED_EFFECT EFFECT=sb_nozzle_cooling
_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:
STOP_LED_EFFECTS
SET_LED_EFFECT EFFECT=sb_logo_leveling
_set_sb_leds_by_name leds="logo" color="leveling" transmit=0
set_nozzle_leds_on
[gcode_macro status_homing]
gcode:
STOP_LED_EFFECTS
SET_LED_EFFECT EFFECT=sb_logo_homing
_set_sb_leds_by_name leds="logo" color="homing" transmit=0
set_nozzle_leds_on
[gcode_macro status_cleaning]
gcode:
STOP_LED_EFFECTS
SET_LED_EFFECT EFFECT=sb_logo_cleaning
_set_sb_leds_by_name leds="logo" color="cleaning" transmit=0
set_nozzle_leds_on
[gcode_macro status_meshing]
gcode:
STOP_LED_EFFECTS
SET_LED_EFFECT EFFECT=sb_logo_meshing
_set_sb_leds_by_name leds="logo" color="meshing" transmit=0
set_nozzle_leds_on
[gcode_macro status_calibrating_z]
gcode:
STOP_LED_EFFECTS
SET_LED_EFFECT EFFECT=sb_logo_calibrating_z
_set_sb_leds_by_name leds="logo" color="calibrating_z" transmit=0
set_nozzle_leds_on
[gcode_macro status_printing]
gcode:
STOP_LED_EFFECTS
SET_LED_EFFECT EFFECT=sb_logo_printing
_set_sb_leds_by_name leds="logo" color="printing" transmit=0
set_nozzle_leds_on