[gcode_macro PAUSE] description: Lift z, go to lower left, turn off heaters (save everything) variable_e_temp: 0 variable_b_temp: 0 rename_existing: BASE_PAUSE gcode: RESPOND MSG="Target temp is {printer.extruder.target}" SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=e_temp VALUE={printer.extruder.target} SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=b_temp VALUE={printer.heater_bed.target} SAVE_GCODE_STATE NAME=PAUSE_state BASE_PAUSE G91 G1 E-2 F2100 G1 Z3 F900 G90 G0 X5 Y5 F6000 G91 TURN_OFF_HEATERS [gcode_macro RESUME] description: Restore from PAUSE rename_existing: BASE_RESUME gcode: ;{% set E = params.E|default(1)|float %} # edit to your preferred retract length M140 S{printer["gcode_macro PAUSE"].b_temp } ; Restore BED temperature and continue M190 S{printer["gcode_macro PAUSE"].b_temp } ; Restore BED temperature and wait M104 S{printer["gcode_macro PAUSE"].e_temp } ; Restore EXTRUDER temperature and continue M109 S{printer["gcode_macro PAUSE"].e_temp } ; Restore EXTRUDER temperature and wait G91 ;Incremental positioning G1 E5 F2100 G90 RESTORE_GCODE_STATE NAME=PAUSE_state MOVE=1 BASE_RESUME