Wiping filament procedure



  • 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



  • 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>


  • 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
    
    


  • 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.



  • @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.


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.