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

    Pause and resurrect do not play nice with each other

    Scheduled Pinned Locked Moved
    General Discussion
    2
    10
    616
    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.
    • gnydickundefined
      gnydick
      last edited by gnydick

      When the print is paused, the nozzle moves 5mm away from the print in order to not sit there and melt the print. The resurrect.g only stores instructions assuming the power failed, so it uses G92 to tell the machine where it is, THEN the pause adds the 5mm. This is the wrong scenario for a paused print. Here's an example of why...

      I had a print going that I wanted to change the temperatures on without starting over, so I didn't want to re-slice it in case the offset in the newly sliced file was different, so I paused and cancelled the print, downloaded the gcode file from the printer, did a search and replace on the temps and re-uploaded it. I then resurrected the print. That immediately started printing in thin air because the pause added 5mm.

      Now, I can't put that in resurrect-prologue.g because if there is a power outage, then I'll crash into the print by resurrecting.

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

        Which firmware version are you using?

        Please post your pause.g and config.g files.

        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

        gnydickundefined 2 Replies Last reply Reply Quote 0
        • gnydickundefined
          gnydick @dc42
          last edited by

          @dc42 sorry, I was wrong. I paused that print twice. It is the G92 that is wrong, I will completely repost later today with the corrected problem.

          1 Reply Last reply Reply Quote 0
          • gnydickundefined
            gnydick @dc42
            last edited by

            @dc42 OK, I updated the OP here.

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

              I don't understand how 5mm got added. The scenario that resurrect.g after pausing the print is intended to address is that you want to power the printer down because it will be unattended. So you pause the print, then turn the printer off. Later you turn it on and send M918 to resurrect the print. Therefore, the G92 commands written to resurrect.g need to set the position at which the print was paused, before the pause.g file moved the head up 5mm. This is what the code does, and it was working last time I tested it.

              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

              gnydickundefined 1 Reply Last reply Reply Quote 0
              • gnydickundefined
                gnydick @dc42
                last edited by gnydick

                @dc42 the 5mm didn't get added to the G92. I stated it incorrectly before. The problem is the pause physically moves the head 5mm away, but the G92 DOESN'T take that into account. So...

                time step Z pos resurrect contents
                T=0 print 1.4
                T=1 Pause 6.4 G92 Z1.4

                From there, it doesn't work, there is nothing that moves the head 5mm back down.

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

                  OK, I see the problem. The resurrect.g file is written before pause.g is executed. When I was doing this, I was homing Z in resurrect-prologue.g, so the G92 value wasn't being used.

                  There isn't an easy fix for this, so I won't be able to include a fix in the 2.03 release.

                  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

                  gnydickundefined 1 Reply Last reply Reply Quote 0
                  • gnydickundefined
                    gnydick @dc42
                    last edited by gnydick

                    @dc42 I think there is. There can be some new features.

                    1. A flag called "destructive homing" that means that unless the user has verified that it's safe to home, don't do so. For example, if I lose power and want to resurrect, I personally can't include homing because it would crash into the print. Not only that, I'd have to manually deploy my probe.

                    2. A new g-code prefix C for config ENUMs.

                    3. A config ENUM C101: "pause Z movement." This is the distance to move when doing a pause.

                    4. The ability to reference config values in g-code. Let's say the "pausez" is C101, the center X position is C102 and the center Y position is C103. It'd be awesome to be able to have something like G1 XC102 YC103 ZC101 or G1 XCcenterX YCcenterY ZCpauseZ

                    With these features, you can make any number of assumptions about how to deal with things.

                    For example, (expanding on the idea I just proposed) there are so many macros to operate the machine and they all have hardcoded values. If all of those values, where possible, were actually config ENUMs, the machine could behave much, much more consistently and robustly. Nearly every time you've ever had to answer someone with "well, you'd have to edit it here, here, and here..." would go away.

                    Macros would be much easier to maintain over time. I have tons of them: diagnostics for motion smoothness, skipped steps, unjamming the extruder, moving to the center. Not to mention homeZ.g which moves to the center before probing Z. The ability to reuse that position would be so handy.

                    I understand for a stable, not changing machine, these features might not be all that useful, but the duet is so popular and used in so many in-development projects, that I believe this kind of functionality would to over extremely favorably with the community and make duets even more the go-to platform it already is.

                    My gut instinct tells me this will solve many other issues as well.

                    Thoughts?

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

                      Most of what you describe is encompassed by the conditional GCode syntax and associated variables that will soon be implemented in RRF 3.

                      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

                      gnydickundefined 1 Reply Last reply Reply Quote 0
                      • gnydickundefined
                        gnydick @dc42
                        last edited by

                        @dc42 aren't I clever 😉

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