Notifications
Clear all

automatically clean ooze drool from nozzle before printing  

Page 1 / 2
  RSS
dimprov
(@dimprov)
Noble Member
automatically clean ooze drool from nozzle before printing

Anyone have a surefire way to clean all oozement drool from the nozzle before starting printing? The initial priming wipe doen't always get it.

I did find this clever invention which looks like it would do the business, but it's for a delta printer:

The reason I want it is so that I can launch a print remotelyy without having to hover over the printer, removing random bit of extrusion to keep them from spoiling the print.

Posted : 03/06/2018 6:00 am
gaston.d3
(@gaston-d3)
Reputable Member
Re: automatically clean ooze drool from nozzle before printing

Curious to hear about this as well since cleaning up oozed material during 9 point calibration is getting quickly old. One thing I read on this forum is that you can play with gcode so that you heat the bed and the nozzle to some lower temperature, then do the calibration and then keep heating up nozzle to desired temp. I haven't tried that yet so cannot tell how good, effective or possible side effects it has (if any).

Posted : 03/06/2018 6:44 am
dimprov
(@dimprov)
Noble Member
Topic starter answered:
Re: automatically clean ooze drool from nozzle before printing

Here's a different one that, at least notionally, may be a better match for the Prusa I3 MK3:

Posted : 03/06/2018 11:06 am
You liked
JoanTabb
(@joantabb)
Moderator
Re: automatically clean ooze drool from nozzle before printing

Hi David,

the first one is interesting, but likely to leave junk on the buildplate, which would get integrated into the model if you start a model remotely...

the second one has less scope for leaving junk on the buildplate, but is not suited to the prusa, as it needs space outside the build area.

I guess a possible solution would be a moveable tray based brush, probably towards the front of the buildplate/frame.

perhaps attached to the Left hand X axis bearing / motor mount assembly so that it does not add to the moving mass of the Y axis. in this position it could be used for both initial prime and colour change instances.

however you would need to change the start code and colour change code to make use of the function.

there would be limits to the maximum height at which this could be used because of build volume constrictions

the tray and brush could be swung into position, brushed and catch the junk, and swung out of the way!

Good luck
regards Joan

I try to make safe suggestions,You should understand the context and ensure you are happy that they are safe before attempting to apply my suggestions, what you do, is YOUR responsibility. Location Halifax UK...
Posted : 03/06/2018 12:04 pm
dimprov
(@dimprov)
Noble Member
Topic starter answered:
Re: automatically clean ooze drool from nozzle before printing

I'd be willing to sacrifice part of my build volume. It wouldn't take much space, and could maybe be fit in just above the priming line, which is lost space anyway. I think it's just a matter of attaching a brush upside down to the build bed and running some g-code. Should be simple. By controlling the speed and direction of brushing, I'm betting the bristles of the brush will catch and hold the drool, rather than fling bits of crud onto the bed. That would be true if one keeps the nozzle and hot end clean before starting a print. Presently, I have a silicone sock on mine, which hopefully will clean off easier anyway. If one keeps the brush small, the inertial mass of the table won't be changing by much. A small nylon brush should do, as I'm using filaments with a lower melt temperature than nylon. Probably just hot glue it to the bed, and so it could be removed later if desired. Or, more conservatively, print a platform, and glue it to that. That way you know for sure you can remove it later. 😀

I'll issue the challenge: anyone here want to try building one?

Posted : 03/06/2018 2:38 pm
motocoder
(@motocoder)
Trusted Member
Re: automatically clean ooze drool from nozzle before printing

I changed the startup g-code in S3D and Slic3r to heat the bed, start heating the nozzle temp to 170, wait for PINDA temp to reach 35, then do the mesh bed leveling. Then it moves the print head over to the purge line start and finishes heating the nozzle to the final temp. I get good z calibration and no dribbles on the bed. The reason it doesn't dribble molten filament during bed leveling is because 170 is below the melting point for most filaments.

Posted : 04/06/2018 5:26 am
bill.f5
(@bill-f5)
Trusted Member
Re: automatically clean ooze drool from nozzle before printing

Care to share your startup gcode for both slicers?

Proud owner of a Mk3 that is producing very nice prints. There is room for improvement as I learn more about it, but so far I am very happy....
Posted : 04/06/2018 5:56 am
dimprov
(@dimprov)
Noble Member
Topic starter answered:
Re: automatically clean ooze drool from nozzle before printing

I found a simple answer. I do a 10mm retraction at the end of a print, and then there's zero oozing at the start of the next print. At the start of the next print, I first heat the bed, then I do the mesh leveling, and then finally I heat the hot-end and do a purge line. The sequencing matters, because the hot end is not left to sit oozing while the bed is heated.

Problem solved!

Posted : 04/06/2018 3:33 pm
motocoder
(@motocoder)
Trusted Member
Re: automatically clean ooze drool from nozzle before printing


Care to share your startup gcode for both slicers?

Sure, here is what I have for Slic3r PE. Note that most of this came from the original setting (from Prusa). If it's not obvious what's different, let me know and I will enumerate it.


M115 U3.2.1 ; tell printer latest fw version
M201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2
M203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec
M204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)
M205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec
M205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec
G90 ; use absolute coordinates
M83 ; extruder relative mode
G28 W ; home all without mesh bed level
G0 X50 Y50 Z0.15 ; this is a good PINDA heating position
M140 S[first_layer_bed_temperature] ; set bed temp
M104 S170 ; Heat Extruder, use lower temp to avoid oozing
M860 S35 ; wait until PINDA is >= 35C
G28 W ; home all without mesh bed level
G80 ; mesh bed leveling
M190 S[first_layer_bed_temperature] ; wait for bed temp
M109 S[first_layer_temperature] ; wait for extruder temp
G92 E0.0 ; Zero extruder
G1 Y-3.0 F1000.0 ; go outside printer area
G1 X100.0 E9.0 F1000.0 ; intro line
G1 X220.0 E12.5 F1000.0 ; intro line
G1 E-0.8000 F1500
G1 Z0.800 F600
M221 S{if layer_height<0.075}100{else}95{endif}

And here is Simplify3D. I've copied some of the code from Slic3r PE there (the bit setting max accelerations, feed rates, jerk, etc.), but not the bit at the end that sets an additional extrusion multiplier of 0.95.

M115 U3.2.1 ; tell printer latest fw version
M201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations
M203 X200 Y200 Z12 E120 ; sets maximum feedrates
M204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)
M205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits
M205 S0 T0 ; sets the minimum extruding and travel feed rate
M83 ; extruder relative mode
G28 W ; home all without mesh bed level
G0 X50 Y50 Z0.15 ; this is a good PINDA heating position
M104 S170 T0 ; Lower temperature to prevent ooze
M140 S[bed1_temperature] ; this will take the layer 1 temperature for bed 0
M860 S35 ; wait until PINDA is >= 35C
G28 W ; home all without mesh bed level
G80 ; mesh bed leveling
G1 F1000.0 ; set feed rate
G1 Y-3.0 ; prepare to prime
M109 S[extruder0_temperature] T0 ; wait for extruder temp
G92 E0.0
G1 E-5 ; retract to avoid blobs on the bed
M190 S[bed1_temperature] ; wait for bed temp
G1 E8 ; bring back the filament
G1 X60.0 E9.0 F1000.0 ; intro line
G1 X220.0 E12.5 F1000.0 ; intro line
G92 E0.0

Posted : 04/06/2018 3:36 pm
dimprov
(@dimprov)
Noble Member
Topic starter answered:
Re: automatically clean ooze drool from nozzle before printing



Care to share your startup gcode for both slicers?

Sure, here is what I have for Slic3r PE. Note that most of this came from the original setting (from Prusa). If it's not obvious what's different, let me know and I will enumerate it.


M115 U3.2.1 ; tell printer latest fw version
M201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2
M203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec
M204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)
M205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec
M205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec
G90 ; use absolute coordinates
M83 ; extruder relative mode
G28 W ; home all without mesh bed level
G0 X50 Y50 Z0.15 ; this is a good PINDA heating position
M140 S[first_layer_bed_temperature] ; set bed temp
M104 S170 ; Heat Extruder, use lower temp to avoid oozing
M860 S35 ; wait until PINDA is >= 35C
G28 W ; home all without mesh bed level
G80 ; mesh bed leveling
M190 S[first_layer_bed_temperature] ; wait for bed temp
M109 S[first_layer_temperature] ; wait for extruder temp
G92 E0.0 ; Zero extruder
G1 Y-3.0 F1000.0 ; go outside printer area
G1 X100.0 E9.0 F1000.0 ; intro line
G1 X220.0 E12.5 F1000.0 ; intro line
G1 E-0.8000 F1500
G1 Z0.800 F600
M221 S{if layer_height<0.075}100{else}95{endif}

And here is Simplify3D. I've copied some of the code from Slic3r PE there (the bit setting max accelerations, feed rates, jerk, etc.), but not the bit at the end that sets an additional extrusion multiplier of 0.95.

M115 U3.2.1 ; tell printer latest fw version
M201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations
M203 X200 Y200 Z12 E120 ; sets maximum feedrates
M204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)
M205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits
M205 S0 T0 ; sets the minimum extruding and travel feed rate
M83 ; extruder relative mode
G28 W ; home all without mesh bed level
G0 X50 Y50 Z0.15 ; this is a good PINDA heating position
M104 S170 T0 ; Lower temperature to prevent ooze
M140 S[bed1_temperature] ; this will take the layer 1 temperature for bed 0
M860 S35 ; wait until PINDA is >= 35C
G28 W ; home all without mesh bed level
G80 ; mesh bed leveling
G1 F1000.0 ; set feed rate
G1 Y-3.0 ; prepare to prime
M109 S[extruder0_temperature] T0 ; wait for extruder temp
G92 E0.0
G1 E-5 ; retract to avoid blobs on the bed
M190 S[bed1_temperature] ; wait for bed temp
G1 E8 ; bring back the filament
G1 X60.0 E9.0 F1000.0 ; intro line
G1 X220.0 E12.5 F1000.0 ; intro line
G92 E0.0

Your code says to wait until the PINDA is >35C. Is the PINDA getting warmed from the hot end or the heated bed? In my code I move the head to z+50 so that the PINDA won't get overheated by the bed, which is in some sense the opposite of the concern you seem to have. What exactly is the optimal temperature range for the PINDA anyway?

Posted : 04/06/2018 4:02 pm
bill.f5
(@bill-f5)
Trusted Member
Re: automatically clean ooze drool from nozzle before printing


Sure, here is what I have for Slic3r PE. Note that most of this came from the original setting (from Prusa). If it's not obvious what's different, let me know and I will enumerate it.

Thanks Mathew

Proud owner of a Mk3 that is producing very nice prints. There is room for improvement as I learn more about it, but so far I am very happy....
Posted : 04/06/2018 4:29 pm
motocoder
(@motocoder)
Trusted Member
Re: automatically clean ooze drool from nozzle before printing


Your code says to wait until the PINDA is >35C. Is the PINDA getting warmed from the hot end or the heated bed? In my code I move the head to z+50 so that the PINDA won't get overheated by the bed, which is in some sense the opposite of the concern you seem to have. What exactly is the optimal temperature range for the PINDA anyway?

As you probably know, the PINDA probe has a strong temperature dependency. There is code in the firmware to adjust the PINDA values using the measured temperature. This works great, but only if it's been calibrated accurately and if the PINDA is within some temperature range. You can manually calibrate it, and then store the values in the firmware, but I haven't had the time to go through that yet.

A partial workaround, barring the aforementioned temperature calibration, is just to always run your mesh bed leveling at the start of the print when the PINDA is at some consistent temperature. Because the PINDA does not read accurately at temperatures below some threshold, 35C was chosen as a value that is safely above that threshold. The firmware does not provide a g-code to wait for the PINDA to cool, only one to check that it's temperature is at or above some value.

So the process that I am using is: before a print, check the PINDA temp in the Support menu, to ensure it's below 35C. Then start the print. Those g-codes will park the head close to the bed, so the PINDA will heat up fairly quickly. Once it hits 35C, it does the mesh bed leveling, and then moves over to a safe area to finish heating the nozzle.

I should also point out that the idea and g-codes to wait for PINDA to heat up came from another thread here. There was a lot of really good work from a couple of forum members to nail all that down. Can't find it at the moment, but it's a huge thread about Live-Z adjust.

Posted : 04/06/2018 7:58 pm
Martin Wolfe
(@martin-wolfe)
Reputable Member
Re: automatically clean ooze drool from nozzle before printing

So based on the 10mm retraction at the end of the print that David was suggesting the end g-code for Slic3r becomes:-
G4 ; wait for print moves to finish
M221 S100
M140 S0 ; turn off heatbed
G1 E-10 ; Retract filament by 10mm to avoid ooze during hot end cool down
G4 ; wait for retraction to finish
M104 S0 ; turn off temperature
M107 ; turn off fan
G1 X0 Y200; home X axis
M84 ; disable motors

Regards,
Martin

Martin Wolfe...
Posted : 04/06/2018 10:56 pm
dimprov
(@dimprov)
Noble Member
Topic starter answered:
Re: automatically clean ooze drool from nozzle before printing

My Simply3D code (which is a hack of code posted by shockofmight on the Simply3D forum) is:

Starting Script:

M500 ; create config-override
G1 Z50 ; raise PINDA so that it's not effected by the heating of the heat bed
M140 S[bed0_temperature] ; bed temp
M190 S[bed0_temperature] ; wait for bed temp
G80 ; run mesh bed leveling routine
G1 Z50 ; raise PINDA so that it's not effected by the heating of the heat bed
M106 S[fan_speed_pwm] ; fan speed
M104 S[extruder0_temperature] T0 ; nozzle temp
M109 S[extruder0_temperature] T0 ; wait for nozzle temp
G28 W ; home all axes without mesh bed leveling
G1 Y-3.0 F1000.0 ; prepare to prime
G92 E0 ; reset extrusion distance
G1 X60.0 E20.0 F1000.0 ; priming
G1 X200.0 E40.5 F1000.0 ; priming
G92 E0
G1 E-1.0000 F2400
G1 Z0.600 F1000

Ending Script:

G92 E0 ; prepare to retracgt
G1 E-10 F1800 ; retract 10mm
G4 ; wait
M106 S0 ; turn off cooling fan
M104 S0 ; turn off extruder
M140 S0 ; turn off bed
G1 X0 Y200 Z50; part removal
M84 ; disable motors

It does not presently account for measured PINDA temperature, so there's room for improvement. Nonetheless, I've finally reached the nirvana of "fire and forget" for starting a print job. I don't need to be there, hovering over the Prusa I3 MK3, to ensure a good start anymore. Instead, I've been able to start it from a different part of the house and just come back when it's finished. That may eventually bite me, but so far it hasn't.

FWIW, I'd prefer to go to a z-height of z202 instead of z50, but I've found that if I do, then with some filaments, the filament comes off the coil, at least with using the Prusa filament holder. Maybe there exists a spool holder where that won't happen?

Posted : 05/06/2018 2:27 pm
dimprov
(@dimprov)
Noble Member
Topic starter answered:
Re: automatically clean ooze drool from nozzle before printing


So the process that I am using is: before a print, check the PINDA temp in the Support menu, to ensure it's below 35C. Then start the print.

Very clever! The only problem I see with that is that if I have an aborted print (say, the first layer was fubar and I opt to start over), or if I'm doing consecutive prints, it might be a very long wait for the PINDA temp to drop below 35C so that I can start the printing process again. Do you use external high speed fans to accelerate the cooling? Or, are you just more patient than I am? 😉

Posted : 05/06/2018 7:04 pm
gaston.d3
(@gaston-d3)
Reputable Member
Re: automatically clean ooze drool from nozzle before printing

I raise Z to about 150 (at the end of each print) and after a few minutes I have the PINDA below 35. Bed is usually at 40C by then. Room temp is around 24C.

Posted : 05/06/2018 9:12 pm
bobstro
(@bobstro)
Illustrious Member
Re: automatically clean ooze drool from nozzle before printing


I raise Z to about 150 (at the end of each print) and after a few minutes I have the PINDA below 35. Bed is usually at 40C by then. Room temp is around 24C.

How do you verify that the Z level is actually below 150 before doing this? I'd be worried about a tall print ending at say 170, then issuing this command to send the extruder into the print.

I suppose you could enable relative positioning and increase it some amount, but that would be an issue near the top of the Z axis.

Is there some way to know where you are in GCODE without having to process the file first?

My notes and disclaimers on 3D printing and miscellaneous other tech projects
He is intelligent, but not experienced. His pattern indicates two dimensional thinking. -- Spock in Star Trek: The Wrath of Khan...
Posted : 08/06/2018 12:10 am
Nikolai
(@nikolai)
Noble Member
Re: automatically clean ooze drool from nozzle before printing


I found a simple answer. I do a 10mm retraction at the end of a print, and then there's zero oozing at the start of the next print. At the start of the next print, I first heat the bed, then I do the mesh leveling, and then finally I heat the hot-end and do a purge line. The sequencing matters, because the hot end is not left to sit oozing while the bed is heated.

Problem solved!

There is one big thing with this approach. If you have a leftover from the previous print on the nozzle (even a small one), you will push hard against the heat bed. Because the nozzle is cold, plastic will not bend and might damage the PEI. So you have always make sure before starting the print, your nozzle is absolutely clean.
With a hot nozzle, it's more forgiving.

Often linked posts:
Going small with MMU2
Real Multi Material
My prints on Instagram...
Posted : 08/06/2018 1:06 am
dimprov
(@dimprov)
Noble Member
Topic starter answered:
Re: automatically clean ooze drool from nozzle before printing



I found a simple answer. I do a 10mm retraction at the end of a print, and then there's zero oozing at the start of the next print. At the start of the next print, I first heat the bed, then I do the mesh leveling, and then finally I heat the hot-end and do a purge line. The sequencing matters, because the hot end is not left to sit oozing while the bed is heated.

Problem solved!

There is one big thing with this approach. If you have a leftover from the previous print on the nozzle (even a small one), you will push hard against the heat bed. Because the nozzle is cold, plastic will not bend and might damage the PEI. So you have always make sure before starting the print, your nozzle is absolutely clean.
With a hot nozzle, it's more forgiving.

I completely agree. I've since upgraded my g-code to incorporate PJR's recommendation of heating the hot-end to 170C before doing the bed leveling, for the reason you indicated, and because if I do a reset, the retraction doesn't happen. It's only uninterrupted prints that will have had their ooze mitigated.

Posted : 08/06/2018 1:22 am
dimprov
(@dimprov)
Noble Member
Topic starter answered:
Re: automatically clean ooze drool from nozzle before printing

Epilog: The 10mm retraction sometimes wasn't enough. I switched to a 20mm retraction at the end. Works great! No oozing. 😀

Posted : 10/06/2018 1:02 am
Page 1 / 2
Share: