I set a pause at layer 30 in Orcaslicer (the machine’s Gcode is set to “pause”) to change the material. The printer head moves to the pause coordinates, and the print is canceled. The printer configuration is factory default; nothing needs to be edited. Pausing via the printer screen works correctly, but if the print is long, I have to wait for the right moment to pause. How can I use the pause command?
From memory, to insert a pause in your gcode, you need to write an M601 instruction.
The printer doesn’t recognize the m601 commands. I thought I wouldn’t encounter such problems after purchasing it. My Q1 Pro pauses right out of the box.
I don’t find a M601 at Gcode | Marlin Firmware
M600 is “filament_change” which is supported by the stock SV08 configuration.
If you want to pause make sure your machine g-code is all uppercase on Orca. In linux Pause does not match PAUSE.
M600 causes printing to be cancelled
The ORIGONAL Macro.cfg supplied with the SV08 contains the following:
[gcode_macro M600]
gcode:
PAUSE STATE=filament_change
Which then calls the Pause macro as follows:
[gcode_macro PAUSE]
rename_existing: PAUSE_BASE
variable_state: 'normal'
gcode:
{% if printer.pause_resume.is_paused == False %}
{% set x_park = printer['gcode_macro _global_var'].pause_park.x|float %}
{% set y_park = printer['gcode_macro _global_var'].pause_park.y|float %}
{% set e_restract = printer['gcode_macro _global_var'].pause_park.e|float %}
{% set z_lift_max = printer['gcode_macro _global_var'].z_maximum_lifting_distance %}
{% set state = params.STATE if 'filament_change' in params.STATE else 'normal' %}
{action_respond_info("Pause Print!")}
PAUSE_BASE
M117 Pause Print!!!
G91
{% if (printer.gcode_move.position.z + 5) < z_lift_max %}
G1 Z+5 F3000
{% else %}
G1 Z+{(z_lift_max - printer.gcode_move.position.z)} F3000
{% endif %}
G90
{% if printer.gcode_move.position.x != x_park and
printer.gcode_move.position.y != y_park
%}
G1 X{x_park} Y{y_park} F{printer["gcode_macro _global_var"].pause_resume_travel_speed * 60}
{% endif %}
M104 S{printer.extruder.target}
{% if state == 'normal' %}
{% if (printer.extruder.temperature + 5 >= printer.extruder.target) and (printer.extruder.temperature >= printer.configfile.settings['extruder'].min_extrude_temp) %}
{% if printer['filament_switch_sensor filament_sensor'].enabled == True and
printer['filament_switch_sensor filament_sensor'].filament_detected == True
%}
G91
G1 E-{e_restract} F300
G90
{% elif printer['filament_switch_sensor filament_sensor'].enabled == True and
printer['filament_switch_sensor filament_sensor'].filament_detected != True %}
G91
G1 E+95 F300
G1 E-10 F1500
G1 E-20 F600
M400
G4 P3000
G1 E-50 F300
G90
{% endif %}
{% endif %}
{% elif state == 'filament_change' %}
{% if (printer.extruder.temperature + 5 >= printer.extruder.target) and (printer.extruder.temperature >= printer.configfile.settings['extruder'].min_extrude_temp) %}
G91
G1 E+25 F300
G1 E-10 F1500
G1 E-20 F600
M400
G4 P3000
G1 E-50 F300
G90
{% endif %}
{% endif %}
{% endif %}
[delayed_gcode _resume_wait]
gcode:
{% if printer['gcode_macro RESUME'].execute|lower != 'false' %}
RESUME
{% endif %}
Upload your klippy.log and I’ll look and see if I can find where the cancel command is getting triggered
I don’t understand what was wrong. I replaced the macros with yours and everything worked. They look identical when compared. Thank you.
