Oozing nozzle while doing bed leveling?  

Page 2 / 4
  RSS
Nigel
(@nigel)
Honorable Member

Latest PrusaSlicer  2.0.0 it is under Printer Tab with experts settings set. And under Custom G-code.

Nigel
Life is keeping interested and excited by knowledge and new things....
Posted : 21/06/2019 1:49 am
Tim
(@tim-m30)
Illustrious Member

Not to mention cooking filament for five minutes leaves crud in the nozzle...

It is always wise to get more than one opinion......
Posted : 21/06/2019 1:56 am
Nigel liked
Sembazuru
(@sembazuru)
Prominent Member
Posted by: james.m79

I have found that after loading the filament, if I let it set for 4-5 minutes before starting to print it will continue to ooze for a bit and then stop.  This also eliminates or at least reduces the number of little blobs left on the plate during bed leveling.

What I usually do after loading a new filament is I turn off the extruder heater. Then while it is cooling I extrude little bits (about 5mm at a time) until the extruder temperature gets close to the low end for the filament. Then I retract 1-2mm. Granted, I do have the bobstro anti-oozing start g-code in my printer preset, so the extruder doesn't heat back fully to the printing temperature until just after the mesh leveling. See: http://projects.ttlexceeded.com/3dprinting_slic3r_gcode.html#slic3r-gcode

See my (limited) designs on:
PrusaPrinters - https://www.prusaprinters.org/social/1448-sembazuru/prints
Thingiverse - https://www.thingiverse.com/Sembazuru/designs...
Posted : 21/06/2019 2:49 am
Migamix
(@migamix)
Trusted Member

before the mk3s and firmware + prusaslicer... I had that fixed, a forced high-speed retraction at the end of the print or cancel in octoprint (I only use that). that same setting doesn't work after the update, I just doubled that retraction and speed, but haven't printed in a couple of days (I know, bad miga). if that retraction update helps, I'll post here. 

it doesn't matter what filaments I use, PLA and PETg both ozze at almost 5 centimeter from the nozzle at every heatup. didn't before the update. may try some of those gcode mods.

and we’ll be saying a big hello to all intelligent life forms everywhere … and to everyone else out there, the secret is to bang the rocks together, guys....
Posted : 23/06/2019 5:29 am
jack
 jack
(@jack)
Trusted Member

I do have the bobstro anti-oozing start g-code

sembazuru... I implemented bobstro's anti-oozing code about 15 (PLA) prints ago, minus the PINDA warmup code, and it has totally solved my oozing problem. Thanks for the suggestion. I haven't seen the need for the PINDA warm-up, and I didn't like the long wait. I still get some oozing, but it mostly occurs just above the bed at the startup position of the pre-swipe, and it always gets wiped away successfully before the actual print starts.

...there are only 10 kinds of people in this world--those who know binary and those who don't......
Posted : 23/06/2019 11:37 am
bobstro
(@bobstro)
Illustrious Member

Hey guys, thanks for the nice mentions. I can't take credit for anything more than consolidating and tweaking several approaches that have evolved here over the last 18 months. The no-ooze startup is pretty well refined at this point. The wipe motion seems to have dealt with the little tails from the prime line.

I'm not sure the PINDA warmup is useful if you've completed the PINDA temperature calibration. I've kept it in the startup gcode as a "just to be sure" measure at this point, and it really only comes into play on the 1st print of a session. It doesn't tie into the oozing at all. Cutting it out is unlikely to have any adverse effects. I'll update a PINDA warmup-free version soon.

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 : 23/06/2019 6:01 pm
Sembazuru
(@sembazuru)
Prominent Member

I know this is getting a bit off topic (no oozing here, but this does relate to bed leveling. Check out this video from Thomas Sanladerer where he measures, among other things, how much the beds on several printers (including the MK3) change their geometry when heating up. Based on his results, I've come to the decision that for me anything that I can do to give the bed time to stabilize at temperature is a good thing. Thus, even though I have done the PINDA temperature calibration, I've left the PINDA warmup in the bobstro startup for my prints.

See my (limited) designs on:
PrusaPrinters - https://www.prusaprinters.org/social/1448-sembazuru/prints
Thingiverse - https://www.thingiverse.com/Sembazuru/designs...
Posted : 24/06/2019 1:02 am
jack
 jack
(@jack)
Trusted Member

Starting with bobstros no-ooze startup gcode, I eliminated the PINDA warmup, but I turn on the bed heater right up front, and don't wait for it. My motivation was to minimize the wait time between taking the nozzle to its final first layer value, and beginning the prime line. Less ooze to wipe away. By the time the nozzle reaches temp, the bed has been fully warm for a minute at least, so it probably helps the bed stay level. (code below).

The video was interesting. I started moving even small prints around the bed to even out the bed wear, and I noticed some lifting of prints when I was near the edge of the bed. Always lifted near the edge of the bed. I figured it was probably due to the bed being cooler there. Video seems to confirm that. So I insulated a 4 cm wide perimeter strip of the bed bottom with some 4 mm foam, held in place with a steel strip attracted to the magnets. Nothing scientific to report, but it does seem to be better. Here's my code...

; Last updated 20190625, by Jack
M115 U3.7.1 ; tell printer latest fw version
G90 ; use absolute coordinates
M83 ; extruder relative mode
; Set initial warmup temps
M104 S160 ; set extruder to no-ooze temp
M140 S[first_layer_bed_temperature] ; set bed first layer temp; don't wait for it
; Nozzle warmup before home to avoid driving hardened ooze into PEI bed
M109 ; wait for extruder no-ooze warmup temp before mesh bed leveling
G28 W ; home all without mesh bed level
G80 ; mesh bed leveling
G0 Z3; Raise nozzle to avoid denting bed while nozzle heats
M109 S[first_layer_temperature] ; Set and wait for extruder first layer temp
M190 S[first_layer_bed_temperature] ; Set and wait for first layer bed temp (probably already there)
; Prime line routine
G0 Z0.15; Restore nozzle position
M900 K0; Reset linear acceleration for prime line
G92 E0.0 ; reset extrusion distance
G1 Y-3.0 F1000.0 ; go outside print area
G1 E2 F1000 ; de-retract and push ooze
G1 X20.0 E6 F1000.0 ; fat 20mm intro line @ 0.30
G1 X60.0 E3.2 F1000.0 ; thin +40mm intro line @ 0.08
G1 X100.0 E6 F1000.0 ; fat +40mm intro line @ 0.15
G1 E-0.8 F2100; retract to avoid stringing
G1 X99.5 E0 F1000.0 ; -0.5mm wipe action to avoid string
G1 X110.0 E0 F1000.0 ; +10mm intro line @ 0.00
G1 E0.6 F1500; de-retract
G92 E0.0 ; reset extrusion distance
; Final print adjustments
;M92 E282.54 ; adjust extrusion ratio
M221 S{if layer_height>=0.32}95{else}100{endif} ; compensate for large layer height
...there are only 10 kinds of people in this world--those who know binary and those who don't......
Posted : 26/06/2019 1:21 am
bobstro
(@bobstro)
Illustrious Member
Posted by: jack

Starting with bobstros no-ooze startup gcode, I eliminated the PINDA warmup, but I turn on the bed heater right up front, and don't wait for it. My motivation was to minimize the wait time between taking the nozzle to its final first layer value, and beginning the prime line. Less ooze to wipe away. By the time the nozzle reaches temp, the bed has been fully warm for a minute at least, so it probably helps the bed stay level. (code below).

Quick note: The line M109 ; wait for extruder no-ooze warmup temp before mesh bed leveling is going to wait for your final nozzle temp at whatever its current position is before doing homing and mesh bed leveling. This was intentional after I had some oozy PETG harden on my nozzle and get driven into the PEI while cold if I homed without a hot nozzle. (This is why I modified the startup routine so much from the original if anyone's tried older versions.) This is going to make the M109 S[first_layer_temperature] ; Set and wait for extruder first layer temp that follows redundant.

The good news is, both nozzle & bed are warming, so no time is lost. IME, the nozzle heats much faster than the bed. There's still a chance you'll get some ooze as it homes and does mesh bed leveling. I think you want to remove that 1st M109 so the nozzle comes up to full heat in the home position. That way any ooze takes place in the home position, and the big blort of filament extruded with G1 E2 F1000 ; de-retract and push ooze should catch it in the prime line before it makes it into your print.

The video was interesting. I started moving even small prints around the bed to even out the bed wear, and I noticed some lifting of prints when I was near the edge of the bed. Always lifted near the edge of the bed. I figured it was probably due to the bed being cooler there. Video seems to confirm that. So I insulated a 4 cm wide perimeter strip of the bed bottom with some 4 mm foam, held in place with a steel strip attracted to the magnets. Nothing scientific to report, but it does seem to be better.

Do remember that if you're removing the spring steel sheet to flex it, you're handling it... most likely near those edges! I had to stop and think through my process to realize where a lot of my fingerprint contamination was coming from. If I stuck to strict grease discipline (no cheating, even removing prints & prime lines!), I had excellent adhesion on the same PEI that had been "troublesome" before.

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 : 26/06/2019 5:50 am
jack
 jack
(@jack)
Trusted Member

bob...Thanks for the quick reply! I'm a complete novice with gCode, obviously. What I was trying to do, in order, is

  1. Before moving the print head anywhere, start heating the bed to its first layer temperature, but not wait for it to finish (M140 S[first_layer_bed_temperature],
  2. Heat the nozzle to 160 degrees and wait for it to get there before moving anywhere. (M104 S160, then M109. Question: are these two lines , if together, equivalent to M109 S160?),
  3. Go to the home position (G28 W) and then initiate bed leveling (G80),
  4. Raise the nozzle a bit (G0 Z3) and set the nozzle temperature to its first layer temp, and wait for it to get there (M109 S[first_layer_temperature]. Some oozing occurs, but it's right above the prime initiation spot, and that's good.
  5. Make sure the bed is at first layer temp (M190 S[first_layer_bed_temperature]). I have found that it's already at that temperature by the time I get to this line of code, at least for PLA, but I wanted to make sure before going to the prime line.
  6. Proceed with your prime line code.

As for removing my first M109 (my ninth line of code), I thought it was waiting for the no-ooze temp to be reached, not the first layer temp. And my second M109 S[first_layer_temperature] isn't done until bed leveling is finished and the nozzle is just above the prime line start.

As for handling my spring steel sheet, you're right: I was pretty careless as a newbie grabbing the edges of the sheet, but I never experienced any adhesion problems, probably because I was printing mostly small things in the center of the sheet. Now I'm a believer. I only touch the top of the sheet in the non-print zones on diagonal corners to do my flexing if needed. Only a clean spatula gets inside. I'm now using 91% Isopropyl Alcohol with a clean microfiber cloth every morning, at least.

One final note: I have a laboratory-grade IR temp sensor, and the bed reads 55+-1 over virtually all its center surface, when set to the PLA temperature (60 degrees). Without my insulation strips, the edges (2 cm in) read 51 (left), 50 (right), 51 (front) and 49 (rear). With the insulation strips they read 54, 52, 55, 50 (no strip in the back, for now). Seems like I need to do a bed temp cal.

...there are only 10 kinds of people in this world--those who know binary and those who don't......
Posted : 26/06/2019 11:40 am
bobstro
(@bobstro)
Illustrious Member
Posted by: jack

bob...Thanks for the quick reply! I'm a complete novice with gCode, obviously. What I was trying to do, in order, is

[...] as for removing my first M109 (my ninth line of code), I thought it was waiting for the no-ooze temp to be reached, not the first layer temp. And my second M109 S[first_layer_temperature] isn't done until bed leveling is finished and the nozzle is just above the prime line start.

Yes, you are correct. I misunderstood what you were trying to do. Carry on!

I'll stare at it again now that I've had a bit of sleep, but I think it's doing what you want at this point. Have fun with it!

 

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 : 26/06/2019 2:06 pm
Tim
(@tim-m30)
Illustrious Member

It's been my experience the bed is the slower of the two - so waiting for bed temp takes precedence in my script.

 

Home
Start heating nozzle
Start heating bed, wait for bed
Wait for PINDA to warm
Mesh Level with home
Raise 1 cm
Start heating nozzle to print, wait for nozzle
Purge

M109 by itself might be doing something unwanted: according to Marlin, it disables the autotemp function.  I'm not exactly sure what that is, but seems to be part of the temp control mechanism.  I do not know how Prusa has implemented the function, so more rabbit burrow to follow.

AUTOTEMP: Disable autotemp, wait for temp

M109 
It is always wise to get more than one opinion......
Posted : 26/06/2019 6:34 pm
bobstro
(@bobstro)
Illustrious Member
Posted by: Tim

[...]

AUTOTEMP: Disable autotemp, wait for temp

M109 

IME it just waits for the previously-set temp. If you're more comfortable, add the S<TEMP> parameter. It was just one line less to tinker with when experimenting with finding good temps.

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 : 26/06/2019 11:12 pm
Tim
(@tim-m30)
Illustrious Member
Posted by: bobstro

AUTOTEMP: Disable autotemp, wait for temp

M109
IME it just waits for the previously-set temp. If you're more comfortable, add the S<TEMP> parameter. It was just one line less to tinker with when experimenting with finding good temps.

It's agreed it waits, but what concerns me is the Disable Autotemp.   If it were a simple wait for prior set-point, I think the tech writer author would have said so.  

This post was modified 1 year ago by Tim
It is always wise to get more than one opinion......
Posted : 27/06/2019 7:41 pm
bobstro
(@bobstro)
Illustrious Member
Posted by: Tim

It's agreed it waits, but what concerns me is the Disable Autotemp.   If it were a simple wait for prior set-point, I think the tech writer author would have said so.  

I'm not seeing the "disable autotemp" description in either the the Prusa gcode guide ("Set target temperature for nozzle and wait for nozzle to reach target.") or the RepRap guide. What I've found for autotemp in Marlin suggests that M109 by itself will disable a feature that you have to explicitly set to allow the firmware to calculate a range of values by simply saying "go to last specific setting", but by all means, add the Sxxx parameter if you're more comfortable with it. (Reminds me of tapping the brake to disable cruise control.)

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 : 27/06/2019 10:57 pm
jack
 jack
(@jack)
Trusted Member

The Marlin reference I've been using ( http://marlinfw.org/docs/gcode/M109.html) says that using the S prefix on the temp (as in M109 S160) will operate as follows:

[S<temp>]

Target temperature (wait only when heating). Also AUTOTEMP: The min auto-temperature.

But for me it's waiting for both warm-up and cool-down. Is the Prusa implementation non-compliant, or am I doing something wrong?

...there are only 10 kinds of people in this world--those who know binary and those who don't......
Posted : 20/08/2019 12:59 am
bobstro
(@bobstro)
Illustrious Member
Posted by: jack

[...] But for me it's waiting for both warm-up and cool-down. Is the Prusa implementation non-compliant, or am I doing something wrong?

I see the same behavior. My startup gcode with M109 Sxx waits for the temp to increase or decrease to 160. The Prusa gcode description only states "Set target temperature for nozzle and wait for nozzle to reach target" so it does seem to vary from other implementations. Of course, that same page has no mention of M860 for PINDA warmup temps, and that one will only wait if temp is less than the specified value, proceeding immediately if it's above.

According to the Marlin gcode spec it is operating as M109 Rxx is expected to. 

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 : 20/08/2019 2:20 am
jack
 jack
(@jack)
Trusted Member

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

 

...there are only 10 kinds of people in this world--those who know binary and those who don't......
Posted : 20/08/2019 4:32 am
jack
 jack
(@jack)
Trusted Member

Perhaps...

{if M105<160} M109 S180 {endif}?

...there are only 10 kinds of people in this world--those who know binary and those who don't......
Posted : 20/08/2019 4:50 am
Tim
(@tim-m30)
Illustrious Member

I'm guessing Prusa doesn't tweak the Marlin code unless they can save a worthy bit of flash space. Any other drifts off the line will introduce side effects they probably don't want to incur. 

There are defined user variables, the Slic3r manual has a list of these. Note the temp variables are NOT mentioned. And Prusa doesn't explicitly say what they have done.  There is a .cpp somewhere that has the conditional case statement that lists the variables... but it's been a while since I was playing in that sandbox.

https://manual.slic3r.org/advanced/placeholder-parser

And here's how they can be used.

https://manual.slic3r.org/advanced/conditional-gcode

It is always wise to get more than one opinion......
Posted : 20/08/2019 7:46 am
Page 2 / 4
Share:

Please Login or Register