Z-offset saving but not changing nozzle heigth

Basic Information:

Printer Model: voron v2.4
MCU / Printerboard: octopus v1.1
Host / SBC rpi 4
klippy.log
logs-20241020-074325.zip (11.5 KB)

okay I read the knowledgebase

But I do not have a BL touch so not sure how much of this I can correlate with.
Outside this post I can find nothing that exactly describes my issue.

What I am experiencing is this: I set the calibrate probe thing with paper and save the value, do config save and restart.

I print my bedlevel gcode, freshly made, and found it is a little too far of the bed. I babystepped down to a perfect first layer and save it from mainsail, but did the same from the klipperscreen at least once.

When I look in the config bottom section, I can see the various references to z-ofset and the probe z-offset have changed.
I assume the probe z-offset changed when I did the probe calibrate, because above in the config section on probe it is a different value which got commented out!

#*# [probe]
#*# z_offset = 7.360

and the z axis endstop changes when I save the babysteps:

#*# [stepper_z]
#*# position_endstop = 0.650

Thing is, I see the endstop changing but next print the nozzle is still at the same heigth of the bed! I also tried sending gcode directly in the terminal to change the z-offset, and this number is changing exactly as expected.

I am thinking this position_endstop value does not get used somehow, and when I find the right way, this vallue which changed many times by now, will crash my nozzle into the bed!

From where can klipper get the wrong value, which clearly did not change with save config and restart? Is it because some klicky stuff is outside my priner config, as described in the BL touch link?

Please point me in the right direction on this and also how to erase these piled up changes so I start fresh with it being the same heigth as it would be after the probe calibrate?

Can I reset this value to zero in the bottom section? or is this not going to work? I know it says ā€œDO NOT CHANGEā€¦ā€ but still :grimacing:

I am going mad, or slightly more mad then I already was!

Yesterday largest part of the day I tried and tried to get the print to be closer to the bed. I monitored the values in the bottom section of the config file like a hawk and I am sure they changed according to the amount of babysteps. But upon saving it all and restarting, the next print was again too far away from the bed. It needed around 0.3 mm adjustments, which is a huge amount imho.

Today I thought ok, lets start again from the calibration probe section and do it anew.

This time the z-offset in the probe section changed again by some value around 0.16mm, which surprised me a bit.

The endstop value is still like yesterday evening, 0.650

I do a print, fully expecting to have to babystep again, and it comes out perfect!
Seriously ( fill in something like a swear word).

I have no clue why but this feels like something did not respond as it should have done the first time around. Yesterday I did many checks and tests and everytime the system had to restart after a save.
The only thing I can see that was different this time is that i completely shut all the systems off in the night and did a complete boot this morning.

I donā€™t expect that to make any difference but who knows?
latest klippy included for those who want to compare them and tell me what I am doing wrong.
logs-20241020-120529.zip (175.4 KB)

For a endstop you use

Z_OFFSET_APPLY_ENDSTOP
SAVE_CONFIG

https://www.klipper3d.org/G-Codes.html#z_offset_apply_endstop

Just to be clear, what does the ā€œsaveā€ button do in mainsail, which becomes active after you have babystepped and which then brings you to a small menu in the center of the screen with ā€œsave configā€ and which automatically restarts the firmware?

It should be seen on the console.

Like this?
in the terminal it shows the commands as well, if that is what you mean.
This is what I have been doing yesterday afternoon many times without any effect.

Please attach the complete printer.cfg to your next post.

config-20241020-143303.zip (6.6 KB)

Here is hoping you can find what is wrong, if anything. Thanks for looking no matter what can be found.

Delete these lines

#*# [probe]
#*# z_offset = 7.520

from the SAVE_CONFIG block at the end of the config file

Please elaborate, as I want to learn also from these questions and answers and understand why they were there in the first place. They were put there by the system.

Yes, but because you do not have a probe/BLtouch (anymore), this setting in the config block can cause trouble. Klipper does not delete obsolete entries.

But I have a klicky, does this not use the probe offsets also?

If I have to remove these lines, and I do a probe calibrate, where will klipper save the relevant data for the measurements and corrections?

Maybe I am confusing things but I thought that after I did the probe calibrate these values changed as a result. If I should not use the probe calibrate, I need some other way of telling klipper the offset of the klicky, donā€™t I?

The klicky is accessed as endstop for Z-homing.

Going by the log you have provided initially, Iā€™m a bit confused: What do you use for homing your Z-axis? A separate endstop or your klicky klacky something?

If you do not use an own endstop then you are missing endstop_pin = probe:z_virtual_endstop and the position_endstop = 0.650 is surplus.
Currently, it looks like a strange mixture from endstop and probe but I do not know your intention.

I have the klicky which gets stowed away.
It is used for QGL and the bedmesh.
It is also used for the probe calibration when you do the paper test to determine z-offset.
I do not have any other probe and I do not have a z limit switch. But I do have the nozzle touch switch sitting next to the bed. Maybe I should call this the z limit switch???
When it is homing for the first time it does x and y and then moves over this pin on the switch with the nozzle and does a z home.

But as I understood, the z home switch is not used for the z offset. For this it takes the values from the calibration probe measurement with the paper test, as described in the tuning guide from Ellis.

Wrong or not?

https://www.klipper3d.org/G-Codes.html#z_offset_apply_endstop

As I am now reading up on your links, as well as researching the clicky further, I think I come to the conclusion that I am indeed using a mishmash of 2 different ways of determining z-offset, as @Sineos stated with his confusion.

On the one hand I am using the z- endstop as homing, while when I do the z-offset I use the clicky.

Hmmm, I will need to research this more when I am freshly awake. Been at it the whole weekend and my eyeballs are burning out of their sockets.

Thanks for the hints, will get back to this later.

You need to distinguish between ā€œabsoluteā€ z-values and ā€œrelativeā€ z-values.

Absolute z-value:

This is the z-height at which your printer starts, i.e. z=0. It is set either by the z-stepperā€™s position_endstop if some kind of limit switch is used, or by the probeā€™s z_offset if only a probe is used.

Relative z values

These values are used for building your bed mesh, for QGL, z-tilt, etc. They do not depend on the absolute z-value above. Only some kind of probing (bltouch, inductive, klicky, manual etc) can determine these values.

So it is perfectly valid to use a limit switch to get the absolute value and some probe to get the relative values.
Depending on what you are doing, you will work with one or the other setting. Using a probe to determine both is probably the easiest concept to understand, and for a ā€œnormalā€ printer, I do not see any immediate benefit in separating between a limit switch and a probe.

1 Like

@Sineos
Your comments make a lot of sense and I think my method stems from how the machine came to me from the guy who built it. I got used to that, being my first klipper machine, and continued using it even when I built this machine with my own system. This was dumb but I didnā€™t know any better.

As I understand the matter now, the two different methods have different advantages. Using the probe for both means you can change build plate thicknesses without having to change z-offsets, but using the switch which gets activated by the nozzle means you can change nozzles without having to change z-offsets.

Since I change nozzles more often then build plates I will revert my system to using the limit switch for both homing and z-offset, I will keep the clicky thing for only the virtual z-heights for QGL and bedmesh.

Also, the reason why my values changed but had no effect is because I think the previous owner had it wrongly configured for what he tried to do. In my link from voron design about this clicky thing it states you should change certain things in the configs for both the clicky probe and the printer. In my configs these things remained as they were in an original system but with some of the clicky probe things added. As a result I think the machine went through the motions of registering probe calibration settings but when looking for this z-offset it expected the value to be in the endstop pin, not in the probe section.

Not totally clear exactly how this is wrong yet, but I am fairly certain it is here where the mistake lays.

Anyway thanks all for the insights helping me understand klipper, much appreciated as always.
Kees.

P.S. the machine is working perfectly now thanks to a much more sensitive paper method I performed. The z-offset between clicky activation and nozzle became smaller due to this, which in turn set my nozzle closer to the bed.
Although tempting to leave it, because it prints so ā€œniceā€, I will not. :grimacing: I want babysteps to work as they should.