Bed Leveling using a Digital Indicator

Ok, I have seen a few confusing things asked about leveling the bed using a digital indicator. I will try to clear up a few things for you.

First there are two attachment points you can use. One is the rail.

This one attaches to the X rails. Nice concept but has a flaw. You have to remove it to put it on the other side of the print head. Could possibly introduce error. Plus its putzy.

The second attachment is in the print carriage itself.

You do not need to remove it to move to each corner of the platform. No error is introduced. And the measure point is keyed and referenced to the thing that most matters, the print head. This thing is for dial indicators with a mounting screw that is horizontal in the rear.

I made a derivative of that thing for use with dial indicators with a vertical mounting screw in the rear. Its here:

Ok, I know this is a long shot, but on the off chance yall have a Headspace gauge from Innovative Technologies, well, my thing is for you :slight_smile: I also included a jig for the end of the indicator’s shaft so you don’t have to remove the headapce gauge fixture. Simply print the jig from my thing and glue a 9mm 115g copper placed/jacketed round nose bullet in the socket. The copper glides extremely smoothly across the build plate and also can easily take the heat.

Leveling your bed with a dial indicator does not differ based on which mounting solution you chose. The process is exactly the same. The process is not about measuring any actual distance at all. Its about picking any corner of the bed (I chose front left as thats home for the taz) and then measuring how much DIFFERENCE there is between it and each of the other 3 corners. And it really doesn’t matter which corner you pick as home, just pick one and stick with it. Be consistent.

1: Heat bed to normal printing temps (to account for swelling and warping at working temp).

2: Move to the front left corner and zero.

3: Move to the front right and adjust hex screw until dial reads 0.

4: Return to front left and re-confirm zero.

5: Move to the back left and adjust hex screw until dial reads 0.

6: Return to front left and re-confirm zero.

7: Move to the back right and adjust hex screw until dial reads 0.

8: Confirm all 4 corners and make any minor corrections.

9: Finally check the center to confirm its near 0. It may or may not be zero depending on if your bed is sagging a little. At least you will know and by how much :slight_smile:

A: Replace the print head and re-adjust the Z-stop as indicated in your Taz manual.

And yes, as you can see, my bed is within half a thousanth of level. Cheers Lulz :mrgreen:

Nice tutorial. The pics are great.

I used the first dial gauge holder you mentioned… Moving the gauge from one side of the toolhead to the other wasn’t ideal. Thinking about making a holder that mates onto the X-carriage or toolhead. Would make it more convenient to use since no removal of the toolhead and less wear on the connectors. Really, I just want the X-axis control as with the holder you designed. Magnets to secure the dial holder onto existing x-carriage screws come to mind, but it definitely needs a little more thought.

Continuing from the other thread… My ultimate end goal is to develop a gcode script that moves the gauge around to the sampling spots. I’m not sure about adding pauses for adjustments… I suppose you could add a line to wait for the bed or hotend to reach a certain temp then move to the next spot…

Simplify3D had a bed leveling script that does exactly that.

You’re right. I really want something for a quick check on the bed. Store the code on the SD card, clip on the guage and select the code to print/run. Basically negate the effort to click “Next”. :slight_smile:

I’m also using the second method shown above. I find it works really well. I have two problems…

First, it doesn’t help with calibrating the two z axis motors. It is very difficult using the ruler technique suggested by AO since there isn’t a flat surface on the metal print bed subframe. Even if I home the y axis, there just isn’t enough room. I’m thinking of using something like the top gauge mount above to do this, but it hasn’t bugged me enough to follow through on it. Instead, I use the little sliding clip on the ruler to lay on the metal tray and rest my chin on the desk to eye the bottom of the rail.

The other problem is that when using the gauge, since pronterface refuses to work without the thermistor attached I have to use the LCD panel to move the gauge around. To get the plate height dialed in perfectly requires a lot of tweaking and I find the timeout on the LCD constantly fights me. I’m not as interested in have a gcode script that moves it around as I am removing the LCD timeout so I have complete control over when it goes back to the top display. This way I don’t have to break away from tweaking the bed height to click through all the menus again and again.

BTW, I mounted the digital gauge using a printed bolt and nut… Was pretty excited that all that I needed to buy was the dial indicator itself.

Hmm… Once you level the bed with the dial gauge, do you really need to go back to make sure the Z-rods are level?From a pure printing perspective, I would say no… The bed will always be “level” with the Z-rods.

From a mechanical perspective, you want the Z-height to be pretty close. I think the offset could hurt the machine after use.


I agree measuring to the x axis rods from the aluminum bed per the instructions is essentially impossible to do accurately.

Also the entire bed design of the Taz is no good frankly. What’s needed is an aluminum plate that has the heater element in it. That plate has the leveling screws in it, that pass through and have thumbscrews underneath it to level that plate. Then the glass plate should sit on top of that (dropping into a machined recess to hold it in place. You could cut the glass to have handles on it that protrude beyond the heated leveling aluminum plate. This way when the print is done, you can simply remove the glass from the aluminum plate to cool more quickly. And you never lose level, or it is trivial to dial it back in.

I have only had to adjust the Z-rods once, but I check them every time I swap out the extruder. When I do check the Z-rods, I always do it before using the dial gauge. Obviously adjusting them afterwards would invalidate the previous leveling.

I hear what you are saying about the leveling the bed with the dial gauge being enough, but I actually found more consistent numbers after I ensured the Z-rods were even. Maybe it was just my comfort with the dial gauge process had improved, but I see no reason to keep them uneven.

BTW, regarding using the dial gauge, my process is to move the print head/gauge to the location I want to test (typically I start at (0,0) and get a reading then ensure (x max, 0) matches. Once I’m happy with y = 0, I do the same with max y (making them read the same values as before). If I have to make any significant adjustments it takes several rounds before they all look good. Finally I move it all over the bed taking readings. Usually the center of the bed is extremely close to the readings in the corners. I’m a bit concerned how it will be after I apply the PEI since it has a slight curve in it.

Also, when reading the gauge, I typically pull the pin up, then bring it back close to the print bed surface and let it go. It hits a little hard, but I tend to get very consistent readings. I sometimes need to dust the bed or wipe the roller ball on the bottom of the gauge as it tends to pick up ABS glue if the surface is treated and show variations.

I made a dial indicator mount the snaps directly onto the print head. Although it allows bed leveling without removing the print head, since the print nozzle does not coincide with the indicator sensor, the indicator will not get to every corner. I was able to level the bed to within 5/1000".

Very nice! Thanks for sharing!

If the Z motors are not level they can bind up and get out of sync. So it’s important to get them aligned first, then level the bed.

Will you share this file? I’d love to do this!

Thank you =)


Here is a link to a posting in Thingaverse;

I ( a noobie :wink: ) too have seen the apparent hump in the bed but I also think it’s the weight of the printer head torqueing the rods. I liked the idea posted here of using a digital indicator to level the bed but wanted something that didn’t require removing the head or otherwise modifying the mechanics of it. Here’s my solution. Smaller indicator with less weight and this let’s me get within about 1/2" of the actual print nozzle position. Happy to share design if anyone interested.