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

    Unretract after Tool Change

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    3
    13
    1.1k
    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.
    • smoki3undefined
      smoki3
      last edited by

      Hi,

      I am looking for a solution for the following problem.
      My goal is to handle the whole tool change process by the firmware.
      My tool change process is like the E3D tool changer:

      1. clear tool (tfree.g)
      2. grab new tool (tpre.g)
      3. stabilize temp and clean nozzle (tpost.g)
        • after cleaning with a brush, I retract with a G10

      Then all the scripts a finished and the printer continue with the print.

      The problem is that the printer not doing the unretraction.

      Is there a possibility to do the unretraction after the printer has moved to the next printing position?

      deckingmanundefined 1 Reply Last reply Reply Quote 0
      • deckingmanundefined
        deckingman @smoki3
        last edited by

        @smoki3 I'm not sure that I understand the problem. If you are using firmware retraction, then G10 retracts and G11 does the un-retrcat. However, one must follow the other and you can't do multiple un-retracts (G11s) without there being a retract (G10) in between. So if you have a sequence which consists of G10, then G11, then another G11, the second G11 will not be acted on. Nor will any further G11 commands until a G10 is sent. The same applies to multiple G10 commands. Only the first will be acted on until another G11 is sent.

        Does that answer your question?

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

        1 Reply Last reply Reply Quote 0
        • smoki3undefined
          smoki3
          last edited by smoki3

          No sorry 🙂

          The problem is that the slicer moves the tool head to next position. And after this it have to unretract. If I unretract in the tpost.g script then I get stringing between my brush and the next print move.

          So actually:
          tpost.g:
          G1 X0 Y80 ; brush position
          G1 E5 F200 ; prime extruder
          G10 ; retract
          G1 X0 Y100 F1000 ; clean nozzle with brush
          G11 ; unretract
          Slicer commands:
          G1 X155 Y120 F18000 ; move fast to next print positon
          .....

          and it should more like this:

          So actually:
          tpost.g:
          G1 X0 Y80 ; brush position
          G1 E5 F200 ; prime extruder
          G10 ; retract
          G1 X0 Y100 F1000 ; clean nozzle with brush
          Slicer commands:
          G1 X155 Y120 F18000 ; move fast to next print positon
          G11 ; unretract
          .....

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

            I think what you are asking for is for the firmware to do an automatic G10 G11 just before the next printing move (i.e. the next move that has both XY movement and extrusion). Is that right?

            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

            smoki3undefined 1 Reply Last reply Reply Quote 0
            • deckingmanundefined
              deckingman @smoki3
              last edited by

              @smoki3 First off it's G10 to retract and G11 to unretract - you have G11 for both.

              As for the rest, I do a similar thing for purging and wiping the nozzle on tool change but I use a post process script which makes use of the "R" parameter in G1 to return the print head from where it left. I think this might work in tpost.g but I'm not 100% sure

              So......

              G1 X0 Y80 ; brush position
              G1 E5 F200 ; prime extruder
              G10 ; retract
              G1 X0 Y100 F1000 ; clean nozzle with brush

              Then add
              G1 R2 X0 Y0 Z0 F18000
              followed by
              G11 ; unretract

              The G1 R2 ..... line will cause the print head to move quickly back to where it started. Then the G11 will unretract and the slicer commands will continue from that point. That's what happens with my post processing script so I'd have thought it should work with tpost.g too.

              HTH

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

              smoki3undefined 1 Reply Last reply Reply Quote 0
              • smoki3undefined
                smoki3 @dc42
                last edited by

                @dc42

                yes extacly... is this actually possible?

                dc42undefined 1 Reply Last reply Reply Quote 0
                • smoki3undefined
                  smoki3 @deckingman
                  last edited by

                  @deckingman

                  sorry just a typo.

                  No this is not working. Because G1 R2 moves to last position where the tool change was called and not the next print move.

                  deckingmanundefined 1 Reply Last reply Reply Quote 0
                  • deckingmanundefined
                    deckingman @smoki3
                    last edited by

                    @smoki3 said in Unretract after Tool Change:

                    @deckingman

                    sorry just a typo.

                    No this is not working. Because G1 R2 moves to last position where the tool change was called and not the next print move.

                    Yes that's what I'd expect. Move to the last known position, un-retract, then the next move in gcode file will be the next print move. Is that a problem with a tool changer?

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

                    smoki3undefined 1 Reply Last reply Reply Quote 0
                    • smoki3undefined
                      smoki3 @deckingman
                      last edited by

                      @deckingman
                      yes because you get stringing between the last known position and the next print move

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

                        @smoki3 said in Unretract after Tool Change:

                        @dc42

                        yes extacly... is this actually possible?

                        Not yet. Can't you get your slicer to do a G10 retract before the travel move after the tool change, and a G11 afterwards? If you can't, then I can see that having RRF do an automatic G11 when it starts to print again would be useful. It seeds some thought because RRF would need to remember the G10 status of each extruder separately, assume that you hadn't cancelled it with a separate G1 E command, also it might or might not need to undo the Z hop depending on whether there was a Z hop before or at the start of the tool change. And behave differently if the machine is in CNC mode, because CNC machines don't do extrusion.

                        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

                        smoki3undefined 1 Reply Last reply Reply Quote 0
                        • smoki3undefined
                          smoki3 @dc42
                          last edited by

                          @dc42
                          Sure some slicer can do this. But simplify does not directly support firmware retraction and I noticed that's it is hard to get the RRF and slicer work nice together. Especially if I do some manually extrusion in the tpost.g.
                          So I am looking forward to such a solution in the firmware

                          1 Reply Last reply Reply Quote 0
                          • smoki3undefined
                            smoki3
                            last edited by

                            I got another idea:

                            What's if we use "G11 S1" to set a trigger. That means if the RRF received this code then it is watching out for the next movement with an extrusion. Then you don't have to remember the retraction state of each tool and it's controlable by the user.

                            1 Reply Last reply Reply Quote 0
                            • deckingmanundefined
                              deckingman @smoki3
                              last edited by

                              @smoki3 said in Unretract after Tool Change:

                              @deckingman
                              yes because you get stringing between the last known position and the next print move

                              But if the next move is a print move including extrusion, then you need to unretract before making that move, so you won't get stringing. If on the other hand, the next move is simply a change of position without extrusion, then you might get stringing. In that case, the unretract needs to happen after the first non print move and before the next print move.
                              So the unretract needs to be conditional depending on whether the next move has an "E" element.
                              I can't off hand think of a way to do that other than a post processing script.

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

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