SOLVED: Taz 6 auto leveling is >0.5mm off (NOW PERFECT TO 0.01mm!)

EDIT: Solved this - read the fifth post below for a method to determine if your bed is physically out-of-level (mine was >0.5mm off, more than auto-leveling could address), and a technique to get your automatic bed leveling to within 0.01mm at each corner.

I am having problems with automatic bed leveling. The result after leveling is the front-left corner and the back-right corners are a >0.5mm different than the other two corners.

I have done the following…

  • With automatic leveling off (M420 S0), I’ve manually leveled Z to ensure the physical system is level (note: if I leave automatic leveling off, it is better than turning it on)
  • Verified that the washer thickness is the consistent between the corners (it is within .01mm)
  • Verified that the distance from the bottom of the aluminum bed to the top of the washer is the consistent (it is within .02mm)
  • Verified that the distance from the bottom of the aluminum bed to the top of the heated bed is the consistent (it is also within .02mm)
  • Swapped washers, standoffs and flexible corners between the sides (no change), and cleaned under and around all of them.
  • I have verified that leveling is “working” by placing a thick washer on top of one corner washer and the resulting Z position is correctly offset on future moves
  • Measured the deflection on the X bar to ensure that wasn’t adding to the problem (it isn’t, and the problem is opposite corners not side-to-side)
  • I have changed firmware to latest release, and then back to 1.1.5 and no change.
  • I am not using any software, just manual G-code commands (M420 S0, G28, G29, G1 in that order)
  • I have done a “Restore failsafe” on the firmware with no change in behavior
  • I am able to get great small-to-medium prints at the center of the bed when I adjust z-offset correctly, but large prints consistently are a problem as I can’t offset sufficiently for this.
  • I have tried adding spacers to raise the back-left and front-right washers above the heated bed (increasing the measured gap by about .6mm) and then leveling gets very close, but I’m unable to adjust Z-offset sufficiently (I have to now offset more than -2mm, which is the maximum of Z-offset).

I’m quite lost here - since the measurements from the aluminum bed to washer/heated bed are within .02, and I’ve verified leveling is working - so I don’t see why the resulting automatic leveling is off by more than 0.5mm.

Any help would be appreciated,



Can somebody run a test for me on their Taz 6? I’ve found that directly after the G29 bed leveling, I can position the extruder over the washers and they are different in “leveled” height by 0.4mm - twice filament thickness!

Here is the G-code sequence (after clean power up) that I run, and each time the results are exactly the same (I’ve run this many times). The extruder just barely touches the washers, with no deflection (note: there is no deflection during the G29 run either, very clean):

G28 ; home XYZ
G29 ; auto level
G1 X-8 Y-8 F8000 ; move safely to font left
G1 Z0.8 ; move down to front left washer
G1 X290 Z3 ; move above front right washer
G1 Z1.2 ; touch washer
G1 Y290 Z3 ; move above back right washer
G1 Z0.8 ; touch washer
G1 X-8 Z3 ; move above back left washer
G1 Z1.2 ; touch washer

The test if somebody else could help would be to do this, but for each of the G1 Z## commands (to move on top of the washer), try slowly reducing your Z value until it just touches the washer, such as:

G1 X-8 Y-8 F8000
G1 Z2
G1 Z1
G1 Z0.8
G1 Z0.7

etc. until it touches the washer. What are the four Z values you end up with? Something seems very wrong that I’m off by 0.4mm!

Thanks for the help!

Since my computer isn’t right next to the printer, I modified your test slightly. I used M119 between Z steps and stopped when the Z-probe showed as triggered. I also did a G28 X Y and then G28 Z before the G29.

Using .1 steps for Z:
LF: 1.7
RF: 1.7
RR: 1.7
LR: 1.4

Here is the output from a verbose G29:

Send: G29 V4
Recv: G29 Auto Bed Leveling
Recv: Bed X: -9.000 Y: -9.000 Z: 0.469
Recv: Bed X: 288.000 Y: -9.000 Z: 0.457
Recv: Bed X: 288.000 Y: 289.000 Z: 0.485
Recv: Bed X: -9.000 Y: 289.000 Z: 0.204
Recv: 4th probe point, distance from plane: 0.29
Recv: Eqn coefficients: a: 0.00045328 b: -0.00039765 d: 0.39637560
Recv: Mean of sampled points: 0.40393743
Recv: Bed Height Topography:
Recv:    +--- BACK --+
Recv:    |           |
Recv:  L |    (+)    | R
Recv:  E |           | I
Recv:  F | (-) N (+) | G
Recv:  T |           | H
Recv:    |    (-)    | T
Recv:    |           |
Recv:    O-- FRONT --+
Recv:  (0,0)
Recv:  -0.19994 +0.08144
Recv:  +0.06531 +0.05319
Recv: Corrected Bed Height vs. Bed Topology:
Recv:  +0.00000 +0.14675
Recv:  +0.14675 +0.00000
Recv: Bed Level Correction Matrix:
Recv: +1.000000 +0.000000 +0.000453
Recv: +0.000000 +1.000000 -0.000398
Recv: -0.000453 +0.000398 +1.000000
Recv: X:-9.00 Y:289.00 Z:6.28 E:0.00 Count X:-904 Y:29044 Z:10029
Recv: ok P15 B4

That makes perfect sense and is an even better test. Thanks.

So your unit has three corners working great, but one corner 0.3mm off. That is a lot - do you find large prints that approach that corner have first layer problems?

I don’t understand why it isn’t dead-on. The stepper granularity on Z is far more accurate, so why wouldn’t the extruder be perfect on the measured corners (I totally understand why it is likely off across the bed)?

Since you have the same problem, this feels like a firmware issue since the hardware seems 100% consistent, and it happens on more than just my printer. Maybe I just misunderstand how leveling is supposed to work, but for me, my printer is useless with automatic leveling for large prints (anything larger than about 50% of the bed size, where the leveling deflection exceeds layer height)

I wonder if the only viable answer is to eliminate automatic leveling, do some mod to the bed for manual leveling, and return to the land of hand-checking on a regular basis. Or perhaps if I could manually level the bed, the automatic leveling would work better for small adjustments? I think I’ll go run the same test but with leveling turned off and see how far of the bed is without leveling…

(EDIT) I just ran that test (with automatic leveling off), and found the bed is off by as much as 0.9mm, with the four corners being:

1.8 0.9
1.5 1.3

This also shows I’m off by 0.2 on my Z leveling across X (which I can adjust). I’ll work on trying to find a way to level across Y, and compare manual leveling with automatic leveling once I am closer to being physically aligned (/EDIT)

Thanks so much for your help! If anybody else can run the same test it would be interesting to compare results. Or if perhaps anybody can explain WHY this is happening, it would be amazing.


I think (hope…?) I have solved this problem! TL;DR? Bed has to be physically leveled to far better than 0.5mm in order to automatic leveling to work.

It became clear that my bed was out-of-level enough physically that the auto-leveling was just plain messing up - it was off by more than 0.5mm. To fix this on the Taz 6, I had to come up with some trick to level the bed physically. I made a very simple one-layer model of soft corner mounts, so I could place them under the pads but above the aluminum bed - thereby raising the heated plate and the washer (on the standoff).

To determine how much to offset each corner, I used the following commands:

M420 S0		; turn off bed leveling
G28			; level X/Y/Z
G29 V4		; level bed, with full diagnostics

This would come back with a report something like this:

Recv: G29 Auto Bed Leveling
Recv: Bed X: -9.000 Y: -9.000 Z: 0.209
Recv: Bed X: 288.000 Y: -9.000 Z: 0.174
Recv: Bed X: 288.000 Y: 289.000 Z: 0.026
Recv: Bed X: -9.000 Y: 289.000 Z: 0.541

From the above, you can see I was off by more than 0.5mm (comparing the Z values for each corner). The highest corner in my case was the back left corner at 0.541, so I needed to raise the other corners (since it’s much harder to lower a corner).

What I did is design a simple one-layer shim that matched the corner gaskets (that hold the standoff to the washer and the two screws), and printed about 10 of them. I inserted them above the aluminum plate but below the gasket - thereby raising the standard and the heated bed. After each attempt, I would run the g-code sequence again looking at the Z numbers. As I got close, I took a flat blade and scraped some of the shims to get back a tad of space.

Once I did this, I got all corners physically within 0.07mm!

Recv: G29 Auto Bed Leveling
Recv: Bed X: -9.000 Y: -9.000 Z: 0.484
Recv: Bed X: 288.000 Y: -9.000 Z: 0.473
Recv: Bed X: 288.000 Y: 289.000 Z: 0.459
Recv: Bed X: -9.000 Y: 289.000 Z: 0.523

Now when I run automatic leveling - looking at the Z distance at each washer (and using the M119 command to verify z_probe accuracy down to 0.01mm) - I am now level at all four corners within 0.01mm!

I’m going to run a series of print tests, but it sure feels like I’ve at least nailed the basic leveling problem.

Big shout-out to b-morgan for helping! His pointing out the usage of M119 with G29 V4, and running a test to show his printer had similar (but far less) alignment issues helped big time to figure this out. And … @b-morgan … consider adding a .2 shim to your back left washer! That should nail your alignment…



Can you post the .stl for your shim, please? I’d rather not reinvent the wheel :wink:

Here is the STL for the shim. Good luck!
Leveling corner.stl (36.4 KB)

1 Like

Update for anybody else having leveling problems and reading this … I am now printing objects the entire size of the bed with perfect first layers. I just took off a two layer wide, one layer deep 9" circle and measured it to find it was exactly 0.2mm at all locations around the circle. Follow the technique above to level your printer - it makes an amazing difference!

I suspect that I am having this exact issue and would like to try and level my bed the same way. I am using Cura, but can use something else for this test if it works better, but could you please explain to me what code to insert, and where to insert it in order to perform the z probe test you explained? Thank you, I just need a little more help, but feel I may have finally found my problem with your help!

Ok it was easy to figure out. I went to the console, type the following:

M420 S0
G29 V4

My problem turned out to be the x axis not level. This was a fantastic way to really dial it in. Though I am not yet .01 difference on all corners, I am .1, and prints are turning out much better in the corners. I am surprised at how far I was off, as I measured so many times with a caliper to set the z screw. Now I can at least try and dial it in even closer. I’d really like to know more about the M119 command though, how to use it along with the other three steps. So happy you supplied this info, thank you so much.

I just finished getting my bed level here’s how i did it… found out how much i was out front left corner apx .6mm had to raise the other three… i had a old ‘feeler’ gauge set and cut the correct size thicknesses i needed for each corner… the trick was to cut three for each pad so as to to distribute the load evenly when you tighten the two allen bolts or the pad will distort and set crooked . took off the washer took shims (3) and placed them under the printed pad and tightened the two screws that hold the pad to the alum plate … then i noticed that when i now tighted the washer it was a little cocked so i made one more shim and placed it on the backside of the screw under the washer and tighted the screw so the washer is now flat (screw - allen bolt ). got all my corners to within .05-.1mm… didn’t know about having to do the ‘z’ offset afterwards support helped out with that now i just have to tweek my z offset a little more … but i’m happy for now … i can post pictures if anyone needs

First off, kudos to cmidgley for this exceptionally informative post! I ran the tests and found my tolerance differences to be .542 max between the largest and smallest reading. I printed off the shim leveling corner.stl files with a layer height of .05 and added them where needed. Two in the right corners and one in the back left. I then ran multiple 10 tests varying times over several days. My average tolerance is .130 And now after the new firmware release v1.1.9.34 I’m getting readings within .101 and .107 (only ran 2 tests so far with the new firmware).

These are the commands I run:
M420 S0 ; shut off auto-leveling
G28 X Y ; home the X & Y axis
G28 Z ; home the Z axis
G29 V4 ; Perform Auto Leveling Test, verbose output


… didn’t know about having to do the ‘z’ offset afterwards support helped out with that

I don’t understand why you would have to re-adjust your z-offset?
If you placed shims under the supports that hold the glass bed and then secured it back with the washers, you effectively raised the bed and your z-offset the exact same height in parallel, thus which means your z-offset was raised 0 height and remained exactly the same as it was before.
z-offset is measured from the top of the washer to the bed. So the top of the washer is the 0 reference point, move down in a negative direction towards the bed, the height between your bed and the top of the washer is the z-offset.

Secondly the screw should not go in crooked or slightly cocked, that would’ve been your fault not screwing it in correctly and started cross threading the screw. I experienced the same problem, screw was going in a bit crookedly, I backed it off, re-adjusted and screwed it back in. It went in straight and flush with the top of the washer.

hey joe i’m not the only one that has noticed cocked washers. here’s the real problem! see video also notice the picture without the back support screws the washer will tilt every time do you notice the ‘gap’ under the washer…

MY GAWD! Thank you! I tried everything up until I found you post. Come to find out my deviation was .7mm. The shim idea worked beautifully and I was able to physically level my build plate up to a .08mm deviation between the washers. I do have one question however, how do I take this down to .01mm as you did using the M119 command. Could you please elaborate on this?

Thanks for your contribution

No real magic here, and if you are at .08mm you are set! M119 just lets you know EXACTLY when the probe senses the disc, so you can slowly lower Z until it touches (tedious because you need to move it just a bit, and check M119) but you can then know how far off you are and either adjust the spacers, or change your z-probe height. But I’ve found since writing this that it isn’t that important, at least for me, as I adjust z-probe a fair amount based on filament type and print head being used. Get the table (mostly) level is the key to success. Also the newer firmware does a much better job of leveling (smarter about how it lefts off the probes to get an accurate read) and that helps.

Glad this was able to help you. My table has remained level ever since doing this and I’m doing edge-to-edge prints (massive) with great success.

I would like to thank all who have contributed to this thread. My bed was way off and I did not know what to do about it until this thread came along. Now, after printing and placing several shims and understanding the leveling commands, I now have my TAZ 6 dialed in pretty well.

Once again, thanks!

I want to add my thanks to all involved in this discussion! Thank you for the explanations and ultimately the solution!

Many hours of troubleshooting and trying to figure out why my Z-axis lead screws would be off almost a 1/2" from one side to the other after a print have been resolved. I followed the Lulzbot tape measure method of leveling by hand with the motors off. I measured with calipers from the bed base to the X-axis guide rods and no matter what I did or how clean my nozzle was it would go out even after a small print. After following this method I found my bed was out of level .6mm and got it dialed in to .09mm! This has FINALLY resolved my issue. Ive done 3 prints to perfection with 2 of them taking up almost the whole bed. My lead screws are still in sync and you could ice skate across my first layer its so smooth compared to what it used to be. No drag marks, great adhesion, and no split layers up the print. To make sure my nozzle is making proper contact I run the M420S0, G28, G29V4 test before each print. Thank you for this resolution!

This thread’s solution worked for me.

Taz Pro Solution Procedure:

STEP 1: Diagnose the specific unevenness of your 3D printer’s bed. Make sure to clean your nozzle first for accurate Z-probing.

  • Taz Pro -> USB Cable -> Computer with Cura Lulzbot Edition
  • Cura LE -> Monitor -> Disconnect, Connect, Console


  • M420 S0 (disable auto leveling)
  • G28 (auto home)
  • G29 V4 (auto Z probing, full diagnostics)

STEP 2: Add shims under the bed corner standards. Measure Z values and add/remove/adjust shims accordingly.

Shim STL file (0.2mm thick, single layer printing recommended) attached. Print about 10 of these as someone wisely suggested.

Use a 2mm hex key to manipulate the 1 washer-screw and 2 standard-screws per corner.

I did not like how the washers bent at an angle after applying some shims, so I redesigned the shims to have a smaller center-hole (3.5mm) to lift the metal spacer as well- but this was a problem as the washer needs a conductive path to the bed for the Z-probing electrical-sensing. So I reverted the changes and instead replaced the 8 standard-screws with A2 stainless steel M3, 16mm length, philips button head screws. The new screws (bigger heads) helped the washer sit at a more even angle, improving the accuracy of the Z-probing process.

STEP 3: Adjust your printer’s Z-offset then test your bed’s practical evenness by printing a calibration part.

When you add shims to the bed corners, your bed surface height may change. Therefore your printer’s extruder Z-offset may need to be adjusted (usually, raised; for the Taz Pro, raising the extruder = adding the the Z-offset; my z-offset went from -1.4 to over -1.3).

Testing STL file (270mm x 270mm x 1mm, 2mm line width) attached.

EDIT: Realized that the conductive path is maintained by the washer->screw->bed contact. Bed corner shim STL file version 2 reduces the washer mounting angle, hence improving z-probe accuracy. Dimensions of bed corner standard also attached for your reference. Also, for ease of shim adjusting, I replaced the aforementioned 16mm screws with 12mm screws installed in reverse (screwheads are under bed).
bed_corner_shim.pdf (64.6 KB)
bed_corner_shim_v2.stl (43.1 KB)
perimeter_270.stl (15.7 KB)
bed_corner_shim.stl (54.8 KB)

1 Like

After going through the whole thread I printed the shims and then got these reading close to approximate
Z: 1.001
Z: 1.074
Z: 0.842
Z: 1.046
However after adjusting the z offset to -1.1mm. I am still having issues with front left corner of the bed. the front left corner looks approximate 1.5mm printing in the air.
What possible solution to level the bed and get a freaking plane print