Autocommit from 2025-03-29 08:17:20

Klipper version: v0.12.0-382-ga18c74be0

Moonraker version: v0.9.3-3-gccfe32f

Mainsail version: v2.13.2
This commit is contained in:
2025-03-29 08:17:20 +03:00
parent e540d474f1
commit 729965dbcd
4 changed files with 66 additions and 223 deletions

View File

@@ -1,174 +0,0 @@
[gcode_macro MOVE_UP]
variable_set_kinematic_z: 20
variable_up_z: 10
gcode:
SAVE_GCODE_STATE NAME=my_move_up_state
{% if not 'z' in printer.toolhead.homed_axes %}
SET_KINEMATIC_POSITION Z={set_kinematic_z}
{% endif %}
G91
G0 Z{up_z} F1200
RESTORE_GCODE_STATE NAME=my_move_up_state
[gcode_macro _HOME_X]
variable_homing_current: 0.65
variable_start_retract: 15
gcode:
# Always use consistent run_current on A/B steppers during sensorless homing
{% set RUN_CURRENT_X = printer.configfile.settings['tmc2240 stepper_x'].run_current|float %}
{% set RUN_CURRENT_Y = printer.configfile.settings['tmc2240 stepper_y'].run_current|float %}
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={homing_current}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={homing_current}
M117 Homing X...
SET_KINEMATIC_POSITION X={start_retract}
G91
G1 X-{start_retract} F1200
M400
G28 X
G91
G1 X-60 F1200
#G4 P500
M117
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CURRENT_X}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={RUN_CURRENT_Y}
[gcode_macro _HOME_Y]
variable_homing_current: 0.65
variable_start_retract: 15
gcode:
# Set current for sensorless homing
{% set RUN_CURRENT_X = printer.configfile.settings['tmc2240 stepper_x'].run_current|float %}
{% set RUN_CURRENT_Y = printer.configfile.settings['tmc2240 stepper_y'].run_current|float %}
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={homing_current}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={homing_current}
#SET_TMC_FIELD FIELD=SGT STEPPER=stepper_x VALUE=1
#G4 P1000
M117 Homing Y...
SET_KINEMATIC_POSITION Y={start_retract}
G91
G1 Y-{start_retract} F1200
M400
G28 Y
G91
G1 Y-10 F1200
#G4 P500
M117
# Set current during print
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CURRENT_X}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={RUN_CURRENT_Y}
[homing_override]
axes: xyz
gcode:
{% set home_all = 'X' not in params and 'Y' not in params and 'Z' not in params %}
{% set move_x = params.X|default(printer.toolhead.axis_maximum.y/2)|int %}
{% set move_y = params.Y|default(printer.toolhead.axis_maximum.y/2)|int %}
{% if params.Z == '' %}
{% set move_z = 10 %}
{% else %}
{% set move_z = params.Z|default(10)|int %}
{% endif %}
SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=homing VALUE=True
STATUS_HOMING
{% if home_all or 'X' or 'Y' in params %}
INIT_TMC STEPPER=stepper_y
INIT_TMC STEPPER=stepper_x
{% endif %}
{% if home_all or 'Z' in params %}
BED_MESH_CLEAR
MOVE_UP
{% endif %}
{% if home_all or 'X' in params %}
_HOME_X
{% endif %}
{% if home_all or 'Y' in params %}
_HOME_Y
{% endif %}
G90
{% if home_all or 'Z' in params %}
G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_maximum.y/2} F12000 #probe point
G28 Z
G1 Z{move_z} F1200
{% endif %}
#{ action_respond_info("Move X,Y => {},{}".format(params.X,params.Y)) }
{% if params.X %}
G1 X{move_x} F12000
{% endif %}
{% if params.Y %}
G1 Y{move_y} F12000
{% endif %}
STATUS_OFF
SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=homing VALUE=False
[gcode_macro CG28]
gcode:
{% if "xyz" not in printer.toolhead.homed_axes %}
G28
{% endif %}
[gcode_macro PARKFRONT]
gcode:
CG28 ; home if not already homed
SAVE_GCODE_STATE NAME=PARKFRONT
G90 ; absolute positioning
G0 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} Z{printer.toolhead.axis_maximum.z/2} F6000
RESTORE_GCODE_STATE NAME=PARKFRONT
[gcode_macro PARKFRONTLOW]
gcode:
CG28 ; home if not already homed
SAVE_GCODE_STATE NAME=PARKFRONT
G90 ; absolute positioning
G0 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} Z20 F6000
RESTORE_GCODE_STATE NAME=PARKFRONT
[gcode_macro PARKREAR]
gcode:
CG28 ; home if not already homed
SAVE_GCODE_STATE NAME=PARKREAR
G90 ; absolute positioning
G0 X{printer.toolhead.axis_minimum.x+10} Y{printer.toolhead.axis_maximum.y-10} Z{printer.toolhead.axis_maximum.z-50} F6000
RESTORE_GCODE_STATE NAME=PARKREAR
[gcode_macro PARKCENTER]
gcode:
CG28 ; home if not already homed
SAVE_GCODE_STATE NAME=PARKCENTER
G90 ; absolute positioning
G0 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_maximum.y/2} Z{printer.toolhead.axis_maximum.z/2} F6000
RESTORE_GCODE_STATE NAME=PARKCENTER
[gcode_macro PARKBED]
gcode:
CG28 ; home if not already homed
SAVE_GCODE_STATE NAME=PARKBED
G90 ; absolute positioning
G0 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_maximum.y/2} Z15 F6000
RESTORE_GCODE_STATE NAME=PARKBED

View File

@@ -16,6 +16,7 @@ gcode:
[include ../KAMP_Settings.cfg]
#[include ../KAMP/KAMP_Settings.cfg]
[include tools.cfg]
[include nevermore.cfg]
@@ -155,6 +156,9 @@ gcode:
#M190 S{BED_TEMP}
M109 S{EXTRUDER_TEMP} ; M109 heat and wait for it to reach temp
SFS_ENABLE
{% if BED_TEMP > 100 %}
_NEVERMORE_ON
{% endif %}
M117
STATUS_CLEANING
VORON_PURGE
@@ -173,7 +177,7 @@ variable_park_xy: [350,350]
variable_up_z: 4 #12
gcode:
{% set max_velocity = printer.configfile.settings['extruder'].max_extrude_only_velocity * 60 %}
STATUS_BUSY
STATUS_BUSY
SET_SKEW CLEAR=1
M400 ; wait for buffer to clear
G92 E0 ; zero the extruder
@@ -186,7 +190,8 @@ gcode:
G90 ; absolute positioning
G0 X{park_xy[0]} Y{park_xy[1]} F{park_speed} ; park nozzle at rear
#BED_MESH_CLEAR
SFS_DISABLE
SFS_DISABLE
_NEVERMORE_OFF
#M141 S35
SET_STEPPER_ENABLE STEPPER=extruder ENABLE=0 #disable stepper
STATUS_OFF
@@ -207,13 +212,13 @@ gcode:
[gcode_macro M141]
gcode:
{% set s = params.S|default(0)|float %}
SET_TEMPERATURE_FAN_TARGET temperature_fan=chamber target={s}
#SET_TEMPERATURE_FAN_TARGET temperature_fan=chamber target={s}
[gcode_macro M191]
gcode:
{% set s = params.S|default(0)|float %}
M141 S{s}
TEMPERATURE_WAIT SENSOR="temperature_fan chamber" MINIMUM={s}
#TEMPERATURE_WAIT SENSOR="temperature_fan chamber" MINIMUM={s}
@@ -222,6 +227,18 @@ gcode:
#LCDRGB R=0 G=1 B=0 ; Turn LCD green
PAUSE ; Pause
[gcode_macro M106]
rename_existing: M99106
variable_fan_aliases: { 'exhaust_fan': ['fan3'] }
gcode:
{% set fan = 'fan' + (params.P|int if params.P is defined else 0)|string %}
{% set speed = (params.S|float / 255 if params.S is defined else 1.0) %}
{% for key in fan_aliases %}
{% if fan in fan_aliases[key] %}
SET_FAN_SPEED FAN={key} SPEED={speed}
{% endif %}
{% endfor %}
[gcode_macro PAUSE]
rename_existing: BASE_PAUSE
gcode:

30
macros/nevermore.cfg Normal file
View File

@@ -0,0 +1,30 @@
## This is a simple include for the Nevermore. To use it with your printer, edit
## the pin definition in line 16 so it matches your printer.
## What you get:
## - a generic fan "Nevermore" which is adjustable in GCODE and in Mainsail/Fluidd
## - Commands in your 12864-controller to turn the fan on/off or adjust in 10%-steps
## - a Macro to turn the fan off some time after the print.
##
## Slicer integration: Add "SET_FAN_SPEED FAN=Nevermore SPEED=1" in your start-macro
## (or less fan depending on your needs, like SPEED=0.8)
## in your end print code, add "UPDATE_DELAYED_GCODE ID=filter_off DURATION=180"
## this keeps your Nevermore running for 180s after the print finishes to clean the chamber a bit more.
[delayed_gcode filter_off]
gcode:
SET_FAN_SPEED FAN=Nevermore SPEED=0
[gcode_macro TOGGLE_NEVERMORE]
gcode:
{% if printer['fan_generic Nevermore'].speed > 0 %}
SET_FAN_SPEED FAN=Nevermore SPEED=0
{% else %}
SET_FAN_SPEED FAN=Nevermore SPEED=1
{% endif %}
[gcode_macro _NEVERMORE_ON]
gcode:
SET_FAN_SPEED FAN=Nevermore SPEED=1
[gcode_macro _NEVERMORE_OFF]
gcode:
SET_FAN_SPEED FAN=Nevermore SPEED=1