I am trying to use GCODE scripts to properly park my extruder after pausing a print, but I am having an issue of a long and substantially thick string, and what seems to be a bit of either a layer shift, or sputtering that is visible for the rest of that layer. I got these from this site, with it set for Cura with M82, and an increased retraction I hoped would have helped more. I can't seem to quite figure it out. I am using the following GCODE.
After print job is paused:
{% if pause_position.x is not none %}
; relative XYZE
G91
M83
; retract filament of 4 mm up, move Z slightly upwards and
G1 Z+5 E-4 F4500
; absolute XYZE
M82
G90
; move to a safe rest position, adjust as necessary
G1 X10 Y10
{% endif %}
Before print job is resumed:
{% if pause_position.x is not none %}
; relative extruder
M83
; prime nozzle
G1 E-4 F4500
G1 E4 F4500
G1 E4 F4500
; absolute E
M82
; absolute XYZ
G90
; reset E
G92 E{{ pause_position.e }}
; WARNING!!! - use M83 or M82(extruder absolute mode) according what your slicer generates
M82 ; extruder relative mode
; move back to pause position XYZ
G1 X{{ pause_position.x }} Y{{ pause_position.y }} Z{{ pause_position.z }} F4500
; reset to feed rate before pause if available
{% if pause_position.f is not none %}G1 F{{ pause_position.f }}{% endif %}
{% endif %}
The examples assume that the coordinates used by the slicer are absolute (including E), and this may not be the case. Some slicers use absolute X, Y, Z and relative E. Relative X, Y, Z is rare.
Unfortunately, Marlin doesn't provide a way to query (or save) the state(s) so a universal, slicer independent, pause and resume scripts cannot be written.
I actually fixed it at 3am last night lol. I just needed to separate the two moves, so I turned this:
G1 Z+5 E-4 F4500
To:
G1 E-4 F4500
G1 Z+5 F4500
Now it pauses and parks, then resumes like a dream I am installing an EX Board Lite from TH3D and will be enabling advanced pausing features in the firmware as well. Thanks guys.