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

    Tool Change retraction confusion

    Scheduled Pinned Locked Moved Solved
    Tuning and tweaking
    2
    5
    217
    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.
    • marzubusundefined
      marzubus
      last edited by

      I am having a bit of a hard time understanding something that should be simple. I have a pebble wiper, that purges a pellet and whacks it with a servo after every tool grab. After the pebble is formed, I retract 4.8mm, before print resumes.

      ; prime.g
      G92 E0                    ; Reset Extrusion
      G1 E-4.8 F1500      ; Retract
      

      In my slicer settings, I am confused as to if the unretract will undo this retracted state, as in generated gcode, it looks like there is an additional retract after my tool is grabbed, and it undoes that retract obviously, but does the printer know about and undo the other 4.8mm retraction too?

      ; slicer code
      ; tool change
      T1
      G1 E-4.8 F2400
      G1 X137.29 Y76.988 F21000
      G1 Z.2
      G1 E4.8 F2400
      

      I am confused as to if the printer knows about that extra retract in prime.g, and does it undo that when extrusion starts again?

      • Does the G1 E commands undo the extra retraction I have in my prime.g?
      • Do I use postX.g scripts retract 4.8mm or do I use PrusaSlicer per tool retraction when stowing tools? Does this make any difference? As I like to use PrusaSlicer's wipe and retract.
      • When I grab a tool, I unretract, purge, then retract to stop drooling, but the first time any tool is used, it seems to not be unretracting the right amount before first line. So there is a initial underextrusion.
      dc42undefined 1 Reply Last reply Reply Quote 0
      • dc42undefined
        dc42 administrators @marzubus
        last edited by dc42

        @marzubus the printer firmware only knows about retraction if you configure your slicer to use firmware retraction (G10 and G11 commands) and configure the amounts of retraction and reprime using M208. If you do not use firmware retraction then it is your slicer that is in control of retraction, apart from any manual retract and reprime commands that you use, for example in tool change files or pause.g and resume.g.

        It may be that your slicer retracts filament from the old tool before doing a tool change, and primes the new tool after a tool change.

        If you use firmware retraction then RRF tracks the retraction state and will ignore a G10 command if the filament is already retracted by a previous G10, or a G11 command if the filament is not retracted.

        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

        marzubusundefined 1 Reply Last reply Reply Quote 0
        • marzubusundefined
          marzubus @dc42
          last edited by

          @dc42 Does that mean I can use G10 and G11 in the script g-codes, while the job uses normal G1 E extrusion?

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

            @marzubus you could, but I don't see how that would help.

            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

            marzubusundefined 1 Reply Last reply Reply Quote 0
            • marzubusundefined
              marzubus @dc42
              last edited by marzubus

              @dc42 I think I am just over thinking this, if I use G1 R2 I can zip back to the print position rapidly with only minor retraction.

              prime.g

              G91                   ; relative pos
              G1 Z3 F1000           ; raise Z
              G90                   ; back to absolute pos
              
              M106 S0               ; fan off
              M109                  ; wait for temp
              M42 P0 S1             ; turn servo on
              M280 P0 S100          ; servo home 100 degrees
              G4 P100               ; wait 1 second
              
              ; move near pebble wiper, two movements to come in from 
              ; the right edge so any tail hangs over the far edge.
              G0 X-35 Y160 F30000
              G0 X-42 Y161 F24000
              G0 X-39 Y153 F24000   ; move to pebble wiper purge spot
              
              ; make a pebble
              G1 E1.5 F200          ; purge reduce from 5 to 3
              G4 P200               ; wait 200ms
              G1 E5 F300
              G4 P200               ; wait 400ms; 
              G1 E10 F500           ; purge
              G1 E5 F360            ; Pebble Purge
              M106 S1               ; fan 100%, cool and harden the pebble
              G1 E1 F240            ; Final Slow Pebble Purge
              G4 P14000             ; Dwell for 12s, a bit long, need to tune down this.
              
              ; do a minor retraction
              G92 E0                ; reset extrusion
              G1 E-0.4 F1500        ; Retract a bit
              
              ; servo wack the pebble away
              M280 P0 S0            ; whack!
              G4 P250               ; Dwell for milliseconds
              
              ; zip over the brush
              G0 X-35 Y123 F24000   ; move across brush
              G0 X-39 Y200 F24000   ; back over the brush
              G0 X-35 Y123 F24000   ; move across brush
              G0 X-39 Y200 F24000   ; back over the brush
              G0 X-35 Y200 F24000   ; back over the brush
              G0 X-25 Y131 F24000   ; back over the brush
              G0 X-40 Y131 F24000   ; back over the brush
              G0 X-25 Y131 F24000   ; back over the brush
              
              
              M106 R2               ; Cooling Fan Off
              M280 P0 S100          ; servo home                 
              M42 P0 S0             ; servo off
              
              ; restore Z before moving tool back
              G91                   ; relative pos
              G1 Z-3 F1000          ; lower nozzle
              G90                   ; back to absolute pos
              G29 S1                ; mesh levelling on
              
              ; return to position where toolchange was initiated from
              G1 R2 X0 Y0 Z2 F50000 ; Move to saved position at lightning speed
              G1 E0.4 F1500         ; Unretract
              G92 E0                ; reset extrusion
              
              1 Reply Last reply Reply Quote 0
              • marzubusundefined marzubus has marked this topic as solved
              • First post
                Last post
              Unless otherwise noted, all forum content is licensed under CC-BY-SA