Duet3D Logo

    Duet3D

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Documentation
    • Order

    Resume print after power failure (M916)

    General Discussion
    2
    4
    500
    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.
    • Yonkiman
      Yonkiman last edited by

      I had a problem trying to use M916 after a heater fault, not a power failure. The fault occurred about 9 hours into the print, and the firmware was kind enough to create a resurrect.g file. I thought resuming would be pretty easy, since the printer never actually lost power so none of the axes needed homing.

      I fixed the cause of the heater fault, cleared and enabled the heater, and brought the bed and printhead temps back to 60C & 210C. I read the instructions for M916 and created a resurrect-prologue.g. Since none of the axes needed homing (and homing again could even introduce a very small error), I just put M83 ; relative extrusion in the file to keep it from being empty. I then extruded until plastic started oozing out, and entered M916.

      This is when things took a turn for the worse. The printhead started banging against the X and Y home position - it was as if it thought it was in the middle of the printspace instead of at (0,0). I hit emergency stop and came here to see if I could find out what I did wrong and if it's possible to still salvage the print (looks like the answer to that is no - I didn't think to backup resurrect.g and it was overwritten when I emergency stopped.)

      Does anyone have any ideas how I could have salvaged this print?

      1 Reply Last reply Reply Quote 0
      • Yonkiman
        Yonkiman last edited by

        In the same situation this AM - apparently I did not fix the root cause of the heater fault.

        I'm in a better position because this time I backed up the resurrect file this time. I went through everything step-by-step, and I think I discovered what the problem was with my first attempt.

        The 5th line in resurrect.g is G92 X111.876 Y150.826 Z29.612. So my printer was happily homed, sitting at (0,0), when this line made it think the printhead was at (112, 151). Now the resurrect function should still work if resurrect-prologue.g homes the printer (as the instructions say it should), but since mine didn't, there was a lot of painful banging.

        So the only question I have now is Why does resurrect.g put G92 X111.876 Y150.826 Z29.612 right before it calls a script to home the printer? It seems unnecessary at best, potentially harmful if you're trying to restart a print that failed without losing power/position.

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

          @yonkiman said in Resume print after power failure (M916):

          So the only question I have now is Why does resurrect.g put G92 X111.876 Y150.826 Z29.612 right before it calls a script to home the printer? It seems unnecessary at best, potentially harmful if you're trying to restart a print that failed without losing power/position.

          I added this in a recent firmware version because someone asked me to. The reason was that they couldn't home the Z axis with a print on the bed, but as it was a leadscrew axis with high steps/mm it wouldn't have moved much. So in resurrect.prologue.g you can now either home all axes, or home none of them, or home just some and hope that the rest didn't move when the printer was powered down and up again. If you do home axes in resurrect-prologue.g then the coordinates set by G92 will of course be overridden.

          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
          • Yonkiman
            Yonkiman last edited by

            OK, so in my case I'd set X and Y back to 0 in resurrect-prologue.g. I think Z would then need a relative offset to compensate for how much it was increased when the print was interrupted.

            Looks doable - thanks!

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