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

    nozzle wipe

    Scheduled Pinned Locked Moved
    3D Printing General Chat
    14
    83
    6.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.
    • mwolterundefined
      mwolter
      last edited by mwolter

      Here's a conditional gcode nozzle wipe script using a straight piece of silicone mounted on the back left corner of the frame (no Z coordinate). There might be a cleaner way but couldn't think of one without a modulus or "is even" operator.

      G1 X-12 Y332 F24000 ; rapid to inital point outside the wipe strip
      while true
      	if iterations = 0 || iterations = 2 || iterations = 4 || iterations = 6
      		G1 X-4 Y{332 - iterations * 2} F1200
      		G400
      	else
      		G1 X-12 Y{332 - iterations * 2} F1200
      		G400
      	if iterations = 6
      		break
      
      dc42undefined 1 Reply Last reply Reply Quote 1
      • Danalundefined
        Danal @arhi
        last edited by

        @arhi said in nozzle wipe:

        @Danal after few kg of ABS no matter how I wipe them they never look like that, they exposed parts are all "black" from the ABS oil/vapors

        Yeah, those were all PLA, maybe a little PETG now and then. I have literally printed < 1 kilo of ABS in the last five years.

        Delta / Kossel printer fanatic

        arhiundefined 1 Reply Last reply Reply Quote 0
        • arhiundefined
          arhi @Danal
          last edited by

          @Danal I print mostly ABS on most my printers. This nozzle on the image (E3D-X 0.3 ) printed maybe 100g of ABS so that's all PLA and PETG

          1 Reply Last reply Reply Quote 0
          • arhiundefined
            arhi
            last edited by

            conclusion - this silicone sponge, while totally cool for kitchen, disaster here .. total disaster 😞 not working at all really ..

            I recently removed the blue e3d sock for this black noname sock as this black one is imo better (thicker, harder, stays better on ..) ... and since I'm on white PETG attm it's very visible, I noticed everything is white under, cleaned it manually, wipe, white again ... darn bristles on this sponge are so soft that when nozzle come on to clean the ooze instead of cutting the ooze off it smears the ooze all over the sock and nozzle, again and again and again ... and no matter of swiping head over that sponge helps 😞 ... then I tried it manually, to clean nozzle by hand using a sponge and it does not work. Figuring now that's what I was supposed to try before I mounted the sponge but life. If it wasn't for you guys telling me how ugly that nozzle is I might allow this to continue longer 😄

            I managed to find original silicone sheet I designed that wiper for. Thin 0.5mm one, I doubled it up and put there. It's nothing special, just works 😄 .. I'll upload new script later, tweaking it up, getting inspiration from @mwolter 🙂

            1 Reply Last reply Reply Quote 0
            • arhiundefined
              arhi
              last edited by arhi

              if !move.axes[0].homed || !move.axes[1].homed 
                echo "X and Y axes not homed, aborting the wipe"
                M99
              
              if state.currentTool < 0
                echo "No tool loaded, aborting the wipe"
                M99
              
              if heat.heaters[tools[state.currentTool].heaters[0]].current < 200
                echo "Extruder too cold, no point wiping, aborting the wipe"
                M99
              
              ; Drop all motor currents down
              M400
              M913 X30 Y30 Z25
              
              ; relative extruder (if I understand how push/pop work in RRF 
              ; this should be returned to what it was on exit from this macro)
              M83 
              while true
                ; go around the stripe
                G0 X-110 Y40  F9000
                G0 X-135 Y40  F9000
                G0 X-135 Y{100 - iterations * 3} F9000 
                ; wipe
                G0 X-120 Y{100 - iterations * 5} F6000
                if iterations == 6
                  G1 E-3 F3000
                if iterations == 8
                  break
              
              ; go to park position
              G0 X-135 Y40  F9000
              
              ; Return all motor currents to 100%
              M400
              M913 X100 Y100 Z100
              

              I need to clean from the same side always cause the silicone is not stiff enough and I didn't want to cut it too close to the petg holder but looks like it works now 🙂

              1 Reply Last reply Reply Quote 0
              • arhiundefined
                arhi
                last edited by arhi

                actually turned it around so that the "bend" of the .5mm silicone is what i brush on .. stiff enough so I can go both directions 😄 ... this is great 🙂

                if !move.axes[0].homed || !move.axes[1].homed 
                  echo "X and Y axes not homed, aborting the wipe"
                  M99
                
                if state.currentTool < 0
                  echo "No tool loaded, aborting the wipe"
                  M99
                
                if heat.heaters[tools[state.currentTool].heaters[0]].current < 200
                  echo "Extruder too cold, no point wiping, aborting the wipe"
                  M99
                
                ; Drop all motor currents down
                M400
                M913 X30 Y30 Z25
                
                ; relative extruder move
                M83 
                
                ; X-135, Y100 
                ; X-120, Y60
                
                G0 X-110 Y40  F9000
                G0 X-135 Y40  F9000
                G0 X-135 Y100 F9000 
                
                while true
                  G0 X-135 Y{100 - iterations * 3} F9000 
                  G0 X-115 Y{100 - iterations * 5} F6000
                  if iterations == 6
                    G1 E-3 F3000
                  if iterations == 8
                    break
                
                ; go to park position
                G0 X-135 Y40  F9000
                
                ; Return all motor currents to 100%
                M400
                M913 X100 Y100 Z100
                

                What I just figured out is that I have this ~1cm of space on the left side of the bed for the whole Y length and that it would be way smarter to use a stiff piece (like @deckingman made taht milled channel) of 1x1cm square "rod" and attach it to front left and back left frame so I have stiff wiper along the whole depth of the printer... need to figure out how to do it, none of my CNC machines have working range of 30cm, maybe do it in 2 passes or just pay someone to do it for me after things go back to normal. Anyhow, this works, yeeey 🙂 and this new programable g-code is awesome 🙂

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

                  @arhi For info, I'm currently working on a better "bucket". What I mean by that is with a mixing hot end, I sometimes have to purge as well as wipe. That purged plastic has to be collected, otherwise it would end up getting onto the belt that drives the lead screws. My current "bucket" is too shallow and I have to empty it more often than I would like.

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

                  timcurtis67undefined 1 Reply Last reply Reply Quote 1
                  • timcurtis67undefined
                    timcurtis67 @deckingman
                    last edited by

                    @deckingman said in nozzle wipe:

                    @arhi For info, I'm currently working on a better "bucket". What I mean by that is with a mixing hot end, I sometimes have to purge as well as wipe. That purged plastic has to be collected, otherwise it would end up getting onto the belt that drives the lead screws. My current "bucket" is too shallow and I have to empty it more often than I would like.

                    Conditional g code on the horizon.... If bucket.purge == full then empty. 😁 😁

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

                      @mwolter said in nozzle wipe:

                      There might be a cleaner way but couldn't think of one without a modulus or "is even" operator.

                      There is a mod(a,b) function but I forgot to document it at https://duet3d.dozuki.com/Wiki/GCode_Meta_Commands#Section_Functions. I'll fix that now.

                      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

                      arhiundefined 1 Reply Last reply Reply Quote 1
                      • arhiundefined
                        arhi @dc42
                        last edited by

                        @dc42 said in nozzle wipe:

                        There is a mod(a,b) function but I forgot to document it at https://duet3d.dozuki.com/Wiki/GCode_Meta_Commands#Section_Functions. I'll fix that now.

                        great 🙂

                        how come you skipped the % operator?

                        1 Reply Last reply Reply Quote 0
                        • mwolterundefined
                          mwolter
                          last edited by mwolter

                          Simplified the conditional script a little with the use of mod (thanks @dc42) and added comments. Might help those interested in learning conditional gcode.

                          Overview: The code below moves the nozzle to the right and left of the nozzle wiper blade. Each move also moves the nozzle forward 2mm. Mod is short for modulus and returns the remainder. For instance, mod(10,4) returns 5. 10 / 4 = 2.5 or .5

                          G1 X-12 Y332 F24000                                     ; rapid to inital point outside the wipe strip
                          while true                                              ; continually run everything within this while loop
                          	if mod(iterations,2) = 0                        ; if iterations is an even number
                          		G1 X-4 Y{332 - iterations * 2} F1200    ; move to right side of wiper and forward 2 * iterations 
                          	else                                            ; if the if condition above is not met
                          		G1 X-12 Y{332 - iterations * 2}         ; move to left side of wiper and forward 2 * iterations 
                          	if iterations = 6                               ; if this is the seventh time running the while loop (0 is always the first iteration)
                          		break                                   ; exit the while loop  
                          
                          1 Reply Last reply Reply Quote 1
                          • deckingmanundefined
                            deckingman
                            last edited by

                            For completeness, here is my non-conditional gcode nozzle wipe macro........

                            G90; set to absolute coordinates
                            G1 X50 Y363 F12000; move quickly to rear left
                            G1 X80 Y352 F900; slowly right 30, forward 11
                            G1 X110 Y363; slowly right another 30 and back 11
                            G1 X140 Y352; slowly right another 30 and forward 11
                            G1 X170 Y363; back and right

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

                            arhiundefined 1 Reply Last reply Reply Quote 1
                            • arhiundefined
                              arhi
                              last edited by

                              Looking at the video how efficient @deckingman cleanup is I think we'r moving nozzle over the silicone this many times just 'cause it's easy in the loop and not 'cause it's needed :D. It's fun for sure.

                              1 Reply Last reply Reply Quote 1
                              • arhiundefined
                                arhi @deckingman
                                last edited by

                                @deckingman question, does these look like your stripe?

                                https://www.aliexpress.com/item/10000000975575.html
                                https://www.aliexpress.com/item/32953108608.html
                                https://www.aliexpress.com/item/32947574656.html

                                They are silicone stripe in different dimensions but "high temperature resistant silicone rubber foam sealing strips". The "foam" part is weird never seen silicone foam. Will this maybe be too soft? Looking at your video, your stripe seem to be rather hard

                                deckingmanundefined 2 Replies Last reply Reply Quote 0
                                • deckingmanundefined
                                  deckingman @arhi
                                  last edited by deckingman

                                  @arhi That stuff looks a bit spongy. Definitely not like the stuff I used.

                                  EdIt ....but it might work - dunno.

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

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

                                    @arhi I can't be sure but the stuff I used was more like this https://www.ebay.co.uk/itm/SOLID-SILICONE-RUBBER-STRIPS-3MMTHK-X-5MTRS-LONG-WHITE-60-SHORE-FDA-GRADE/331230136018?hash=item4d1edac6d2ⓂmM0icdmB-aIKG93gQRG6wvw. The listing is for 3mm thick (which is what I think I used), but the picture looks like 1mm thick. But it's definitely "solid".

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

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

                                      This is what I have. The picture is a bit out of focus but it's solid and about 3mm x 10mm.

                                      S2190002.JPG

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

                                      1 Reply Last reply Reply Quote 1
                                      • arhiundefined
                                        arhi
                                        last edited by

                                        @deckingman thanks, I was afraid of that "sponge" part too .. both looks spongy and title say sponge 😄 .. from what I see it is insulation strip so it's expected to be pressed between something I think...

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

                                          @arhi It might still work. Or to put it another way, I do know the solid stuff works, the spongy stuff might work but I don't know for sure if it will.

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

                                          1 Reply Last reply Reply Quote 0
                                          • mwolterundefined
                                            mwolter
                                            last edited by

                                            Here's what I've been using with success. Tested the silicone blade and 250c nozzle temps didn't affect it. Also tried a soldering iron at 350c and it couldn't touch it. Should be safe with the temperatures I plan to use for ABS, PC and Nylon.

                                            Screen Shot 2020-04-30 at 7.30.30 AM.jpg
                                            Link to Product
                                            https://www.amazon.com/gp/product/B000BQU0CQ/ref=ppx_yo_dt_b_asin_title_o04_s00?ie=UTF8&psc=1

                                            IMG_3050.jpeg

                                            The blade itself is about 2.2mm wide, has a flat edge on one side and a round key on the other. Total height is about 20mm and it's 200mm long. Enough to do several printers.

                                            Screen Shot 2020-04-30 at 7.28.08 AM.jpg
                                            The blade is easily mounted and prevented from sliding out by a wall on the opposite side. Macro starts on the side closest to the camera and zig-zags away.

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