Taz 6 auto home failing

I have recently assembled a Taz 6 and I cannot print any files from the included SD card or any files from my laptop.

The issue is when I start the print and the printer is performing its homing, instead of touching the washers and then lifting back up, the tool head will continue pushing down (almost bending the bed) until it inevitably fails.

I have tried every possible solution I can think of; from cleaning the nozzle, manually adjusting the x axis, loading updated firmware on the printer, reinstalling cura on my laptop, yet it will still fail.

Weirdly enough, however, I was able to successfully print the mustache ring from the included sd card. Every other print that I have tried has the same failure where the toolhead lowers straight down.

Can I get some help with this? Anybody run into the same issue?

The printer start g-code normally pre-heats and wipes the nozzle in preparation for bed leveling, but the bed leveling process (moving to each corner and probing to touch the washer) is triggered by a single g-code command – it would not make a difference whether you print from the memory card vs. Cura over USB cable.

If you are getting consistent failures on the first corner, then one possibility is that the washer isn’t snugged down. It doesn’t need to be crazy tight … just snug. If it’s loose it would likely have poor connectivity.

If you have an ohm-meter (multi-meter) touch the probes of the meter to any two corners and make sure they have good connectivity (typically it’ll read around 1Ω … giver or take a tiny amount). If you get higher readings (e.g. 10+) then you probably have a loose washer.

All washers ground to the build plate. But there’s also a wire that grounds to the build plate and connects back to the control board (it goes through a wire harness) so it could also be a loose or disconnected wire.

ALSO… the nozzle is the other half of the equation… nozzle connects to hot-end and if you trace up there’s a wire that will be attached to one of the screws that holds the heat-sink fan in place (on my printers that’s a red wire) and that also traces all the way back to the board.

Basically the printer is just checking simple conductivity from the nozzle to the bed washer and if the nozzle is clean (which is usually the culprit) then loose washers tend to be #2 on the list… and a loose wire or disconnected/broken wire are more remote possibilities but worth checking if everything else looks good.

Hey, Tim, thank you for the response! Do you have a start gcode that has no problem running? I’d like to see if there’s an issue with mine.

I checked all the washers and they are quite snug, so I don’t think that’s the issue.

I’ll have to try the multimeter today. Is tightening the washer the only solution if the reading is too high? I’ll also check for loose wiring. The nozzle is definitely clean. I’ve made sure it’s shiny. However, the printer/cura will sometimes give me the probing failed, clean nozzle error.

I’m starting to think it’s a wiring issue, but it could also be the firmware as well. The most glaring issue the I’ve seen is before the nozzle wipe, it will not touch the pad that presses down (don’t know what it’s called). Or at least it touches the edges of the circle. Any idea on why the printer is doing that? It seems to set the Y axis too far back of the printer so the nozzle does not touch the middle of the circle.

That’s a red flag in my book. That “pad” is actually the Z-axis limit switch. When depressed by the nozzle during the homing sequence, it sets the printer’s Z=0 position. The auto-leveling sequence (where the nozzle touches the corner washers) sets offset values from the Z=0 position. There are some tolerances set in the firmware for the maximum allowable offset, and if they’re exceeded the printer will error out.

…what’s curious to me, though (if I understand your explanation correctly), is that the printer seems to be continuing the startup sequence even without the Z limit switch being closed (if the nozzle is missing the center of the switch/button)…?

If the nozzle is missing that switch, my guess is there’s a mis-alignment or incorrect mounting of something. Double-check that you’ve got the print bed frame screwed down to the main printer frame exactly where it’s supposed to be, and make sure you have the tool head correctly seated in the gantry cradle.

I own a Workhorse & Pro … both have 300x300mm build plates. This means my start g-code would be using different x,y coordinates to find the wiper pads vs. a TAZ 6 (which has a 280x280mm build plate).

When you install Cura, it installs all the start/end g-codes for every printer & toolhead they’ve ever sold. (On a Mac this is hiding in /Applications/cura-lulzbot/Contents/Resources/cura/resources/gcodes … but I don’t know where they hide it on Windows.)

Anyway, here’s the generic start g-code for a TAZ 6 (the X,Y coordinates in this file should be good and hit the wiper pad on your printer). Start g-code will vary based on the actual toolhead. If you have a different toolhead, don’t use this code. Also, LulzBot uses internal codenames for products and you’ll find these in your filesystem (if you snoop around the Cura install). This makes it a bit harder to determine which file is the file you need.

LulzBot Mini printers use codenames based on names of flowers.
LulzBot TAZ printers use codenames based on names of trees (except I find the TAZ 5 & 6 are usually actually just called TAZ 5 or TAZ 6… the Workhorse is codenamed ‘redgum’ and the Pro is codenamed ‘quiver’.)
LulzBot extruders use codenames based on names of caterpillars.

The SE 0.5 toolhead (which I think is the standard toolhead on a TAZ 6) is the ‘cecropia’.

;This G-Code has been generated specifically for the LulzBot TAZ 6 with standard extruder
M73 P0 ; clear GLCD progress bar
M75 ; start GLCD timer
G26 ; clear potential 'probe fail' condition
M107 ; disable fans
M420 S0 ; disable previous leveling matrix
G90 ; absolute positioning
M82 ; set extruder to absolute mode
G92 E0 ; set extruder position to 0
M140 S{material_bed_temperature_layer_0} ; start bed heating up
M109 R{material_soften_temperature} ; soften filament before homing Z
G28 ; Home all axis
G1 E-30 F100 ; retract filament
M109 R{material_wipe_temperature} ; wait for extruder to reach wiping temp
G1 X-15 Y100 F3000 ; move above wiper pad
G1 Z1 ; push nozzle into wiper
G1 X-17 Y95 F1000 ; slow wipe
G1 X-17 Y90 F1000 ; slow wipe
G1 X-17 Y85 F1000 ; slow wipe
G1 X-15 Y90 F1000 ; slow wipe
G1 X-17 Y80 F1000 ; slow wipe
G1 X-15 Y95 F1000 ; slow wipe
G1 X-17 Y75 F2000 ; fast wipe
G1 X-15 Y65 F2000 ; fast wipe
G1 X-17 Y70 F2000 ; fast wipe
G1 X-15 Y60 F2000 ; fast wipe
G1 X-17 Y55 F2000 ; fast wipe
G1 X-15 Y50 F2000 ; fast wipe
G1 X-17 Y40 F2000 ; fast wipe
G1 X-15 Y45 F2000 ; fast wipe
G1 X-17 Y35 F2000 ; fast wipe
G1 X-15 Y40 F2000 ; fast wipe
G1 X-17 Y70 F2000 ; fast wipe
G1 X-15 Y30 Z2 F2000 ; fast wipe
G1 X-17 Y35 F2000 ; fast wipe
G1 X-15 Y25 F2000 ; fast wipe
G1 X-17 Y30 F2000 ; fast wipe
G1 X-15 Y25 Z1.5 F1000 ; slow wipe
G1 X-17 Y23 F1000 ; slow wipe
G1 Z10 ; raise extruder
M109 R{material_probe_temperature} ; wait for extruder to reach probe temp
G1 X-9 Y-9 ; move above first probe point
M204 S100 ; set probing acceleration
G29 ; start auto-leveling sequence
M420 S1 ; activate bed level matrix
M425 Z			     ; use measured Z backlash for compensation
M425 Z F0		     ; turn off measured Z backlash compensation. (if activated in the quality settings, this command will automatically be ignored)
M204 S500 ; restore standard acceleration
G1 X0 Y0 Z15 F5000 ; move up off last probe point
G4 S1 ; pause
M400 ; wait for moves to finish
M117 Heating... ; progress indicator message on LCD
M109 R{material_print_temperature_layer_0} ; wait for extruder to reach printing temp
M190 R{material_bed_temperature_layer_0} ; wait for bed to reach printing temp
G1 Z2 E0 F75 ; prime tiny bit of filament into the nozzle
M117 TAZ 6 Printing... ; progress indicator message on LCD

Here is the other (note the start comment that this g-code is for the SE 0.5mm Tool Head):

;This G-Code has been generated specifically for the LulzBot TAZ 6 with SE 0.5mm Tool Head
M73 P0 ; clear GLCD progress bar
M75 ; start GLCD timer
G26 ; clear potential 'probe fail' condition
M107 ; disable fans
M420 S0 ; disable leveling matrix
G90 ; absolute positioning
M82 ; set extruder to absolute mode
G92 E0 ; set extruder position to 0
M140 S{material_bed_temperature_layer_0} ; start bed heating up
G28 XY ; home X and Y
G1 X-19 Y258 F1000 ; move to safe homing position
M109 R{material_soften_temperature} ; soften filament before homing Z
G28 Z ; home Z
G1 E-15 F100 ; retract filament
M109 R{material_wipe_temperature} ; wait for extruder to reach wiping temp
G1 X-15 Y100 F3000 ; move above wiper pad
G1 Z1 ; push nozzle into wiper
G1 X-17 Y95 F1000 ; slow wipe
G1 X-17 Y90 F1000 ; slow wipe
G1 X-17 Y85 F1000 ; slow wipe
G1 X-15 Y90 F1000 ; slow wipe
G1 X-17 Y80 F1000 ; slow wipe
G1 X-15 Y95 F1000 ; slow wipe
G1 X-17 Y75 F2000 ; fast wipe
G1 X-15 Y65 F2000 ; fast wipe
G1 X-17 Y70 F2000 ; fast wipe
G1 X-15 Y60 F2000 ; fast wipe
G1 X-17 Y55 F2000 ; fast wipe
G1 X-15 Y50 F2000 ; fast wipe
G1 X-17 Y40 F2000 ; fast wipe
G1 X-15 Y45 F2000 ; fast wipe
G1 X-17 Y35 F2000 ; fast wipe
G1 X-15 Y40 F2000 ; fast wipe
G1 X-17 Y70 F2000 ; fast wipe
G1 X-15 Y30 Z2 F2000 ; fast wipe
G1 X-17 Y35 F2000 ; fast wipe
G1 X-15 Y25 F2000 ; fast wipe
G1 X-17 Y30 F2000 ; fast wipe
G1 X-15 Y25 Z1.5 F1000 ; slow wipe
G1 X-17 Y23 F1000 ; slow wipe
G1 Z10 ; raise extruder
M109 R{material_probe_temperature} ; wait for extruder to reach probe temp
G1 X-9 Y-9 ; move above first probe point
M204 S100 ; set probing acceleration
G29       ; start auto-leveling sequence
M420 S1   ; enable leveling matrix
M425 Z	  ; use measured Z backlash for compensation
M425 Z F0 ; turn off measured Z backlash compensation. (if activated in the quality settings, this command will automatically be ignored)
M204 S500 ; restore standard acceleration
G1 X0 Y0 Z15 F5000 ; move up off last probe point
G4 S1 ; pause
M400 ; wait for moves to finish
M117 Heating... ; progress indicator message on LCD
M109 R{material_print_temperature_layer_0} ; wait for extruder to reach printing temp
M190 R{material_bed_temperature_layer_0} ; wait for bed to reach printing temp
G1 Z2 E0 F75 ; prime tiny bit of filament into the nozzle
M117 TAZ 6 Printing... ; progress indicator message on LCD

The difference in these two start g-codes… the ‘standard’ one does a ‘G28’ (home command) on line line 11. This is a “home ALL axes”. But the SE 0.5 toolhead version does a ‘G28 XY’ which only homes the X & Y axes, but not Z. It then moves the toolhead, pre-heats it to soften temp, and THEN homes the Z. (not sure why it waits).

IMPORTANT NOTE: If you want to test this on it’s own (e.g. just save it to a memory card and run it through the printer) make sure you search for everything inside curly braces { } and replace those with actual numbers.

E.g. if using PLA, the ‘soften’ temp is probably 180, the wipe temp is probably 170, and the probe temp is 160. So you’d replace the line that says:

M109 R{material_soften_temperature} ; soften filament before homing Z

with

M109 R180 ; soften filament before homing Z

Curly braces are Cura variables. When Cura sees them in the start g-code it will use the material & quality profiles to find the values and substitute the actual numbers for those variables. The Marlin firmware in the printer doesn’t actually know how to interpret {material_soften_temperature} (or any other variable) and wants to see actual numbers.

I’m mostly concerned with your comment that the nozzle isn’t properly touching the wiper-pad on the side of the build plate. In other words… it’s not getting scrubbed clean.

I actually don’t trust that the nozzle simply “appears” to be clean… I’ve found that the nozzle can build-up a micro-thin layer of material such that it looks clean, but has a coating which semi-insulates it from conductivity. Think of this like the layer of “seasoning” that builds up on cast-iron frying pans. While that’s great for cookware… it’s bad for bed leveling on a 3D printer. We want to get rid of that layer.

I use a small brass wire brush (about the size of a toothbrush) and I scrub the nozzle clean (with the nozzle heated to 170°C so that the material is soft and easily removed).

CAUTION: I have found it is possible for the brass bristles to touch the heater wires and this can trigger a spark … and that can’t be good. So now I’m very careful how I wipe the nozzle with the brass brush to stay away from those wires. But I will say that ever since I started giving the nozzle a gentle scrub with the brass wire brush … bed leveling got a WHOLE lot better. (it’s rare that I have anything less than a perfect bed level.) This did not used to be the case when I didn’t brush the nozzle.

Tim one trick I have found is getting a silicon sock. Not only doesn’t help keep filament from sticking to the rest of the heat block but it also covers the points that would cause a short. I then use a soft stainless brush to clean the nozzle without worry.