Taz Pro Nozzle Calibration Variation

I have been having some z-offset problems with my Taz Pro. When printing, the nozzle is lower than I would expect it to be and it is hitting the existing print as it goes. On multiple occasions it has actually knocked prints off the bed…

Lulzbot support has suggested manually adjusting the z-offset. What is the difference between the ‘Nozzle Offset’ z value and the ‘z offset’ value?

When I have done the ‘Automatic Calibration’, I end up with different ‘Nozzle Offset’ z values every single time…

Nozzle offsets (X, Y, Z) are the differences in coordinates between the two nozzles. If I understand how the TAZ Pro works, the two nozzles can be raised or lowered. I’m going to guess that both nozzles are lowered and both are used during the auto-level process. Is this correct? With both nozzles lowered, if they aren’t both at the same height above the bed, then a non-zero Z nozzle offset would need to be supplied.

The Z-Offset is the difference between what was measured for Z = 0.0 and the actual distance between the nozzle(s) and the bed.

Your slicer is going to generate the commands for the first layer at Z = first layer height if this is too close to the bed, then the Z-Offset should be adjusted. Since the TAZ Pro uses the bed corner washers to determine where Z = 0.0 is. The Z-offset is usually a negative value so to raise the nozzle off the bed use a less negative number (i.e. closer to zero).

While printing a part, the inactive nozzle is mechanically raised so it should not be interfering with the part being printed. Please describe the conditions under which the nozzle (say which nozzle) is hitting the part. Is it after a nozzle switch?

When auto leveling, the Taz Pro only uses the first nozzle. It does not use both.

This is the MAIN print nozzle hitting the print, not the secondary nozzle.

Here are some videos that I took. There is a lot going wrong here.

https://youtu.be/eS_Yss1GyN8 (listen for the ‘click’ … that is the nozzle hitting the print)

Here is another one…

The top of the print should be flat. In the first video (looks like a 3D Benchy), the top isn’t flat at all. I’m guessing this is a case of over extrusion. Try adjusting the flow rate down (try 98, 96, 94). You might also want to re-calibrate your E-steps (you can find descriptions of how to do this everywhere).

Thanks for looking those over.

I’ll give the extrusion adjustments a try. I have tried the e-steps a few times. I was actually trying to print the xyz 20mm calibration cube in that third video to do just that… Attached is a photo of how that turned out compared to one I printed last week with the same printer.

When I printed that 20mm cube last week, the measurements were within .1mm +/- in all directions

The Z-offset is the offset between the top of the bed-leveling washers and where you want the nozzle when printing the first layer. The washers are 1.5mm thick, so the Z-offset is always a negative number (probably close to -1.2 … maybe even as low as -1.3).
The nozzle offset is the delta between the position of nozzle 1 and nozzle 2 (when they are in the lowered position).

Before doing the calibration, the nozzles need to be CLEAN. It really is best to completely unload the filament so there is no possibility of oozing while doing the calibration. Heat the nozzles and scrub them clean (while in the “Change Filament” menu, you can select either toolhead to get it lower that toolhead. Use the tweezers to pull off any obvious filament. Grab one of the red Scotch-Brite pads and scrub them clean. Basically make sure nothing can interfere with conductivity to help get a more accurate measurement.

Do: Menu -> Advanced Settings -> Nozzle Offsets -> Measure Automatically

It will use that calibration cube in the front-right corner of the build plate to measure nozzle offsets and also backlash compensation.

Since the nozzles are side-by-side, you would expect a large difference in X value, but they should be similar in Y and Z (they wont be the same, but probably wont be off by more than 1mm). I think my TAZ Pro calibrates out a Z difference of around .25mm (mine is a negative value).

It is possible to enter offsets in Cura, but don’t do that. Offsets should be entered either in Cura or in the machine itself (handled by firmware) but not both (that would double-compensate and mess up everything.)

With that said… I’ve done comparisons by inspecting the filament on the first layer where it prints with nozzle 1 vs. nozzle 2 and noticed that nozzle 2 was higher … so after auto-calibrating, I still tweaked it – just a tiny bit – until both heads were laying down filament so they look the same (same amount of squish).


The TAZ Pro has a calibration part and you should print it. The part is on the USB memory stick that came with the printer.

I’ve annotated it by circling the center points on the two vernier scales. But look closely and you’ll see the two different filaments (red was loaded in extruder 1, black in 2) each print a scale … but notice the distance between the red marks is not the same spacing as the black marks (ie. vernier scale). The scale is designed so if the calibrated offsets aren’t correct, then some other marks will have a better match (red & black pairs) than the center line. There’s a (hard to see) + and - symbols printed on the part that tells you which direction to shift to compensate.

So let it do auto-calibrate, then print this part, then compare the actual results and tweak a little if needed.

There’s nothing in the part that compares the Z-axis … so for that I just print a couple of bottom layers (e.g. put basic cube on the build plate … twice … assign one to print with extruder 1, the other with extruder 2) let it print the bottom layers of both and then cancel the print. Examine the two parts. Grab some calipers and compare thickness and tweak the Z as needed.

As @b-morgan points out… the curving on the top of the part isn’t due to nozzle-offset issues. Something else is making the part curl up in the corners.

What filament are you printing?
What fan cooling % are you running?

3D filaments are never perfectly accurate. There are things you can do to compensate when you have parts where dimensional accuracy is more critical. For example… suppose you are printing a peg that has to insert into a hole… you dimension the hole and peg diameters to fit, but they don’t fit… either too loose or too tight. You can adjust something in Cura called “Horizontal Expansion” (giving it either a positive or negative value) and this tells Cura to cheat the walls a little in or out to help size the part.

If the steps/mm are different on the X, Y, or Z axis, then it’s possible that a “square” will print like a “rectangle”. But I’ve never needed to tweak those values. My Pro has been pretty solid in that regard.

My E-steps are a bit different on my Pro (between extruder 1 vs 2). I have (so far) only seen a way to enter just a single value for E-steps (not separate values for each extruder). But Cura handles this.

In Cura, go into Preferences -> Printers -> [pick the printer name] -> Machine Settings
Select the “Hot End 1” tab.
In the “Extruder Start Gcode” field, enter “M92 E420.00” (without the quotes – except replace 420.00 with your actual calculated E-steps.)
Select the “Hot End 2” tab.
In the “Extruder Start Gcode” field, enter the “M92 E420.00” (as as for extruder 1 … and replace “420.00” with the actual measured value).

Cura will automatically run that G-code command (the M92) to change the E-steps on the fly each time it swaps between toolheads.

My Pro uses E429.71 on hot-end 1 and E446.9 on hot-end 2. But this can vary by filament (I have IC3D PETG loaded in both hot-ends.) If both extruders use the same E-steps then nozzle 2 under-extrudes by about 4mm (over a 100mm test). But this entry in Cura for each hot-end fixes the issue and they both perform as expected.

As a quick piece of information… I am not trying to print with dual filaments. I have given up that effort for the moment.

The problems I have been experiencing are completely trying to print out of extruder 1 only.

I am printing polylite PLA.

I have experienced this problem since we purchased the Lulzbot Pro last year.

We swapped the print head for the SL print head and were able to use the printer properly… until we had a bad print fail that broke some wires on the print head (working with Lulzbot support to get the proper parts to repair)

I have not performed any adjustments to the steps/mm yet. When I printed the black cube above last week, the measurements were extremely close, (19.98, 19.95, 19.92). Given the nozzle hitting problem I was having, and Lulzbot support response, I was trying to dial in the Z-offset, which was at the factory set -1.35.

I have printed numerous prints to try and get that dialed in. When the z-offset gets to about -0.9, the filament is too far from the print bed and does not adhere properly. I had adjusted it to -1.0 and was having decently luck with adhesion as well as a decent pattern on the first few layers.

I then printed a large print (14 hours) successfully and kicked off another larger print (22 hours). During that 22 hour print, I could HEAR the print head hitting the gyroid infill pattern when it finished on layer and was traveling back to start the next layer. A few times those ‘hits’ were quite loud.

About 6 hours into the print, I cancelled it because there were a bunch of layers that were obviously shifted. I suspected the nozzle hit the print and skipped a gear and was ‘off’ slightly…

So I attempted to do another auto-calibration (filament removed & nozzle cleaned).

After the auto-calibration, things were MUCH worse.

So I reset the printer to factory settings and tried to print a basic 20mm cube again.

Autolevel failed

I tried again and watched more closely… the nozzle was about 10mm to the left of where it was supposed to be. It was ‘wiping’ in air and then missing the auto level washer altogether… hitting the print bed instead, VERY hard.

So I ran another auto-calibration… then ran another 20mm cube. That is the ‘squished’ cube you see in the photo above and the short (third) video above.

Currently the printer’s steps/mm are set to (I’m assuming) the out of the box

x- 100 steps / mm
y- 100 steps / mm
z- 500 steps / mm

My nozzle offset is (based on auto calibration)

x- 49.29mm
y- -0.16mm
z- -0.48mm

My z-offset is currently -1.20mm

I am going to try and print any other 20mm cube and see what happens.

I had this “top of print not flat problem” on my TAZ 6. I was also printing with PLA. I added a fan blowing across the bed which I turned on after a layer or two, and the problem went away.

Remembering to turn the fan on and off manually was an issue so I mounted a couple of fans on the frame controlled by a hat on my RPi and a plugin (I wrote) which mirrors the M106 fan speed.

I wanted to try some adjusted flow rates… so I sliced the xyz 20mm cube in cura lulzbot edition and adjusted the flow down to 95% just to see what happened.

As the printer is autoleveling, it wipes itself properly, it probes the first sensor (front left) and the travel to the second sensor (front right) and I could SEE the print head ‘slip’ or pause about half way there and then the probe missed the sensor by 5-6mm too far to the left.

The lulzbot then tried to ‘home’ itself and start the process over. This time the nozzle was too far to the left and missed the wiping pad completely and the right nozzle ‘wiped’ itself on the print bed.

This video was me trying to see if the belt would slip again… it did not but you can see everything is off to the left

So it seems I have a x-axis belt that is slipping?

I was able to get a short video that shows the moment the offset happens…

I’m looking at this photo where you are holding the failed part that has the brim around the bottom and I’m noticing that the laps of the brim haven’t adhered to each other.

This tells me you aren’t getting enough “squish” – your Z-offset is still too high above the bed.

If you think about the filament extruding a round shape … not an oval … and then think about the point-tangent touches the bed … barely resting on it … and also barely having any contact with the adjacent lap of filament on the brim.

Now consider that you lower the Z-offset so that the .5mm diameter filament doesn’t actually have .5mm worth of space between nozzle and bed. It has to flatten out a little. This converts the “round” shape into a fat oval shape. More of it is in contact with the bed and it also gets wider which makes it bond to the filament in the adjacent lap. This creates a stronger bond.

I would lower your nozzle (z-offset) … e.g. if you were at -1.3 then maybe try -1.35.

ALSO, your slicer will have some 1st layer height (e.g. maybe it’s 0.35mm) … grab a pair of calipers and measure that brim to see if it is 0.35mm thick. If it’s thicker, adjust accordingly.

This assumes your e-steps are calibrated. Since you aren’t using extruder 2, just do the e-steps for extruder 1.

Follow these instructions to calibrate … with one caveat:


The caveat is I think there’s an error isn’t the compensation adjustment. Instead, use this math:

 New_Value = 100*(Old_Value/Measured_Extrusion)

E.g. the factory default E-steps value is 420 steps per mm.

It will ask you to manually measure and mark the filament 100mm above the extruder and again at 120mm above the extruder. Then extruder 100mm worth of filament (the link above explains how to do this … and do this with the tool head pre-heated to your normal printing temperature for PLA and for your PolyMaker PolyLite PLA that’s 230°C (you should be using that temperature when printing that particular filament on the TAZ Pro … if not, that could be part of the trouble.)

Example: Suppose you tell it to extrude 100mm but when you measure it, you find that it really only extruded 96mm (under-extruding by 4mm)

You would do: 420 ÷ 96 x 100 = new value (which works out to 437.5)

Then you would enter the new E-steps using: M92 E437.5

Then re-run the test (mark 100mm and 120mm points on the filament and extrude another 100mm at 230°C as before following the instructions).

If you actually do get the full 100mm then it’s time to save (commit to non-volatile memory) by sending the printer an M500 command. If it doesn’t come out right, you’d re-do the math, set the new number, and try again.

If you’re getting the correct extrusion (e-steps) and you have the correct Z-offset and your measured brim or skirt height is correct (measure it MANY different points… it isn’t unusual to find that one side is thicker or thinner than another if you did not get a perfect bed level.) then you should start getting better prints (again, print that particular filament at 230°C … I’ve run the temperature tower on it and that’s the number I consistently get with the best quality.)

Thank you for the in depth information.

In the print that I am holding in my hand, I had intentionally raised the z-offset because I was trying to resolve the ‘nozzle hitting the print’ problem when it was traveling. I was sacrificing some squish to try and correct that offset problem.

I’m going to perform the extrusion test and adjust my extruder settings… however at the moment I appear to have a bigger issue (that started with the print I am holding in my hand) where it appears my x-axis belt is slipping. See the most recent video I posted.

The X-axis belt is … unlikely to be “slipping”. The more likely scenario is that it is triggering the “bump sense” of the TAZ Pro.

See: https://marlinfw.org/docs/gcode/M914.html

Unlike some prior models which had physical limit switches, the Pro has few physical switches and relies on “bump sense”.

The notion is that that there’s a power draw as the motor is moving but if the axis hits the limit of travel, then the power draw will increase (spike up) when the motor hits the travel limit and fights to try to keep moving. The board senses this spike in power and interprets it as having reached the limit of travel.

But… it can be false triggered by just running into some resistance in movement during a normal print (such as a raised or warped surface). This creates a false alert that it has hit the travel limit … even if it has not.

The X-axis (and Y-axis) glide on ‘Drylin’ glide bearings. These are not mechanical ball-bearings but rather a nylon-like material that glides on the rods. There are a couple of screws that control the clamping pressure of your X-axis carriage. If these are set too tight, it can create excess friction/resistance which increases the power draw on the motor and that can trigger false positives – making the printer think it has hit an endstop even if it has not. These glide bearings naturally wear throughout the life of the printer. Just like the tires on your car … you don’t have to replace them after just one trip… but 30-50k miles later and … the wear is noticeable. As the bearings wear in, they’ll loosen up a little … but at some they get enough wear that they may need to be replaced (they’re cheap… these are like $5 things).

My TAZ Pro was a bit tight on the X-axis and was getting layer shifts. I tried adjusting the “bump sense” values but if I adjusted it to make it more tolerant of the friction, it would result in the printer not recognizing when it hit the end-stops when “homing” the axis.

Ultimately I had to slightly loosen the clamping pressure on the bearing. You can check step 7 on this page:


This shows which screws adjust the clamping pressure on the drylin glide bearings. They should be tight enough that the x-axis carriage doesn’t wobble … but not so tight that it creates excessive resistance and drag on the rods. This is a bit difficult to tell when the belt is attached because sliding the x-axis carriage means the belt also wants to spin the motor (and that does create a bit of resistance.)