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

How to correctly setup power failure detection/resurrection in 1.20?

Scheduled Pinned Locked Moved
Tuning and tweaking
6
25
3.0k
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.
  • undefined
    deckingman
    last edited by 6 Jan 2018, 17:26

    @dc42:

    The reason for re-homing is that when you power a printer down and up again, the stepper motors move to a close multiple of 4 full steps. So the axis positions change by up to 2 full steps or perhaps a little more.

    Depending on the size of your print, you might be able to move the head to one corner of the print area and do Z homing there.

    If you have a high Z steps/mm then I guess you might be able to ignore the Z motor movement because it will be small. But currently there is no way of doing that automatically. I guess it would be possible to have the firmware put a G92 Z command in the resurrect.g file to tell it what the Z coordinate was when the print stopped.

    Actually, not homing Z would work for me although I appreciate that not everyone is in the same situation. With 1mm lead screws and 1.8 degree motors, one full step is 0.005mm so 2 steps would only be an error of 0.01 mm. Even with 4mm lead screws, the error would be 0.04mm which with a 0.3mm layer height wouldn't be desperately bad. I'm guessing that Deltas use a much lower Z steps per mm but then don't they home at Z max in any case?

    I might be worth having the option to have G92 Z in the resurrect.g file for lead screw driven Z axes?

    Ian
    https://somei3deas.wordpress.com/
    https://www.youtube.com/@deckingman

    1 Reply Last reply Reply Quote 0
    • undefined
      Guyaros
      last edited by 6 Jan 2018, 18:05

      In the meanwhile, I wrote "homeZMaxUsingStallDetection.g" script. and it's working good.

      [c]
      M915 Z S10 F0; Configure motor stall detection, Z motor, set stall detection threshold, set stall detection filter disabled
      M574 Z2 S3; Set Z-axis home to Max endstop, Set endstop type to Motor stall detection
      M913 Z85; Reduce current of Z motor to 85%
      G91; Switch to relative positioning
      G1 Z300 F1200 S1; Lower bed all the way down, until motor stalls
      M400; Wait for move to finish
      M913 Z100; Reset motor currents back to normal 100%
      G1 Z-5; Raise bed by 5[mm]
      G92 Z165; Set Z position
      M574 Z0 S2; Set Z-axis home to Minimum endstop, set endstop type to Z-Probe (Reset to normal working mode)
      [/c]

      so I guess I am ready to try the resurrect routine.

      1 Reply Last reply Reply Quote 0
      • undefined
        justine.haupt
        last edited by 13 Jan 2018, 14:36

        Had my first power failure during a big print early this morning, would like to resurrect.

        Additional questions:

        1. Why is the file in resurrect.g is called "Presurrect-prologue.g" instead of "resurrect-prologue.g" as the wiki says?

        2. I never configured auto-pause with M911, yet a seemingly good resurrect.g file has been created for the print. Is there a default auto-pause in place?

        3. My machine homed itself at the time of the power failure. I'm at a loss to explain how this could have happened.

        The contents of resurrect.g right now:

        [[language]]
        ; File "ExhaustPanel-P.gcode" resume print after print paused at 2018-01-13 05:07
        M140 P3 S70.0
        G10 P1 S0:0:0:0 R0:0:0:0
        G10 P0 S215 R215
        T0 P0
        M98 Presurrect-prologue.g
        M106 P0 S1.00
        M106 P2 S0.00
        M106 P3 S0.00
        M106 P5 S0.00
        M106 P7 S0.00
        M106 S255.00
        M116
        M290 S0.000
        G92 E10.69300
        M82
        M23 ExhaustPanel-P.gcode
        M26 S4316562 P0.000
        G0 F6000 Z6.560
        G0 F6000 X383.10 Y181.68
        G0 F6000 Z4.560
        G1 F14000.0 P0
        M24
        1 Reply Last reply Reply Quote 0
        • undefined
          dc42 administrators
          last edited by 13 Jan 2018, 14:49

          The "P" is the parameter letter, it is not part of the filename.

          In firmware 1.20 a resurrect.g file is created whenever you pause a print, so the one you have will be from when you last paused it, not from the time of the power failure unless the print was already paused when the power failed.

          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
          • undefined
            justine.haupt
            last edited by 13 Jan 2018, 14:55

            Oh, darn. Okay, thanks David.

            1 Reply Last reply Reply Quote 0
            • undefined
              dc42 administrators
              last edited by 13 Jan 2018, 15:02

              @deckingman:

              …
              Actually, not homing Z would work for me although I appreciate that not everyone is in the same situation. With 1mm lead screws and 1.8 degree motors, one full step is 0.005mm so 2 steps would only be an error of 0.01 mm. Even with 4mm lead screws, the error would be 0.04mm which with a 0.3mm layer height wouldn't be desperately bad. I'm guessing that Deltas use a much lower Z steps per mm but then don't they home at Z max in any case?

              I might be worth having the option to have G92 Z in the resurrect.g file for lead screw driven Z axes?

              I can see a potential problem with that. You will probably have a command to lift Z in the power fail script, otherwise the nozzle will be stuck to the print. But if you don't have enough power reserve, that G1 Z command may not be executed accurately or in full. So you would still be uncertain of where Z should be.

              A better solution might be:

              • Implement a GCode to set the coordinates of the pause restore point, and generate this in resurrect.g to set it to the position when the power fail occurred
              • When restarting the print, after homing X and Y and heating the nozzle, jog the head down to the correct height manually
              • Implement a R1 option on the G92 command, then you cold use G92 R1 Z0 to tell the firmware it was at the Z height that is set in the psue restore point

              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
              • undefined
                justine.haupt
                last edited by 13 Jan 2018, 15:07

                But hey, that resurrect.g IS for today's date. Strange.

                1 Reply Last reply Reply Quote 0
                • undefined
                  justine.haupt
                  last edited by 13 Jan 2018, 15:27

                  UNEXPECTED BEHAVIOR CONFIRMATION

                  I just successfully resurrected this print despite not having M911 defined in config.g

                  1 Reply Last reply Reply Quote 0
                  • undefined
                    justine.haupt
                    last edited by 13 Jan 2018, 17:14

                    It must have automatically commanded the pause script, because it parked itself. I speculation that there was a short brownout this morning to account for it having enough power to park itself. I know you're saying that's not possible, but it did… I was sleeping when the print stopped itself, and on resurrect it picked right up where it left off.

                    1 Reply Last reply Reply Quote 0
                    • undefined
                      dc42 administrators
                      last edited by 13 Jan 2018, 20:27

                      Lucky you!

                      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
                      • undefined
                        justine.haupt
                        last edited by 13 Jan 2018, 21:22

                        Yeah but, it seems like it issued the pause script on its own somehow. The gantry was parked, mid print. Any idea why it would do that?

                        1 Reply Last reply Reply Quote 0
                        • undefined
                          dc42 administrators
                          last edited by 14 Jan 2018, 08:31

                          Did I forget to mention the new firmware precognition feature? 😉

                          An alert from a filament monitor will also cause a pause.

                          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
                          23 out of 25
                          • First post
                            23/25
                            Last post
                          Unless otherwise noted, all forum content is licensed under CC-BY-SA