Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Pause and resurrect doesn't make sense

    Scheduled Pinned Locked Moved
    Duet Web Control
    5
    16
    596
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • o_lampeundefined
      o_lampe
      last edited by

      Hi everyone , this is my first post after 3 years of absence.

      because of lockdown boredom I digged out my CoreXY printer and started printing again.

      I'm currently running the latest RRF2.x firmware and ran into a problem:
      My pause macro includes parking the head at X250 Y150 and Z lifted 5mm above the print. I don't want to risk a big blob on the print.
      But the resurrect.g file only remembers the last head position. It ignores the parking position.
      It has a G92 ...... line at the beginning, which I edited to match the paused position. I thought no further homing would be necessary...

      Next morning the print starts at the wrong place. (I have made an empty resurrect-prologue file)
      Unfortunately I hit pause immediately and that overwrites the resurrection file. ( An autobackup of the old file would be nice to have)

      Does pause/resurrect only work without parking the head?

      1 Reply Last reply Reply Quote 0
      • fcwiltundefined
        fcwilt
        last edited by

        Hi,

        You are thinking of pause.g and resume.g.

        Here are my two files:

        M291 R"Pause Print" P"Please wait..." T0
        
        M83                 ; relative extruder moves
        G1 E-2 F3600        ; retract filament (see resume.g)
        
        G91                 ; relative moves
        G1 Z10 F9999        ; move nozzle out of the way - step 1 (max speed)
        
        G90                 ; absolute moves
        G1 X0 Y150 F6000    ; move nozzle out of the way - step 2
        
        M291 R"Pause Print" P"Done" T1
        
        M291 R"Resume print" P"Please wait..." T0
        
        G1 R1 Z2    ; move nozzle to 2mm above resume point
        G1 R1       ; lower nozzle to resume point
        
        M83         ; relative extruder moves
        G1 E2 F3600 ; undo the retraction done in pause.g
        
        M291 R"Resume print" P"Done" T1
        
        
        
        

        The file resurrect.g is deals with power failure and with that you use the M916 to start printing again.

        This talks about the power fail condition:

        https://duet3d.dozuki.com/Wiki/Setting_up_to_resume_a_print_after_a_power_failure

        Frederick

        Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

        1 Reply Last reply Reply Quote 0
        • dc42undefined
          dc42 administrators
          last edited by

          The resurrect.g file is also created any time you pause a print. This is so that you can pause the print, cool down and power down the printer (e.g. overnight), and resume it again another time. The position saved is the one you need to start printing from. Anything you need to do before resuming the print that is not already handled in resurrect.g should be done in resurrect-prologue.g.

          I will add backing up the previous resurrect.g file to the firmware wishlist,

          Duet WiFi hardware designer and firmware engineer
          Please do not ask me for Duet support via PM or email, use the forum
          http://www.escher3d.com, https://miscsolutions.wordpress.com

          fcwiltundefined 1 Reply Last reply Reply Quote 0
          • fcwiltundefined
            fcwilt @dc42
            last edited by

            @dc42 said in Pause and resurrect doesn't make sense:

            The resurrect.g file is also created any time you pause a print.

            Is that file always created after a pause?

            I've used pause then cancel many times but I don't see that file in my system directory.

            I don't have a M911 command anywhere.

            Thanks.

            Frederick

            Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

            1 Reply Last reply Reply Quote 0
            • o_lampeundefined
              o_lampe
              last edited by

              Hi @dc42 ! Still alive and kicking... πŸ‘
              The power-failure Wiki page mentiones the G92 line and that we might get away without homing in a prologue.g
              What would I have to set as home? Isn't it the parking position?

              @fcwilt thanks for the link, but resume wouldn't work after overnight shutoff, right?

              fcwiltundefined 1 Reply Last reply Reply Quote 0
              • fcwiltundefined
                fcwilt @o_lampe
                last edited by

                @o_lampe said in Pause and resurrect doesn't make sense:

                @fcwilt thanks for the link, but resume wouldn't work after overnight shutoff, right?

                Correct - I was just trying to be sure that all possible relevant information was included in the discussion.

                You didn't actually say if the printer was turned off or not - so there were two possible scenarios to consider.

                Frederick

                Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                1 Reply Last reply Reply Quote 0
                • o_lampeundefined
                  o_lampe
                  last edited by o_lampe

                  Here's the new resurrect file, which IMHO contains everything a prologue file would need. Makes it somewhat obsolete?

                  ; File "0:/gcodes/Drop_Riffle_x3.gcode" resume print after print paused at 2021-01-17 11:13
                  G21
                  M140 P0 S60.0
                  G29 S1
                  T-1 P0
                  ;G92 X131.008 Y29.862 Z18.830 // Overwritten with
                  G92 X250 Y150 Z23.83 //parking position Z 5mm above the print
                  G60 S1
                  G10 P0 S220 R220
                  T0 P0
                  M98 P"resurrect-prologue.g"  // WHAT FOR?
                  M116
                  M290 X0.000 Y0.000 Z0.000 R0
                  T-1 P0
                  T0 P6
                  G10 L2 P1 X0.00 Y0.00 Z0.00
                  G10 L2 P2 X0.00 Y0.00 Z0.00
                  G10 L2 P3 X0.00 Y0.00 Z0.00
                  G10 L2 P4 X0.00 Y0.00 Z0.00
                  G10 L2 P5 X0.00 Y0.00 Z0.00
                  G10 L2 P6 X0.00 Y0.00 Z0.00
                  G10 L2 P7 X0.00 Y0.00 Z0.00
                  G10 L2 P8 X0.00 Y0.00 Z0.00
                  G10 L2 P9 X0.00 Y0.00 Z0.00
                  G54
                  M106 S0.00
                  M106 P0 S0.00
                  M106 P2 S0.00
                  M106 P3 S0.00
                  M106 P4 S0.00
                  M106 P5 S0.00
                  M106 P6 S0.00
                  M106 P7 S0.00
                  M106 P8 S0.00
                  M116
                  G92 E43.97322
                  M82
                  M23 "0:/gcodes/Drop_Riffle_x3.gcode"
                  M26 S1980553 P0.250 X159.828 Y29.862
                  G0 F6000 Z20.830
                  G0 F6000 X131.008 Y29.862
                  G0 F6000 Z18.830
                  G1 F3600.0 P0
                  G21
                  M24
                  
                  
                  1 Reply Last reply Reply Quote 0
                  • o_lampeundefined
                    o_lampe
                    last edited by

                    OK, my apologies!
                    I checked my pause file and it was parking at X200 not 250 as I had in mind... πŸ™„

                    fcwiltundefined 1 Reply Last reply Reply Quote 1
                    • fcwiltundefined
                      fcwilt @o_lampe
                      last edited by

                      @o_lampe said in Pause and resurrect doesn't make sense:

                      OK, my apologies!
                      I checked my pause file and it was parking at X200 not 250 as I had in mind... πŸ™„

                      So all is working now?

                      Frederick

                      Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                      o_lampeundefined 1 Reply Last reply Reply Quote 0
                      • o_lampeundefined
                        o_lampe @fcwilt
                        last edited by

                        @fcwilt
                        I'll see it next morning, when I resurrect again..But I'm sure it was the wrong Xpos only

                        @dc42 maybe you can add a comment behind G92... when the resurrection file is written?

                        G92 X... Y... Z... ; put your parking position here if it varies from the last print position
                        
                        1 Reply Last reply Reply Quote 1
                        • o_lampeundefined
                          o_lampe
                          last edited by

                          OK, it worked as expected. I moved the printer in the storage room. (wanted to see the Snooker masters first session without background noise)
                          There are still some issues, maybe an old story, since I use DWC 2.04?
                          The filament used is now set to zero and the estimated print time is wrong. Same about print percentage and job duration.

                          Most off all, there's a tiny offset in the print. The wiki page already mentiones a possible error of 4 fullsteps.
                          Isn't there a way to pause the print, exactly when the steps are 100% predictable?
                          In my case, drive to the next best parking position with no step-error and keep a record of it.

                          Now it seems to empty the buffer and then stops..

                          fcwiltundefined dc42undefined 2 Replies Last reply Reply Quote 0
                          • fcwiltundefined
                            fcwilt @o_lampe
                            last edited by

                            @o_lampe

                            I don't know the answers to those questions.

                            I have never tried to continue a print like that.

                            I just stay near the printer until the print is done.

                            Sorry I cannot help in regards to this.

                            Frederick

                            Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                            1 Reply Last reply Reply Quote 0
                            • Phaedruxundefined
                              Phaedrux Moderator
                              last edited by

                              Welcome back. You're on pretty ancient firmware at this point. Might want to give updating a go. There's been a few bugs fixed with pause and resume, etc, so if you're intent on playing with that could be worth while.

                              If you still have access to DWC. Upload these 3 zip files, one at a time. Don't extract them. Reboot after each.
                              https://github.com/Duet3D/RepRapFirmware/releases/download/2.05.1/Duet2Firmware-2.05.1.zip
                              https://github.com/Duet3D/RepRapFirmware/releases/download/3.0/Duet2and3Firmware-3.0.zip
                              https://github.com/Duet3D/RepRapFirmware/releases/download/3.2/Duet2and3Firmware-3.2.zip
                              That will get your firmware and DWC up to date.
                              https://configtool.reprapfirmware.org/Start
                              For your config, might be a good idea to run through the configurator tool and generate a fresh set for RRF3.

                              If your printer is very stable and doesn't really move much when powered off (ie, bed doesn't drop, etc) then you can take the exact XYZ position from when you pause the print and use a G92 XYZ to reset that position again at power on. Though a small shift may still be noticeable since the motors will snap around. I recall reading about maybe using 1x full step to ensure you're on a full step before powering off, but haven't tried it myself and not sure that would even work, but maybe.

                              Z-Bot CoreXY Build | Thingiverse Profile

                              A Former User? 1 Reply Last reply Reply Quote 0
                              • o_lampeundefined
                                o_lampe
                                last edited by o_lampe

                                Thanks for the reply @Phaedrux
                                I was glad to find an old SD-Card image to restart my 3D-printing adventure.
                                I read about RRF3.x but wasn't sure, if it's worth the extra efford to get it running.
                                Now that I've made a few succesful prints I might give it a try.

                                The fullstep-method you mentioned is probably the best way to make it work.

                                But,
                                if I change the pause macro to switch the XY-steppers to fullstep and adjust the steps/mm accordingly, would that have an immediate effect? I guess, that would require a reset.
                                Even if it works, the position I want to park the hotend, wouldn't be reached exactly. The position-error would only happen earlier. (not in the resurrection file)

                                What would be necessary to make it work?

                                • Home the printer in fullstep mode (before the print begins)
                                • Calculate a parking position based on fullsteps/mm that would be true. ( not easy for a CoreXY, how about a delta?)
                                • Change back to 1:16 microsteps and begin to print
                                • in the pause macro park the head at the calculated spot (can be 1:16 microsteps, since we will surely end at fullstep)
                                • use the parking position in the resurrection file

                                The challenge is, to find the formula that calculates the fullstep parking position.
                                And how accurate would fullstep homing work ( in my case 12.5 steps/mm)
                                Is it worth it?

                                1 Reply Last reply Reply Quote 0
                                • A Former User?
                                  A Former User @Phaedrux
                                  last edited by A Former User

                                  @Phaedrux said in Pause and resurrect doesn't make sense:

                                  I recall reading about maybe using 1x full step to ensure you're on a full step before powering off, but haven't tried it myself and not sure that would even work, but maybe.

                                  @o_lampe

                                  I remember that discussion, but I also remember most people that took part in it, settled on something similar to "having good x/y-endstops with homing those as first thing & make sure your hardware doesnΒ΄t allow any z-movement" πŸ˜‰

                                  1 Reply Last reply Reply Quote 0
                                  • dc42undefined
                                    dc42 administrators @o_lampe
                                    last edited by

                                    @o_lampe said in Pause and resurrect doesn't make sense:

                                    Isn't there a way to pause the print, exactly when the steps are 100% predictable?
                                    In my case, drive to the next best parking position with no step-error and keep a record of it.

                                    Currently there isn't a way to do this. It would theoretically be possible to do provided that there is only one motor per axis, or if there are multiple motors then just one endstop per axis. Also for the Z motor you would have to not be using true bed levelling. In other situations with multiple motors per axis, in general if you set one motor to a good parking position then the other motors would not be at good parking positions.

                                    The easiest way for me to implement this would be for me to make the current microstep position available in the object model, then you would be able to use conditional GCode to move to a good parking position.

                                    Duet WiFi hardware designer and firmware engineer
                                    Please do not ask me for Duet support via PM or email, use the forum
                                    http://www.escher3d.com, https://miscsolutions.wordpress.com

                                    1 Reply Last reply Reply Quote 0
                                    • First post
                                      Last post
                                    Unless otherwise noted, all forum content is licensed under CC-BY-SA