RE: Oozing nozzle while doing bed leveling?
Then trying to find that case statement again I come across this tooltip: so where is the list of all these placeholder names we can use?
def->tooltip = L("This custom code is inserted at every layer change, right before the Z move. "
"Note that you can use placeholder variables for all Slic3r settings as well "
"as [layer_num] and [layer_z].");
RE: Oozing nozzle while doing bed leveling?
M109 Sxx waits for the temp to increase or decrease to 160
I wonder if there's a way to use an if statement to accomplish the same thing, such as "if 'hot end temp' " < 160 then M109 S160". I don't know what variables are available in gcode, so I am just paraphrasing the logic here...
I'm not sure if that will work. AFAIK (though I could be wrong) all the variable substitution magic that we do in Slic3r and Plicer (or other slicers that support variable substitution) are substituted at the "generate g-code" level. I don't know if there are any possible ways to use a substitution variable for "current process value", that would have to be something supported in the printer's firmware.
See my (limited) designs on:
Printables - https://www.printables.com/@Sembazuru
Thingiverse - https://www.thingiverse.com/Sembazuru/designs
RE: Oozing nozzle while doing bed leveling?
... so where is the list of all these placeholder names we can use?
If you hover your mouse over any input box in PrusaSlicer, it will show you the corresponding config variable name. You can use any of them in your gcode by placing them inside square brackets "[]". This doesn't mean that it's going to be useful to use them. Also keep in mind that these are resolved at slice time, not print time. In other words, you can use some limited logic to insert different gcode based on settings, but not print-time data.
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
RE: Oozing nozzle while doing bed leveling?
So i feel like this post turned into g-code madness 😀 so here's the picture of how much filament my printer manages to leak out in 30 seconds or so after doing a simple preheat.
The thing is it just doesn't stop at all and by the time bed leveling is done there is a blob of filament on the nozzle. Infact there is so much filament the purging pass it does on the start can't get rid of it and the leftover filament on the nozzle messes with the first layer.
RE: Oozing nozzle while doing bed leveling?
So i feel like this post turned into g-code madness 😀 so here's the picture of how much filament my printer manages to leak out in 30 seconds or so after doing a simple preheat.
Did you try the 2 step warmup process? Also what nozzle temp are you using for the 1st layer?
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
RE: Oozing nozzle while doing bed leveling?
So i feel like this post turned into g-code madness 😀 so here's the picture of how much filament my printer manages to leak out in 30 seconds or so after doing a simple preheat.
Probably because the only way to eliminate the blobs is to change the startup g-code to one that does a 2 stage warmup.
Bobstro has his working well. Mine, which is similar, also does a two stage warming and also prevents the issue. Just go ahead and change your Printer Settings/Custom G-code/Start g-code. You won't fix the problem otherwise.
M83 ; extruder relative mode
G28 W ; MUST FIRST home all without mesh bed level or else risk nozzle crash!
G0 X70 Y70 Z0.2 F2000; PINDA warms faster near bed
M140 S[first_layer_bed_temperature] ; set bed temp
M104 S160 ; preheat extruder to no ooze temp to help warm PINDA
M190 S[first_layer_bed_temperature] ; wait for bed temp
M109 S160 ; wait for extruder temp
M860 S36 ; wait for PINDA temp. For most stable PINDA temp during mesh, set temp here 1-2 deg below your actual PINDA temp at end of mesh cal.
M104 S100 ; drop extruder to lower temp to minimize PINDA temp rise during mesh
G80 N7 R1 ; mesh bed leveling with extra points but this requires 3.6.0c firmware
G1 Y-3.0 F1000.0 ; go outside print area
G92 E0.0
G1 Z3 ; raise head safely clear of bed before heating extruder
M104 S[first_layer_temperature] ; we heat extruder AFTER mesh to minimize ooze
M109 S[first_layer_temperature] ; wait for extruder temp
G1 Z0.7 ; move slightly above bed for easy clean intro line
G1 X60.0 E9.0 F1000.0 ; intro line
G1 X100.0 E12.5 F1000.0 ; intro line
G1 E-0.8 F2100; bobstro anti-stringing retract and wipe
G1 X99.0 E0 F1000.0 ; -1mm intro line @ 0.00
G1 X110.0 E0 F1000.0 ; +10mm intro line @ 0.00
G1 Z0 ;lower head back to normal Z after intro line
G92 E0.0
M221 S{if layer_height==0.05}100{else}95{endif}
RE: Oozing nozzle while doing bed leveling?
So i feel like this post turned into g-code madness 😀 so here's the picture of how much filament my printer manages to leak out in 30 seconds or so after doing a simple preheat.
The thing is it just doesn't stop at all and by the time bed leveling is done there is a blob of filament on the nozzle. Infact there is so much filament the purging pass it does on the start can't get rid of it and the leftover filament on the nozzle messes with the first layer. So this is how much filament is extruded:
The fact your filament is probably saturated with moisture and is sputtering as it oozes is something you should consider.
But it is also a fact that keeping the nozzle cool until needed (with gcode :~) is a good idea. It prevents several nuisance issues from being nuisances. And here is my method, which includes preheating the PINDA to ensure layer 1 consistency:
M115 U3.7.1 ; tell printer latest fw version
G90 ; use absolute coordinates
M83 ; extruder relative mode
; preheat things to a low temp, get nozzle plastic mushy before driving into the bed with G28
M140 S[first_layer_bed_temperature] ; set bed temp
M109 S185 ; wait for extruder temp
G28 W ; home all without mesh bed level
; soak PINDA then level
G0 X50 Y50 Z1 F3000; this is a good PINDA heating position
M190 S[first_layer_bed_temperature] ; set & wait for bed temp
M860 S40 ; wait until PINDA is >= 40C
G80 N7 R5; mesh bed leveling
; heat to extrude temp
G0 X0 Y-3.0 Z10 F3000; this is a good nozzle heating position
M109 S[first_layer_temperature] ; set & wait extruder temp
; purge
G1 Y-3.0 Z0.15 F1000.0 ; go outside print area
G92 E0.0
G1 X60.0 E9.0 F1000.0 ; intro line
G1 X100.0 E12.5 F1000.0 ; intro line
G92 E0.0
M221 S{if layer_height<0.075}100{else}95{endif}
; Some examples
;
; M104 S ; set extruder temp
; M140 S ; set bed temp
; M109 S ; wait for extruder temp
; M190 S ; wait for bed temp
; layer_height
; layer_z
... ymmv
RE: Oozing nozzle while doing bed leveling?
Back to the filament ooze issue: your photo is showing clear signs of moisture contamination: the pits and bubbles are caused by water sputtering out of the melt. You are not the only person who suffers with moisture absorption. Search for the threads on filament dryers. Many use food dehydrators with good outcomes. Some filaments are worse than others, but all filament we use sucks water from the air and impacts our print experience.
RE: Oozing nozzle while doing bed leveling?
Even fresh out of factory sealed vacuum bag, filament can be wet. Here is Polymax PC fresh out of factory sealed bag and after drying in dehydrator.
Just to clarify, these are printed fresh, and printed again after different amounts of drying. These are not the printed object after drying.
RE: Oozing nozzle while doing bed leveling?
Lol - this is exactly why I sort of hate FDM printing. I don't have the patience to do these sorts of tests, plus test results like these prove that so many things affect a print it is often impossible to "fix" the right problem the first time. Kind of like editing a post.
That's a great image Guy. Thanks for posting.
RE: Oozing nozzle while doing bed leveling?
@jack
I have been dealing with significant oozing at startup also and posted in another forum. I have done some programming in my 50yrs of working, but not in g-code, so I am starting from scratch. All I want at this point is to stop the oozing at startup. I can delve deeper in the future.
I have looked through bobstro’s code and yours, but they seem to be missing something. I don’t see that the filament is retracted when the softening temp is reached. Maybe that is not the way the code works.
I also have a Lulzbot Mini which uses the nozzle tip to touch the bed for leveling. It has to clean the tip before this process. The procedure is
1. Raise temp to 145ºC (PLA)
2. Retract filament about 10mm
3. Wipe nozzle on pad
4. Heat up to print temp (& bed)
5. Extrude back the filament and Print, etc.
It seems to me that retracting the PLA at about 145ºC has several advavntages. First, it is soft enough to retract, and second, it is still stiff enough to pull the residue from the nozzle tip. I don’t know a magic number, but I think 10-15mm would be a good number.
The 10-15mm is returned just before the prime line.
I don’t know the command for
If Temp = 145, then E -15.
Also, the best place to insert the return extrusion, E 15.
Any help would be appreciated.
BTW, a bed temp of 70ºC (/60ºC) seems to have solved all my first layer adhesion problems.
RE: Oozing nozzle while doing bed leveling?
If you have a mk3 (which I recall you posting a picture of)then the MAXIMUM retraction is around 2mm. 10mm is only really suitable for Bowden setups. If you retract more then you risk pulling the filament up and it solidifying which will cause a filament jam.
With Bobs start up code where the filament is heated to 160 before levelling it is just to make sure the filament isn’t hard, as the nozzle doesn’t actually touch the bed for levelling on the mk3 then it doesn’t matter. Any tiny bit of filament that may be there is removed when you do the purge/prime line.
Just try Bobs startup as is and see if it works for you. If you don’t have a mk3 then my apologies, if you could provide details about it’s hardware and what you currently have in your start up then maybe someone could post a modified version.
If you are familiar with code then gcode barely qualifies, there’s not a lot to actually learn. There are no conditionals for the actual gcode themselves, although there are a few you can add into the slicer itself but those are pretty simple.
for the sequence you mentioned then
M104 S145
M109 S145 ; wait for extruder temp to reach target of 145
G1 E -15; moves extruder back 15mm
Y0u would then do your mesh levelling etc and then afterwards you would add the G1 E 15 to feed 15mm back before you start your purge line. However as I mentioned before the maximum retraction on a mk3 shouldn’t exceed 2mm so if you do this you do it at your own risk.
RE: Oozing nozzle while doing bed leveling?
Wow, everyone--perfect timing on wet filament subject. I see that it's been about a year since I last posted in this thread, and I must first report that my Prusa Original MK3S printer is still working perfectly, after literally at least 1000 prints of all sizes. Proud to be a kit builder. I swear it's the most reliable thing in my house. I never have to think about it: design an item (I use FreeCAD), fire up the printer and print it. Having said that...
I just completed an Arduino project to make a humidity controller for a filament storage container I'm making. Pic is the Arduino display screen (3d print, of course) mounted in a cardboard box I've been using as a prototype for development. WiFi connected, and it displays data on a website (2nd pic). Red buttons are for adjusting the humidity set point. Final product will be in Cherry with glass doors, and maybe I'll be able to sneak it into my office past my wife. Using just a heater now and it gets down to about 34%, but I just ordered a small Peltier dehumidifier from Amazon for $24, to see if I can get lower.
Probably overkill to have a filament humidor here in Orange County, CA, where the relative humidity is rarely over 50%, and PLA and PETG seem to be OK with that. But I have a Nylon project coming up, and that has lit the fire.
I'm still using the no-ooze G-Code I posted above (thanks again, bobstro), and it continues to work just fine for me. Haven't done anything special with retraction.
...there are only 10 kinds of people in this world--those who know binary and those who don't...
RE: Oozing nozzle while doing bed leveling?
Retracting before leveling handles filament in the nozzle oozing due to pressure as it heats, but does nothing for any accumulated filament outside the nozzle. Some Taz models have a wipe pad that can deal with external material, but the Prusa Mk3 does not.
Other printers have the ability to move the nozzle outside the bed area so startup gcode can extruder some filament at the start of a print and it will be pulled away when positioning to print the prime line. I use this in my custom start gcode for my Artillery Sidewinder X1. (See line 29.)
The Prusa i3 Mk3 can move to X0 Y-5 which gives room for printing the prime line outside the normal print area, but this still positions the nozzle over the PEI print surface.
For this reason, I've gone with positioning the nozzle at the start of the prime line position for final nozzle heating, then extruding a small blob of filament in my Mk3 custom start gcode. (See line 53.) The blob traps all nozzle ooze and debris before the prime line is printed.
In any case, you need to modify your start gcode or at least copy and paste example gcode into the appropriate box and save it as a custom printer profile. I linked to sample profiles previously.
Interestingly enough, a quick google for "Lulzbot nozzle ooze" yields many similar discussions in the Lulzbot forums, with most problems resolved by... modifying the start gcode. Some were describing problems with the long retract causing a dry nozzle at the start of a print and resulting failures. No one answer will satisfy all needs.
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
RE: Oozing nozzle while doing bed leveling?
[...] I just completed an Arduino project to make a humidity controller for a filament storage container I'm making. Pic is the Arduino display screen (3d print, of course) mounted in a cardboard box I've been using as a prototype for development. WiFi connected, and it displays data on a website (2nd pic).
This looks great. I've got a cheap thermometer, but would like to build a similar sensor to monitor from afar. Was this a custom project, or based off an open source project?
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
RE: Oozing nozzle while doing bed leveling?
@bobstro
Was this a custom project, or based off an open source project?
I guess you would call this a custom Arduino project, in that I did not exactly follow instructions I saw posted anywhere. I got into Arduino about 18 months ago, after my 4 year old grandson asked me to make his LEGO train switches to be remote control switches, like the ones he saw on my Lionel train setup. I came across a $29 Arduino learning kit that included an Arduino, a small IR remote control and a tiny servo, and I was on my way. All the mechanical parts for that project were made out of LEGO blocks, but I lusted for a better way to make similar parts. My solution was a 3d printer, and I bought my Prusa mk3s kit four months later.
Rather than high-jacking this thread any further, I'll start a new one titled "Filament Storage Cabinet with Arduino IoT Controller". I'll post a better description of my project with more pictures there. The Arduino community has the Open Source spirit, similar to what I see in the 3d printer community. I'm certainly willing to share any and all of the details of my project. There are many alternative ways to achieve the same functionality, and some would be much easier to implement than the path I've chosen. Hope to see you on that thread...
...there are only 10 kinds of people in this world--those who know binary and those who don't...
RE: Oozing nozzle while doing bed leveling?
@neophyl
Thanks for the reply and code.
Unfortunately I have found that Lulzbot and Prusa seem to get things going, then head for higher pasture, leaving some things half baked. My Lulzbot Mini shipped with defective wiring and a broken filament clamp, which of course, I couldn’t diagnose correctly until after the warranty was gone. It is also very difficult to remove an object from the rigid print bed. The MK3 blew the power supply when I printed PETG, and melted part of the extruder mount at the bottom, which is also PETG. That also happened just past the warranty. The nozzle fan on the MK3 could be easily rotated to minimize the head width and allow closer object spacing, etc, etc. While ingenuity is high, poor quality control / quality engineering seem to be lacking in these companies. There are many posts with these and other problems on the web. Science, invention, engineering, manufacturing, and quality control have been my career for 50 yrs. I tried to leave no stone unturned for better performance and durability. Rant over, now back to the subject.
Nozzle oozing seems to be a universal problem on many printers. However, the latest Lulzbot Cura seems to have tweaked the oozing/retraction better and I have had no problems with it so far.
I see there are several opinions about ooze control. One says to hold the nozzle temp around 160 during startup to minimize oozing, then do blob control. I thought the prime line would do that without anything extra. The other idea is to retract, then un-retract on the prime line.
There is no reason they won't work together. While many things may work satisfactorily, my thesis is that Prusa is negligent in not implementing at least one of them. It was not on my agenda to take a month to learn the details of G-code programming.
The idea that a 10mm retraction would cause internal problems is dispelled by the Lulzbot technique, which does just that @ 145 with no problems. However, if Prusa only allows 2mm, then maybe 10 = 2+2+2+2+2. The actual best retraction value is TBD.
I did implement bobstra’s code a while back, (cut and paste), but it took too much startup time, especially when I can only print one spiral at a time and I need 6 of them. That equals about a half hour of dead time to get six tiny objects with 1 min print time each.
So, bottom line is I will try - partial heating / a simple retraction / leveling / raise extruser temp / print prime line. The retraction and prime line can be used to cover both techniques above and add very little time to the startup.
RE: Oozing nozzle while doing bed leveling?
[...] The idea that a 10mm retraction would cause internal problems is dispelled by the Lulzbot technique, which does just that @ 145 with no problems.
Dispelling implies testing. The E3D V6 has a transition zone length of about 2mm. If you retract more than this, you are pulling softened PLA up into the cold end and are likely to encounter rather nasty jams. I'm curious to see your results.
[...] I did implement bobstra’s code a while back, (cut and paste), but it took too much startup time, especially when I can only print one spiral at a time and I need 6 of them. That equals about a half hour of dead time to get six tiny objects with 1 min print time each.
You can comment out the M860 PINDA warmup wait time to speed things up. It may not be necessary or useful for newer PINDA probes, although even bed heating is also a consideration.
You may still want a trap (blob) in the prime line to trap accumulated filament on the outside of the nozzle that won't be affected by retraction.
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
RE: Oozing nozzle while doing bed leveling?
@bobstro
I am not sure I follow your logic. If I want to change filaments, I set the Extr temp to (PLA) and the MK3 spits it out. Then I put cold PLA in and it drives it out the nozzle. This should duplicate the problem you state, but seems to work with no problem.
I would not extrude the makeup filament until the nozzle is up to temp. Your point is taken, we will see.