Very inconsistent z-level homing

I’ve been having a heck of a time getting my prints started, because I usually have to try at least 10-15 times before I get one that will do a decent first layer. My problem is that when i’m setting my z-stop screw, the z-axis will be very inconsistent each time it calibrates itself. I’ll have it dialed in perfectly, then it’ll start a new print, and, even thought I just calibrated it 10 seconds earlier and the set screw has not changed, it’ll decide to either start up to 2 mm higher or 1 mm lower than it is supposed to. This makes getting a good first layer much more of an art than a science.

Is there perhaps a way to slow down the z-axis when it’s calibrating itself? This is getting to be a major headache.

Will you post the following:
Slic3r configuration file (File > Export Config [.ini])
G-code file [.gco or .gcode]

Will you describe how you level the bed?

I’ve had the same problem since I received my TAZ. I found that the threaded insert that holds the zero screw had been pressed in at a slight angle and that it has more lateral lash than the spring can compensate for. This allows the zero screw to wobble a few mm’s in any given direction, hence inconsistent zeroing. Anything that will tighten up the fit (teflon tape, hot melt glue, grit…) will help reduce this problem.
I’m in the process of designing new X and Z motor mount parts that will accommodate a standard, inexpensive micrometer head to replace the z-screw assembly. This would be overkill for most people but that’s the way we roll…

I’m not at my machine I use for slicing, so I’ll upload my settings later tonight. I use a piece of paper to level it, and then when I’m setting the z-screw I use a piece of paper so that it’s the correct height off the bed. I think, however, Orias, that you might be misunderstanding me a bit. If I hit the z-home button and adjust it so that it’s at the proper height, if I raise and then hit z-home again 5 different times, it will be at 5 different physical heights.

Yes, that’s exactly the same problem that I’ve been having. I’ve successfully zeroed and leveled 3DP beds thousands of times so it’s not the leveling technique. As John said, I can perfectly zero and level the TAZ, hit the Z home again, and get as much as +/- 1mm variation in the zero height. Tightening up the play in the z-screw has helped but it is still too flaky.

Some things that have helped others are: making sure the Z axis endstop is secure in it’s housing, checking the X axis threaded rod and resecuring the hose clamps.

I’ve been having the same issue as well, I’ve found it’s important to always straighten up the leveling screw… but it’s more of an exercise in patience.

also make sure you only go in one direction.

That is…always bring the Z down only…if you go to far. go up 1mm, and start again. that way any hysteresis is at least consistent.

and always level with the bed hot, as it does warp a little.

You can check to see if you hose clamp are tight enough if when you pull up on the threaded rod lightly, and the tube should not move up and off the motor shaft. If it does you will need to tighten the zip ties.

I just thought of some other things that you might want to check that might be causing “leveling” issues.

  • 1)Is the Extruder mount secure to the x-carriage. If the screw is loose the whole extruder could wiggle up and down a bit.
    2)Is the y-axis extruded aluminum bars touching the bottom frame and are the thumb screws tight. If those screws are loose the whole y-axis can wiggle up and down which can make leveling the bed nearly impossible, unless your desk/table is perfectly level and is vibration isolated.

Great suggestions, I’ll try some of this stuff tonight.

One thing that was mentioned was making sure the extruder is secured to the x-carriage to prevent wiggle. It’s secured very well to the x-carriage, but the entire x-carriage wiggles on the smooth rods. When light force is applied to the carriage, the nozzle can vary in height by up to 2mm. It should be MUCH more secure, right? It seems that there’s quite a bit of play between the bearings and the smooth rod.

see here:

there is a small fix that helps, but theoretically gravity will always keep the nozzle at the same spot.

I was having a similar issue on my MendelMax 1.5. What I found out is that it was the way the firmware (Marlin) does the homing command.

This was the process:

  1. My Z axis is at zero, I check my layer height.
  2. I adjust the screw to change the height slightly.
  3. I tell the printer to home the Z.
  4. The Z end stop switch is still activated, since I haven’t adjusted the screw enough to deactivate the switch.
  5. The firmware rasies the Z axis slightly to try to get the switch to deactivate, but the throw on the switch is greater than this lift.
  6. The firmware I guess goes into an error mode where it detected that lifting the Z didn’t deactivate the end stop.
  7. It lowers the Z axis, but for whatever reason, it ends up lower than it originally was, then calls this position 0.

So to get around this, now whenever I make a change to my screw, I lift the Z axis 2mm, then I tell it to home. I also removed the starting gcode that homes the axes. I just make sure I home my axis myself before each print.

my problems are similar to this, after every print i take the nozzle to the middle of the bed and check z home with paper. whenever i click print on a loaded file with bed warm and nozzle ready the head goes to home corner, lowers z axis, hits the endstop early even though i know its level. it will print about .1 to high and not adhere to the bed if i continue. my solution that worked for me is to get my nozzle/head hot, load my gcode, click print, immediately pause the print, click z home and reseume and i get a good first layer every time it seems. havent had to level my bed in a while.

Oh, I hadn’t even thought of doing that! It seems silly that a workaround like that is necessary, but I’ll give it a shot on my next print and see if it helps!

For what it’s worth, Jackson’s suggestion is what’s working, but it still seems that doing things that way shouldn’t be necessary.

You can change the amount that the firmware retracts after it hits home the first time in Configuration_adv.h.
You would change


to something higher like


Also note that materials will expand when heated. Your nozzle position at room temperature will not be the same as it is at printing temperature.