Method to prevent nozzle from digging into print bed

I’ve had two Lulzbot Mini’s, and both have had the issue where the nozzle digs down into the print bed after the probing procedure. It damages the PEI by being too low (or BuildTak, or Kapton Tape, or Painter’s Tape - I’ve tried all of them, and it’s annoying to have them damaged so often).

The thought was that a dirty nozzle during the probe process might be causing it, but I’ve ensured that I have a clean nozzle by using ScothBrite cleaning pads (normally used for cleaning dirty dish pans, I believe), as well as brand new nozzles. These still didn’t work.

I ended up modifying the starting GCode so it didn’t do the probing procedure. Instead, my new procedure is this:

  1. (Only have to do once - you have to use Expert mode in Cura, and replace the Start/End-GCode with what I use below. I advise copy/pasting the original into Notepad and save to a file as a backup - you should use the original probe sequence now and then to ensure the four corners remain level. Look below for my GCode.)

Before starting each print job:

  1. Load your models into Cura, click Control to get into the printer control dialog box.
  2. Clean the nozzle with a ScotchBrite pad.
  3. Place an index card (a thicker piece of paper would probably do as well) on the print bed.
  4. Manually move the print head down to the print bed and verify that I can move the index card around beneath the nozzle without the nozzle digging into it.
  5. Verify that I can slip the index card out from beneath the nozzle and back under without seeing the print head assembly shifting at all. I usually have to bring the nozzle up 0.1 or 0.2mm to be able to do this.
  6. Place the index card and ScotchBrite pad off to the side.
  7. Click Print. My GCode will set Z0 to the current position (don’t worry about X0 and Y0).

This has worked flawlessly every single print I’ve done since I’ve used it, where before, at least 33% of my print jobs would start off bad by the nozzle driving into the print bed, the nozzle would get clogged, the gear that pushes down the filament would dig a chunk out of the filament, requiring me to heat up the print head, pull it out, cut it, trim it, put it back in, and waste 10-30mm of filament during the reloading test process. Oh, and often replacing the Kapton Tape I use on top of the PEI. This new procedure removes all of those problems, and actually takes less time on every print job … not to mention the wasted time fixing those problems.

Side note - I would have thought that the printer would remember Z0 from one print job to the next, but it loses it for some reason, thus my procedure above (and resetting Z0 in the GCode under the assumption that I’ve done the above). Also, the print head does need to be cleaned/wiped off, so it’s good to do it every time in the steps above.

Here’s my start GCode (no changes to the end GCode). Note that I’ve left in the original commands, simply commented out, to allow people to see the difference easily. I’m posting it in the hopes that even a few people see fewer issues on print jobs, as I have.

;This Gcode has been generated specifically for the LulzBot Mini
;Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density}
;Filament Diameter: {filament_diameter}
;Nozzle Size: {nozzle_size}
G21 ; metric values
G90 ; absolute positioning
M82 ; set extruder to absolute mode
M107 ; start with the fan off
;G92 E0 ; set extruder position to 0
M140 S{print_bed_temperature}; get bed heating up
;G28 ; home all
;M109 S140 ; set to cleaning temp and wait
;G1 Z150 E-30 F75 ; suck up XXmm of filament
;M109 S140 ; heat up rest of way
;G1 X45 Y174 F11520 ; move behind scraper
;G1 Z0 F1200 ; CRITICAL: set Z to height of top of scraper
;G1 X45 Y174 Z-.5 F4000 ; wiping ; plunge into wipe pad
;G1 X55 Y172 Z-.5 F4000 ; wiping
;G1 X45 Y174 Z0 F4000 ; wiping
;G1 X55 Y172 F4000 ; wiping
;G1 X45 Y174 F4000 ; wiping
;G1 X55 Y172 F4000 ; wiping
;G1 X45 Y174 F4000 ; wiping
;G1 X55 Y172 F4000 ; wiping
;G1 X60 Y174 F4000 ; wiping
;G1 X80 Y172 F4000 ; wiping
;G1 X60 Y174 F4000 ; wiping
;G1 X80 Y172 F4000 ; wiping
;G1 X60 Y174 F4000 ; wiping
;G1 X90 Y172 F4000 ; wiping
;G1 X80 Y174 F4000 ; wiping
;G1 X100 Y172 F4000 ; wiping
;G1 X80 Y174 F4000 ; wiping
;G1 X100 Y172 F4000 ; wiping
;G1 X80 Y174 F4000 ; wiping
;G1 X100 Y172 F4000 ; wiping
;G1 X110 Y174 F4000 ; wiping
;G1 X100 Y172 F4000 ; wiping
;G1 X110 Y174 F4000 ; wiping
;G1 X100 Y172 F4000 ; wiping
;G1 X110 Y174 F4000 ; wiping
;G1 X115 Y172 Z-0.5 F1000 ; wipe slower and bury noz in cleanish area
G92 Z0 ; SET CURRENT Z=0 YOU MUST HAVE ALREADY MEASURED Z0 WITH A PIECE OF PAPER BENEATH THE PRINT HEAD, THEN CLICK RUN
G1 Z5 ; raise z
G28 X0 Y0 ; home x and y
;M109 S140 ; set to probing temp
;M204 S300 ; Set probing acceleration
;G29 ; Probe
M204 S2000 ; Restore standard acceleration
;G1 X5 Y15 Z10 F5000 ; get out the way
;G4 S1 ; pause
;M400 ; clear buffer
M109 S{print_temperature} ; set extruder temp and wait
G4 S15 ; wait for bed to temp up
;G1 Z2 E0 F75 ; extrude filament back into nozzle
M140 S{print_bed_temperature}; get bed temping up during first layer
G1 X5 Y5 ; MOVE X AND Y OFF THE FRONT LEFT DISC
G1 X5 Y5 Z0 ; LOWER Z BACK DOWN TO Z0, but stay over at 5,5 XY so you don’t hit the corner disc


Side note to Aleph Objects: This IS a real problem with the probing process the way the Lulzbot Mini normally runs. I’m not kidding about the 33% screw-up rate. It’s probably higher than that, and it’s extremely annoying, as it requires going back and checking every print job to see if it mauled the print bed. A better measuring system might be a laser probe attached to the print head assembly to ensure it is at whatever height is needed, though that wouldn’t ensure that all four corners are level - both methods might be the ultimate. The Lulzbot Mini is a great printer, barring this recurring issue. (As I said, I’ve bought two so far.)

If you are printing with PLA, what temp is the hot end at when it wipes and probes?

I print with ABS, though it does the same thing with any filament type with the default procedure. The default cools the hot end down to something like 160° C or less. I changed nothing from the defaults when I had all the problems. My new procedure has not had a single issue or failed print job since I’ve done it. That’s a massive improvement, time saver, and reduces damage/wasted Kapton Tape and PEI/BuildTak.

My procedure makes the current temperature of the hot end irrelevant (though if you have it extremely hot, I advise against touching paper or an index card to the nozzle for more than a few seconds).

My thought the wipe and level should be a option. Its a big time waster as how often does the bed really need checked for level? The Mini is a good solid machine and I can’t see it getting out of level often.

You could certainly uncomment the big section of G1 statements that moves the print head to the back and cleans the nozzle, but I’ve found that as I move the Z down to test with paper (it’s always up at the top after a print job finishes), that’s the best time to just use ScotchBrite pads. You’re waiting for the nozzle to move down anyway, so you have plenty of time to vigorously clean the nozzle yourself and save time overall.

As I mentioned, I haven’t had a single failure since instituting this new procedure, where at LEAST 33% of the time it was ruining at least the start of a print job and causing me a lot of extra time to fix the issue using the original method.

I’m providing this as an option for those who have had the same issues as me. If your print bed is actually probing and starting at the correct height every time now, then I would not change a thing.

That’s interesting – mine has done this only one time, and I’ve stopped it from happening the other few times it deflected the washer. That’s over hundreds of prints and usually only with PLA (I have a hard time with PLA for some reason).

I’ve wondered with the Z height being controlled by two screws and motors, what sort of effect would happen if they get out of sync so that one side is higher than the other. I could imagine that if there is some angle to the gantry, one side might be lower than the controller expects, but then, that is basically just the opposite of an unlevel bed, so I’ve sort of put that out my mind and figure the leveling sequence handles it. If it is extreme enough though, maybe it wouldn’t.

I sort of wonder if your frequent crashes are somehow related to that, although how to check if the gantry is perpendicular to the Z axis is not something I know how to do – though I’d like to.

The wipe pad needs to be flipped and changed every so often…

Are you wiping the nozzle at extrusion temp? If not, then you’re most likely not removing any leftover filament. Also make sure to clean the corner touch points. Could be filament build up there… Hot filament touching cold metal…

Regardless, seems you’re negating a main features of the Mini by disabling the autoprobe.

Yup, I would prefer it if the default probe mechanism worked flawlessly. However, the self-leveling isn’t what I like the most about the Lulzbot Mini - it’s the design and construction of the device. I like the easy access to the parts. The belts are high quality, and are attached using a great method (as opposed to a Micro3D I’ve got, where you can’t even replace your own belts). So far, the service from Aleph Objects has been good, which is another plus for the company.

The important thing is that even to this point, my method is continuing to be perfect every time, and that is totally worth losing the self-leveling ability. (Note: Every now and then I do plan to copy/paste their GCode back in to ensure the bed remains level, but it’s been a non-issue to this point.)

Last, ScotchBrite pads will indeed clean off a nozzle, even if cool. If they didn’t, it would be a simple situation to just heat up the nozzle and then clean it, since my start GCode doesn’t cool the nozzle back down - it would be ready to print immediately after testing Z0 with the index card.

I asked about the wiping and probing temps because the problem I was having with PLA was that it would wipe at 140C then start heating to 170C before it tried to probe. At 170, some plastic residue was interfering with the electrical connection during probing and causing the starting Z to be too low after the washers were deflected during measurement. I modified the temp settings in gcode to make sure it wiped and probed at 140. I have had no problems since then. I just thought you might be trying to probe at too high a temp.

That seems like a defect in the default profile. Is Lulzbot aware of that? I think I might have had this happen once briefly but there was no rhyme or reason for it. I am not using PLA anymore right now but haven’t had it happen with HIPS. I’m putting my toes into the ABS pool later this week, pray for me :slight_smile:

Who knows if they are aware of it. It seems intentional since it it still there.

G28 ; home all
M109 S150 ; set to cleaning temp and wait
G1 Z150 E-30 F75 ; suck up XXmm of filament
M109 S170 ; heat up rest of way
G1 X45 Y174 F11520 ; move behind scraper

Edit: That is from a HIPS profile. Maybe they had some things in the wrong profile early on… or maybe I jumbled it up. In any case, those warmer temps botch the probing! Probing with PLA at 140 has been flawless for me.

That actually makes sense to probe before the filament liquefies and possible ooze (depending on brand)… but does 140C account for complete thermal expansion of the brass nozzle? Prints could be really difficult to get off the bed if first layer is too close…

I like to print ABS a little high (245C), and always have a thread of ooze… which I think would be an issue on the Mini. With the TAZ, I just print a skirt/brim to “wipe” away the little ooze, or it gets stuck on the existing deposit of ABS in the X0Y0 corner where the Z-homes. :slight_smile:

I use a mini and I usually have about a half inch of stringy filament hanging from the nozzle (not sure if that qualifies as ooze) during the warm up after the bed level is completed. Never had it cause me any issues but I also use a skirt every time.

That’s what I consider ooze… generally non initiated extrusion. I’ve never seen the Mini’s start process, but hanging around the forums you can only speculate what might be happening.

If filament is being expelled from the nozzle uninitiated, then it seems possible that a small amount may be deposited each time the nozzle touches the corners… over time there could possibly be buildup which inhibits the electrical contact. So while everyone is concerned about the nozzle being clean, seems as though people should also keep an eye on the corners too.

Modifying the start procedure to perform the probing while the filament is “cold” makes sense to keep the nozzle and contact surfaces clean. The issue may be thermal expansion which causes the nozzle to be closer to the surface after the probing.


Regardless… every system will have some flaws, its really learning to mitigate.

Well, to be clear, I have never had it happen prior to the probing phase. It only oozes after the fact when it is warming back up to start printing and its never more than an inch or half inch. I don’t want to imply ooze during probing hasn’t happened to others, just not to me. I only get the ooze during the post probe warm-up. I am pretty good about giving the hotend a good cleaning every few prints and I wipe down the contacts along with the bed with alcohol whenever I clean it.

I have always thought it would make good sense because of that oozing though for lulzbot to optionally include a wipe post probe and warm-up as well. Like I said, I have never had it cause any issues of note but it certainly could depending on your calibration levels/ooze amount. Here I am like a month into ownership telling these people how to do their jobs - I’m obviously totally qualified :laughing:

EDIT: In case it wasn’t obvious, the startup process for the Mini is for the table and hotend to home. It warms up (to about 160 or 170 I think if I remember right) and performs the wiping process. Then it homes to South West above the first contact and wait in a cool down to some assuredly safe temperature. Then it does the bed leveling on all 4 corners, homes back to South West (but not over the contact this time) and does the final warm up to the set extrusion temperature (240 for me with HIPS right now) and then away it goes. Hope that’s helpful.

Yep, your edit puts a better picture in my mind of the startup. Thanks! :slight_smile:

When does the wipe across the pad take place in the startup process? If the nozzle temp isn’t close to extrusion temps, then I don’t think the pad is doing much cleaning… just wiping hard plastic on a warm nozzle.

I would have thought to heat the hotend, wipe the nozzle, touch the contacts and immediately go into the print.


As for getting rid of that pre-print ooze, I usually print a brim or skirt. In addition to removing the ooze, it primes the hotend. Works fairly reliably. A few extruded lines along the edge of the print bed should prime and “clean” also.

My Mini, using the current Lulzbot profiles, does not wait between wipe and probe. It wipes then moves to the first corner and begins probing. If you are seeing a warm up prior to probing, that might be your problem.

I wasn’t the one with the problem, my machine is pretty happy right now. I just wanted to state the behavior I have seen. It warms up to wipe and then cools down to probe so no issues there for me. Sometimes the cool down wait is short or long, it depends on the temperature of the materials I would guess. This is essentially what the GCode says (I removed inconsequential items and grouped into the base “steps” and formatted for easy reading);

START
[WARM UP FOR CLEANING]
set to cleaning temp and wait
suck up XXmm of filament
heat up rest of way

CLEANING
move behind scraper
set Z to height of top of scraper
wiping ; plunge into wipe pad
wiping
wipe slower and bury noz in cleanish area

LEVELING
raise z
home x and y
[COOL DOWN FOR LEVELING]
set to probing temp
set accel for probing
Probe
set accel back to normal
get out the way
clear buffer
pause

WARM UP TO PRINT
set extruder temp and wait
wait for bed to temp up
extrude filament back into nozzle

BEGIN PRINTING

So you can see there, the mini warms up to some preset temperature to clean the head and does the cleaning, cools to a preset temperature for leveling and does the leveling, and then warms to the temp for printing and beings. I admit I have no idea what those preset temps are for the cleaning and leveling but I suspect they vary depending on material when using the default profiles. I can’t imagine the cleaning being very effective if its a static temperature.

I still stand by my suggestion that it would be nice if there was a UI option to do another wipe after the post leveling warmup but before printing but I suspect there’s a reason I haven’t thought of as to why they don’t.

I just ruined the PEI layer on my bed due to this. I basically have to always ‘mind’ my prints at the beginning to make sure this isn’t happening, but this last time it bubbled up the PEI pretty bad. Needless to say I’m fairly irritated with Lulzbot and Cura at the moment.

Thank you so much! :smiley: Your solution and G-code worked like a charm!