Cold Pull GCode by flickeringsight 3d model
3dmdb logo
Thingiverse
Cold Pull GCode by flickeringsight

Cold Pull GCode by flickeringsight

by Thingiverse
Last crawled date: 3 years, 3 months ago
OK, this isn't a model but rather a gcode script to facilitate automated cold pulls to clear out your nozzle. I use it all the time on my Ender 3 and thought others might get some good use from it as well.
What is a cold pull?
A cold pull is when filament that is embedded in the nozzle is pulled out under a low temperature sweet spot so that it completely peels away leaving the nozzle with a clean inner surface. This is good for removing clogs and residual filament.
Who is this for?
This was written for an Ender 3, however should work well for any FDM style printer but your mileage may vary. If your bed size is less than 230mm then you'll want to edit the file using a text editor and change this line:

G1 X10.1 Y200.0 Z0.3 F5000.0 ;Move to start position

The Y200.0 says to move the nozzle back 200mm, but if your bed is too small I'd say take the bed size and subtract 20 from that. So a 180mm bed size would be:

G1 X10.1 Y160.0 Z0.3 F5000.0 ;Move to start position

Right now the script is coded for pulling PLA, and I'll very likely make versions for other types of filaments.
What exactly does it do?
Inspired by Cura's pre-printing routine, this script will do a homing routine, position the nozzle at the back-left corner of the bed and wait for the bed and nozzle to come to temperature.
When the hot end is at printing temp a line is drawn to prime the nozzle, followed by a small upward movement and a pause while the hot end comes down to cold-pull temp, at which time a relatively quick 100mm retraction occurs. At that point you can pull out the filament leaving, hopefully, a completely cleared out nozzle.
Gcode in it's entirety
There's an alternate version down below, a quick and dirty variation without the primer moves.
;FLAVOR:Marlin

;Initialize
M82 ;absolute extrusion mode
M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration
M203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate
M204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration
M205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk
M220 S100 ;Reset Feedrate
M221 S100 ;Reset Flowrate
M302 S70 ;Set min extrude temp to 70

;Set Initial Temps
M140 S50 ;Set Heat Bed temperature
;M190 S50 ;Wait for Heat Bed temperature
M104 S200;Set Extruder temperature

;Home
G28 ;Home all axes
G92 E0 ;Reset Extruder

;LAYER_COUNT:1
;LAYER:0

;Print Primer Line
G1 Z2.0 F3000 ;Move Z Axis up
G1 X10.1 Y200.0 Z0.3 F5000.0 ;Move to start position
M109 S200 ;Wait for Extruder temperature
G1 X10.1 Y20 Z0.4 F1500.0 E30 ;Draw a line
G1 X10.0 Y20 Z1.4 F1500.0 ;Move up a bit
G92 E0 ;Reset Extruder

;Set Cold Pull Temp
M104 S90 ;Set Extruder temperature
M109 R90 ;Wait for Extruder temperature

;Pull It
G1 Z10.0 F1000 E-100 ;retract 100mm and pull up

;Present and Shutdown
G1 X0 Y225 F3000 ;Present print
M106 S0 ;Turn-off fan
M104 S0 ;Turn-off hotend
M140 S0 ;Turn-off bed
M84 X Y Z E ;Disable all steppers

;End of Gcode
Quick and Dirty Code
This version skips the primer routine and goes straight for the pull. If your hot-end isn't primed with filament, this may not produce a good pull.
;FLAVOR:Marlin

;Initialize
M82 ;absolute extrusion mode
M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration
M203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate
M204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration
M205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk
M220 S100 ;Reset Feedrate
M221 S100 ;Reset Flowrate
M302 S70 ;Set min extrude temp to 70

;LAYER_COUNT:1
;LAYER:0

;Set Cold Pull Temp
G92 E0 ;Reset Extruder
M104 S90 ;Set Extruder temperature
M109 R90 ;Wait for Extruder temperature

;Pull It
G1 Z10.0 F1000 E-100 ;retract 100mm and pull up

;Present and Shutdown
M106 S0 ;Turn-off fan
M104 S0 ;Turn-off hotend
M140 S0 ;Turn-off bed
M84 X Y Z E ;Disable all steppers

;End of Gcode

Tags