diff --git a/config/filament_sensors.cfg b/config/filament_sensors.cfg index d5c02dc..bb28c70 100644 --- a/config/filament_sensors.cfg +++ b/config/filament_sensors.cfg @@ -132,7 +132,7 @@ M83 # relative extruder moves G0 E-30 F{40*60} M82 # absolute extruder moves - M84 E # disable extruder motor + SET_STEPPER_ENABLE STEPPER=extruder ENABLE=0 SET_FILAMENT_LOAD_STATE STATE="unloaded_waiting" SET_EXTRUDER_FILAMENT NAME="None" diff --git a/config/overrides.cfg b/config/overrides.cfg index c10e71f..db50e0f 100644 --- a/config/overrides.cfg +++ b/config/overrides.cfg @@ -5,21 +5,44 @@ [idle_timeout] gcode: + {% if printer['gcode_macro VARIABLES'].idle_state == "None" %} + # initial idle - turn off lights + SET_LED LED=chamber WHITE=0 + SET_LED LED=printhead RED=0 GREEN=0 BLUE=0 WHITE=0 + + SET_GCODE_VARIABLE MACRO=VARIABLES VARIABLE=idle_state VALUE='"Lights"' + SET_IDLE_TIMEOUT TIMEOUT={60} # wait a minute to turn off heaters + {% elif printer['gcode_macro VARIABLES'].idle_state == "Lights" %} + TURN_OFF_HEATERS + + SET_GCODE_VARIABLE MACRO=VARIABLES VARIABLE=idle_state VALUE='"Motors"' + SET_IDLE_TIMEOUT TIMEOUT={60*30} # wait 30 minutes to turn off motors + + {% elif printer['gcode_macro VARIABLES'].idle_state == "Motors" %} + M84 # disable steppers + SET_GCODE_VARIABLE MACRO=VARIABLES VARIABLE=idle_state VALUE='"All"' + {% endif %} - TURN_OFF_HEATERS - UPDATE_DELAYED_GCODE ID=FULL_IDLE DURATION=3600 timeout: 600 # Idle time (in seconds) to wait before running the above G-Code # commands. The default is 600 seconds. -[delayed_gcode FULL_IDLE] +[delayed_gcode CHECK_FOR_WAKE] gcode: - {% if printer.idle_timeout.state == "Idle" %} - TURN_OFF_HEATERS - M84 - SAVE_VARIABLE VARIABLE=heater_state VALUE='"Cold"' - SET_GCODE_VARIABLE MACRO=VARIABLES VARIABLE=calibrate VALUE='"none"' - {% endif %} + UPDATE_DELAYED_GCODE ID=CHECK_FOR_WAKE DURATION=2 + {% if printer['idle_timeout'].state != "Idle" and printer['gcode_macro VARIABLES'].idle_state != "None" %} + # wake up events handling + {action_respond_info("Waking from Idle")} + SET_GCODE_VARIABLE MACRO=VARIABLES VARIABLE=idle_state VALUE='"None"' + + # enable lights + SET_LED LED=chamber WHITE=1 + SET_LED LED=printhead RED=1 GREEN=1 BLUE=1 WHITE=1 + + {% else %} + UPDATE_DELAYED_GCODE ID=CHECK_FOR_WAKE DURATION=2 + {% endif %} + # replace homing [gcode_macro G28] diff --git a/config/variable_macros.cfg b/config/variable_macros.cfg index 0833572..4aa4b48 100644 --- a/config/variable_macros.cfg +++ b/config/variable_macros.cfg @@ -4,6 +4,7 @@ [gcode_macro VARIABLES] variable_mesh_bed_temp: 0 # stores the temperature of the bed at the last bed mesh calibrate variable_mesh_bed_temp_leeway: 15 # +- leeway (K) outside of which another bed mesh will be performed +variable_idle_state: None gcode: [gcode_macro SET_FILAMENT_LOAD_STATE]