Issues with Z-offset

Basic Information:

Printer Model: Ender 3 V2 Neo
MCU / Printerboard: Creality 4.2.2
klippy.log (7.8 MB)

Describe your issue:

Hi all,
I am running into an issue with Z-Offset. I have had this system working with the same printer.cfg & printing successfully so I have no idea what is going wrong. It started when I had an issue with a thermistor but thankfully that is resolved & fixed after a warranty replacement by Creality/Amazon. I had a Spider V1 hotend & had to replace it under warranty, which is now done. After putting the new one on I was a good boy & redid all my probe calibrations etc x & y axis, bed mesh, etc. When it came to z-offset it gave me an error but I was able to bypass that by uncommenting the z_offset = 0 in the BLTouch section of printer.cfg. I managed to successfully set the z-offset using a feeler guage (something I have done dozens of times) Only now when I try a test print the nozzle eats the bed, every single time. I must have been through the process 10 times today, googling & searching Reddit etc. The only thing I can think of is a Klipper update which was applied before the new hotend went in, otherwise it is identical to a system that was working perfectly well. Am I missing something blindingly obvious? (probably) or is this a bug? I am going to step away now before I put it through a window :rofl: any assistance greatly appreciated.


Hello @Barkingmad15 !

What error?

Maybe this would have been better:

Always do this after you did some changes at the extruder/hotend unit.

Why do people always run to that … place in first place?

A Klipper update does not change any parameters.


I said in the message that I did all the calibration steps over. I said I did Z offset. The error is that it seems like the z-offset is not being remembered & when I try to print the nozzle crashes into the bed. This is the exact same setup I have been using before, I only re-did the axis calibrations again because:

  1. I replaced the hotend, albeit with an identical one.
  2. I have had the printer on a bench on it’s back so I could get to the mainboard & may have accidentally thrown out bed height etc.

When the nozzle crashes into the bed I have to do an immediate emergency stop. It does not flag an error as such in UI. I used Reddit because I was unaware of Klipper Community Forums before now.

As for Klipper not changing any parameters, I would not have a clue about that.

Looking through your log I see many many changes to your z offset, and the numbers are all over the place. How are you calibrating the z offset?

That’s exactly the point. I am using PROBE_CALIBRATE to start the z-offset calibration. Once it has homed etc it brings up a dialogue box which you adjust by pushing buttons, yes? well, sometimes it starts at 12.347 (or similar) & then you another time it will start at but & this is the important bit, no matter where it starts or what you set it at, the nozzle crashes into the bed at the start of the print. I have no clue as to what may have changed to cause this. It’s not as if I have put a different style hotend on & it’s too short, this one is identical to the one that replaced it. I just feel like I am going in circles.

The number it starts with is irrelevant. It’s just the spot where the printer thinks it is based on the z offset you started with, but it’s not correct until you actually complete the calibration and run save_config.

Ah, I see, OK thanks, that helps a bit, I thought I was going truly mad. In the end the results are the same though, each time I save & restart the nozzle is just a little bit lower than the bed. It’s not much, but enough to cause damage if I let it. It’s not the nozzle, although it is a brand new one, it’s a proper mk8 nozzle for a mk8 heatblock. Also I did all the routines of finger tight first then tighten again at print temperature. It would not surprise me if it was something stupendously simple & I am just overlooking it! That’s the annoying thing, I am doing exactly what I always did!

So to clarify, you run probe_calibrate and then move the nozzle down until a piece of paper just begins to grab. Then you run accept and save_config. Is this the procedure you’re using?

Yes, with the exception that I use a feeler gauge, which for me has a better repeatability accuracy.

This should not be a problem with a CR-Touch but just to make sure I lowered my bed as far as I could & adjust the screws until flat, tried to do a bed level mesh (after homing) & now I get “horizontal_move_z can’t be less than probe’s z_offset”
If I go into printer.cfg under BLTough z-offset is commented out. if I remove the comment that clears the bed mesh error!.

The proper way to clear that error is to increase the horizontal_move_z in your bed mesh section. It’s at 5 right now which is less than your z offset.

That’s handy to know. Thanks. Sorry if these are simple solutions i’m pretty new to Klipper & doing my best wading through all the configurations. I wonder if it would help if I lower the CR-Touch probe? I mean, nothing has changed it’s where it was before, but if that helps…

Also to clarify, it’s commented out when you run save_config. The value that is used is at the bottom of your config in the special save_config portion.

Yes it is. Ok it won’t let me post less than 20 characters so blah blah blah :rofl:

Yeah, so don’t uncomment the value at the top. Fix your horizonal_move_z value, and use the calibrated value in the save config section.


OK, i’ll do that & run a test, thanks.

Well, whatever that setting changed it seems to have fixed that issue. Thank-you so much for your help. I have been pulling my hair out over this all day, not that I had much to start with.

I am having this same issue with nozzle hitting the bed. It won’t let me adjust z-offset to a negative value. When I use probe_calibrate and set to 0 (even if nozzle is too far), and comment out the z offset at top, I get an error that I have no z offset even though it is at the bottom under the do not edit

Hello @franknbeans !

Hard to tell without further information.

For this thread is marked as solved and also for the age of this thread, I recommend to open a new thread with all requested information.

1 Like