Printing multiple items one by one - Issue with Pause

Basic Information:

Printer Model: Creality 3 S1 Pro
MCU / Printerboard: STM32F401

Describe your issue:

Hi, I am a FAR from being expert so please bare with me if this is a no=brainer…

I do not currently have a Klipper Log (Not even exactly sure where to find it), but all it will say is exactly what I am about to explain. Should I need to provide this file, I can attached this much later.

When I am printing multiple items on the bed, but doing it one by one as to have best quality, I cannot pause if any issue arise. When pausing, the Extruder will remain at the Z level it stopped at and then moves away over the X & Y axis, bumping any item that were already printed.

Is this normal or should the printer perhaps pause, and then go higher on the Z-axis and only then move away?

Attach your klippy.log

Ok, before I copy it, I should probably run a print and pause once, as for it to be recent or what?

Also, I will only be able to do this once I am back home, much later today… Thanks for your response

Just attach the entire file here unmodified. If too big, then zip it.

klippy.zip (940.1 KB)
Hi

Attached is my Klippy log as requested

Thank you so much

[gcode_macro PAUSE]
description = Pause the actual running print
rename_existing = PAUSE_BASE
variable_extrude = 1.0
gcode = 
	
	{% set E = printer["gcode_macro PAUSE"].extrude|float %}
	
	
	{% set x_park = printer.toolhead.axis_maximum.x|float - 5.0 %}
	{% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %}
	
	{% set max_z = printer.toolhead.axis_maximum.z|float %}
	{% set act_z = printer.toolhead.position.z|float %}
	{% if act_z < (max_z - 2.0) %}
	{% set z_safe = 2.0 %}
	{% else %}
	{% set z_safe = max_z - act_z %}
	{% endif %}
	
	PAUSE_BASE
	G91
	{% if printer.extruder.can_extrude|lower == 'true' %}
	G1 E-{E} F2100
	{% else %}
	{action_respond_info("Extruder not hot enough")}
	{% endif %}
	{% if "xyz" in printer.toolhead.homed_axes %}
	G1 Z{z_safe} F900
	G90
	G1 X{x_park} Y{y_park} F6000
	{% else %}
	{action_respond_info("Printer not homed")}
	{% endif %}

This is your pause macro in your current config. It intents to:

  • Move to your X and Y axes maximum (minus 5)
  • Move your Z up to the max possible position

so what does this mean

Is there something I can do to fix my issue or are you say there is nothing wrong?

Well, the macro looks quite OK although a SAVE_GCODE_STATE seems to be missing. In any case I did not try it.
The question kind of is:

  • You put this macro there
  • It does, what it does
  • If you need different behavior the macro probably needs to be modified

Try replacing the PAUSE and RESUME by:

[gcode_macro PAUSE]
rename_existing: BASE_PAUSE
# change this if you need more or less retraction
variable_retract: 1.0
gcode:
    ##### read E from pause macro #####
    {% set E = printer["gcode_macro PAUSE"].retract|float %}
    ##### set park position for x and y #####
    # default is your max position from your printer.cfg
    {% set x_park = printer.toolhead.axis_maximum.x|float - 5.0 %}
    {% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %}
    ##### calculate save lift position #####
    {% set max_z = printer.toolhead.axis_maximum.z|float %}
    {% set act_z = printer.toolhead.position.z|float %}
    {% if act_z < (max_z - 2.0) %}
        {% set z_safe = 2.0 %}
    {% else %}
        {% set z_safe = max_z - act_z %}
    {% endif %}
    ##### end of definitions #####
    SAVE_GCODE_STATE NAME=PAUSE_state
    BASE_PAUSE
    G91
    G1 E-{E} F2100
    G1 Z{z_safe} F900
    M400
    G90
    G1 X{x_park} Y{y_park} F6000
[gcode_macro RESUME]
rename_existing: BASE_RESUME
gcode:
    ##### read E from pause macro #####
    {% set E = printer["gcode_macro PAUSE"].extrude|float %}
    ##### end of definitions #####
    G91
    G1 E{E} F2100
    RESTORE_GCODE_STATE NAME=PAUSE_state
    BASE_RESUME