Navigation

    Duet3D Logo

    Duet3D

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Documentation
    • Order

    Wiping filament procedure

    Tuning and tweaking
    3
    5
    2121
    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.
    • claustro
      claustro last edited by

      Is there someone who use a wiping / cleaning procedure for the nozzle ?
      I am thinking about a series of zig zag movement over a nylon brush after the probing procedure of the bed and just before the printing process.
      I am having some problem with petg that tend to drip off from the nozzle during the print preparation and I have to clean the nozzle by hand all the time.
      I am thinking about something like this.

      heating
      sampling bed
      extruding some filament in a specific cleaning point
      zig zag cleaning
      printing

      can someone help me doing this?

      Andrea

      1 Reply Last reply Reply Quote 0
      • BMMal
        BMMal last edited by

        This is way more information than you are asking for.

        You will primarily be interested in implementing the 3 scripts that automatically get exectued with each tool change. https://duet3d.com/wiki/G-code#T:_Select_Tool and the macros that those reference to move the head to a specific location, and execute wipe moves. Do not try to use my macros verbatim as your machine and wipe zone is going to be drastically different. I think implementing FW retraction is the best way to handle retractions, priming, wiping, and controlling blobs. You do not need to set a M207 for each material as I have so long as you can find some median settings that you are happy with and place somewhere in your slicer generated Gcode or config.g.

        One thing I struggled with was figuring out how to retract and unretract after priming. That is why I switched to FW retract. If the machine has already executed one retraction, it will not execute it again until it has unretracted, even if there has been a tool change. Kisslicer places a G10 at the end of every path so when one tool finishes G10 is executed, followed by the scripts executed by the T command. Once the machine is in the wipe zone G11 gets executed in the Tpost, followed by my priming and wiping. Then G10 is issued prior to returning the the normal Gcode script which has the requisite G11 as a new tool is starting to print.

        I have my machine pretty well set up with the Gcode tabs and several FW /sys files for automatically changing parameters for materials, retractions, etc. I'm using FW retraction (G10 and G11) coupled with M207. The code sections below look like a lot, but once you get your head wrapped around it and start implementing it begins to make sense. Sometimes you just have to go through and think about the literals of what the machine is going to do, not what you expect it to do.

        I have been trying to devise a way to keep my systems more agnostic for each material and such. I think this can be achieved by moving what is currently in my Kisslicer <matl>tab into a /sys file for the specific material. Then using M98 P/sys/materialname.g to reference the specific parameters. Getting temperatures to be properly set may be a slight challenge.

        Prefix tab in Kisslicer:

        [[language]]
        ;****Start Up Script*******
        ;
        M98 P/sys/Pre-Print.g
        
        G10 P <ext>S <temp>R <temp>;Set the temperatures for the first extruder to be used
        ;
        ; Cycle through the tools to set the temps properly
        ; Make sure that the motors are still off at this point so TC scripts are not executed
        M84
        T0
        T1
        T2
        T3
        T-1
        ;
        M140 S <bed>; Set Bed/Chamber Temp
        G28			; home all macro
        ;
        G1 Z15 F1000			; Move build plate up near nozzles
        ;M190 S <bed>;Wait for bed to reach target temp
        
        G4 S30
        M116 P0:3
        ;
        ;***********End Startup Script****************</bed></bed></temp></temp></ext> 
        

        M98 P/sys/Pre-Print.g file:

        [[language]]
        ; This file is executed in the Slicer Prefix Gcode using M98 P/sys/Pre-Print.g 
        
        M84 ;Turn Motors off so tool change scripts are not exectued when initializing temps
        
        M140 S85
        
        G10 P0 S220 R30
        T0
        G10 P1 S220 R30
        T1
        G10 P2 S270 R225
        T2
        G10 P3 S270 R225
        T3
        T-1
        
        ;Reset the Flowrate Multipliers to 100% for all drives
        M221 D0 S100
        M221 D1 S100
        M221 D2 S100
        M221 D3 S100
        ;
        M220 S100	;Reset Speed Multiplier to 100%
        ;
        M98 P/sys/AccelReset.g ;Accel Reset Macro
        
        M42 P7 S255		; Turn on Vacuum Pump
        
        

        Select New Ext & Warm Tab from Kisslicer:
        The Warm Same Ext, Cool Same Ext, and Cool & Retire Tabs all just reference<matl></matl>

        [[language]]
        ;************SELECT NEW EXTRUDER*****************
        
         <matl>T <ext+0>;**************END SELECT NEW EXTRUDER***********</ext+0></matl> 
        

        A <matl>G-Code tab:</matl>

        [[language]]
        G10 P <ext>S <temp>R <temp>; S Active Temp, R standby temp
        M572 D <ext>S0.11 ;0.045;0.09-most recent
        
        ; Retract Settings S Length, R Extra L
        ; F Feedrate, T Unretract Rate, Z Z-hop
        M207 S2 R-0.05 F1980 T780 Z2
        
        M204 P780 T2000	; Set default acceleration for Print and Travel moves
        M566 X420 Y480	; Instantaneous speed delta (mm/min)</ext></temp></temp></ext> 
        

        TFree.g file:

        [[language]]
        ; Put G/M Codes in here to run when Tool 0 is going to be freed
        
        M98 P/sys/MoveToWipe.g ;Move to wipe zone
        
        G92 E0
        G1 E-1
        G92 E0
        
        

        I do not use TPre.g right now.

        TPost.g:

        ; Put G/M Codes in here to run after Tool 0 is activated

        [[language]]
        M116 P0
        
        G11
        
        G92 E0 ;Zero the new Tool
        G1 E25 F87.5
        G92 E0
        ;G1 E-0.75 F1980	;Permanently retract some filament to avoid a blob after the too change, while allowing G10/11 to still work properly.
        ;G92 E0
        
        G10 ;FW retract remember to set M207 in Material GCode in slicer and turn on G10 in FW tab of printer setttings
        
        M98 P/sys/WipeMoves.g ;Wipe Moves Macro
        
        

        Movetowipe.g:

        [[language]]
        ; Macro that move the head to the wipe zone
        
        ;G92 E0
        ;G1 E-0.5 F1800 ;retract is not necessary if the slicer has it turned on for tool changes which is nice because it also properly unretracts   (post purge) when the head gets to the starting point for the new layer.
        
        ;No need for a G10 here since the retract and lift is added before the tool change by the slicer
        
        G1 X230 Y0 F18000	; move to front center of machine left of wipe zone
        G1 Y-75			; move toward front of machine
        G1 X440 			; move right into wipe zone
        G92 E0			; reset current extruder position to zero
        
        

        Wipemoves.g

        [[language]]
        ;wipe moves
        
        G1 F18000
        
        ;G1 Y-41 F18000	; move to first row of nozzles
        ;G1 X230		; wipe left
        ;G1 Y-75		; move front
        ;G1 X440		; move right
        ;G1 Y-28		; move to middle of nozzles
        ;G1 X230		; wipe left
        ;G1 Y-75		; move to front
        ;G1 X440		; move right
        ;G1 Y-11		; move to last row of nozzles
        ;G1 X230		; wipe left
        
        G1 Y0 X230
        
        ```</matl>

        Duet Ethernet - Most likely the most recent Edge firmware
        Duet X5
        7" Panel Due V2
        Cartesian, 4 Nozzles with Flex3Drives, Heated Chamber, Simple Switch Filament Sensing

        1 Reply Last reply Reply Quote 0
        • BMMal
          BMMal last edited by

          Here is what the startup and tool change section of a Gcode file looks like then. The macros take care of the magic not shown here:

          [[language]]
          ; *** G-code Prefix ***
          ;
          ;****Start Up Script*******
          ;
          M98 P/sys/Pre-Print.g
          G10 P0 S275 R275	;Set the temperatures for the first extruder to be used
          ;
          ; Cycle through the tools to set the temps properly
          ; Make sure that the motors are still off at this point so TC scripts are not executed
          M84
          T0
          T1
          T2
          T3
          T-1
          ;
          M140 S81		; Set Bed/Chamber Temp
          G28			; home all macro
          ;
          G1 Z15 F1000			; Move build plate up near nozzles
          ;M190 S81			;Wait for bed to reach target temp
          G4 S30
          M116 P0:3
          ;
          ;***********End Startup Script****************
          ;
          ; *** Main G-code ***
          ;
          ; BEGIN_LAYER_RAFT z=0.175 z_thickness=0.250
          ;
          ; *** Selecting and Warming Extruder 1 to 275 C ***
          ;************SELECT NEW EXTRUDER*****************
          G10 P0 S275 R275	; S Active Temp, R standby temp
          M572 D0 S0.06
          ;
          ; Retract Settings S Length, R Extra L
          ; F Feedrate, T Unretract Rate, Z Z-hop
          M207 S2 R-0.15 F1800 T1800 Z2
          ;
          M204 P2000 T2000	; Set default acceleration for Print and Travel moves 1800 2250
          M566 X950 Y950	; Jerk speeds mm/minute (instantaneous change) 600 600 100 80
          T0
          ;**************END SELECT NEW EXTRUDER***********
          ;
          ;
          ;
          ; 'Raft Path', 4.1 [feed mm/s], 23.5 [head mm/s]
          G1 X306.727 Y75.841 Z0.175 E0 F18000
          ; trigger prime
          G11
          ; head speed 23.529411, filament speed 4.115942, preload 0.000000
          G1 X306.859 Y75.709 E0.03265 F1411.8
          G1 X307.255 Y75.313 E0.09793
          
          

          Duet Ethernet - Most likely the most recent Edge firmware
          Duet X5
          7" Panel Due V2
          Cartesian, 4 Nozzles with Flex3Drives, Heated Chamber, Simple Switch Filament Sensing

          1 Reply Last reply Reply Quote 0
          • Yonkiman
            Yonkiman last edited by

            Instead of a brush, take a look at this wiping method: https://youtu.be/E0y7x5uajUM?t=4m18s

            Seems better than a brush because it's self-cleaning and wiped filament shouldn't accumulate anywhere except the trash can.

            1 Reply Last reply Reply Quote 0
            • BMMal
              BMMal last edited by

              @Yonkiman:

              Instead of a brush, take a look at this wiping method: https://youtu.be/E0y7x5uajUM?t=4m18s

              Seems better than a brush because it's self-cleaning and wiped filament shouldn't accumulate anywhere except the trash can.

              A wiper and a steel brush is how Stratasys has been doing this for years. I am using a thin piece of PTFE with a brass brush behind it. I have a bin that catches the purgings. An important part is extruding enough material so that it weighs enough and easily detaches from the nozzle rather than getting bunched up around and stuck to it.

              Duet Ethernet - Most likely the most recent Edge firmware
              Duet X5
              7" Panel Due V2
              Cartesian, 4 Nozzles with Flex3Drives, Heated Chamber, Simple Switch Filament Sensing

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