Annoying Duet 2 Post Print Behaviour



  • When I finish a print on my Duet 2 Ethernet, the hotend sits on top of the print for a couple minutes before moving away for some reason. This both ruins the look of some parts but also ruins the faces of some prints that I need to be dimensionally accurate.

    I also have the issue of the printer retracting filament after each print so far that it goes beyond the gears in my Hemera, meaning I have to manually reload the filament after each print. This is kinda silly and rather frustrating since I forget most of the time.

    What file is responsible for the post print GCODE and what do I need to change to make it home right after the print? I would rather not have to add post print GCODE to every file telling it to home, that's not a long term solution for my needs.



  • @Maple,
    What I do is place the following gcode in each slicer's end-gcode area:

    M400                                             ; Make sure all moves are complete
    M0                                               ; Stop everything and run sys/stop.g
    

    Then you place your desired end of print gcode in /sys/stop.g

    ; 0:/sys/stop.g
    ; Called when M0 (Stop) is run (e.g. when a print from SD card is canceled)
    
    M83                                                        ; Set extruder to relative mode.
    M572 D0 S0.0                                               ; Clear pressure advance.
    M220 S100                                                  ; Set the speed factor back to 100% incase it was changed.
    M221 S100                                                  ; Set the extrusion factor back to 100% incase it was changed.
    G1 E-2                                                     ; Retract 2mm of filament.
    M104 S-273                                                 ; Turn off the hotend.
    M140 S-273                                                 ; Turn off the heatbed.
    G1 F1000.0                                                 ; Set feed rate.
    

    Of course, add where you desire the axes to be and maybe an end of print tune.

    The actual file contents that I use are:

    ; 0:/sys/stop.g
    ; Called when M0 (Stop) is run (e.g. when a print from SD card is canceled)
    
    M83                                                        ; Set extruder to relative mode.
    M106 S255                                                  ; Turn the part cooling fan fully on.
    M572 D0 S0.0                                               ; Clear pressure advance.
    M220 S100                                                  ; Set the speed factor back to 100% incase it was changed.
    M221 S100                                                  ; Set the extrusion factor back to 100% incase it was changed.
    G1 E-2                                                     ; Retract 2mm of filament.
    M104 S-273                                                 ; Turn off the hotend.
    M140 S-273                                                 ; Turn off the heatbed.
    G1 F1000.0                                                 ; Set feed rate.
    M98 P"current-sense-homing.g"                              ; Adjust the current and sensitivity for homing routines.
    
    ; Let cool for bit to reduce end stringing
    M300 S4000 P100 G4 P200 M300 S4000 P100                    ; Give a double beep.
    G91                                                        ; Set to Relative Positioning.
    G1 Z2 F400                                                 ; Move Z axis up 3mm.
    G4 S60                                                     ; Wait 60 seconds.
    
    G90                                                        ; Set to Absolute Positioning.
    
    G1 X220 Y205 Z205 F400                                     ; Place nozzle to the right side, build plate to front, Z at top.
    M400                                                       ; Finish all moves, clear the buffer.
    M107                                                       ; Turn off the part cooling fan.
    M18 YXE                                                    ; Unlock the X, Y, and E axis.
    
    ; Play a triumphant tune to celebrate a successful print.
    G4 S1
    M300 P250 S750
    G4 P251
    M300 P200 S1250
    G4 P201
    M300 P250 S750
    G4 P251
    M300 P200 S1250
    G4 P201
    M300 P250 S2500
    G4 P251
    M300 P150 S2000
    G4 P151
    M300 P150 S2500
    G4 P151
    M300 P350 S3700
    G4 P351
    M400                                                       ; Finish all moves, clear the buffer.
    

    Cheers,
    Kolbi



  • I just put a command in the slicer to home X and Y at the end of a print. It works every time...

    deb3b32c-a89d-41b9-beed-45ea16fce4bc-image.png ![alt text](image url)

    In my corexy printer, the X axis endstop is mounted on the printer's frame, not the extruder carriage. The only way that homing X works is if the Y axis has been homed before the X axis. The homeX.g file in my printer homes Y first, then X. That's why there is only has a homeX command in the red circle in the image- the printer will home both axes if I tell it to home X.



  • @Kolbi This worked great, thank you! A few modifications and my print finishes just how I need.



  • @mrehorstdmd "I would rather not have to add post print GCODE to every file telling it to home, that's not a long term solution for my needs." I said I wanted to avoid that in the post. Regardless, I appreciate the help.



  • @Kolbi

    Hi,

    From the docs on M0: The firmware finishes any moves left in its buffer, then

    So I think the M400 is redundant.

    Frederick



  • Lot's of different approaches to these kinds of issues.

    I just put M98 P"print_begin.g" and M98 P"print_end.g" in the start code and end code boxes in the slicer.

    My using my own macros I avoid any built in firmware behavior from other commands (like M0) that might conflict with what I want to do.

    Frederick



  • @fcwilt thanks, I read that too but placed it there out of habit. When I reviewed it I figured since it causes no harm and doesn't cost anything, I left it in.👌


Log in to reply