Indeed
Active member
Hi
I have a 2.4 with four Z endstops at the high end, and a Tap.
I'd like to use the Tap to find and set the actual Z0 position just before a print.
Homing is done Z first, the gantry moves to the top, then X and Y are homed and it works just fine.
It's done by using some macros and a [homing_override] in the config files.
What I can't figure out is how to configure klipper to, just before a print, find the bed and have the result replace the already homed Z position with a new, accurate, probed Z position.
One solution is to correct the Z position found by the endstops by doing a bed mesh calibration before each print, but I want to avoid that.
Also, by doing mesh calibrations that way the mesh corrections are relative to the not so accurate (and also off by 0.5mm, see DETAILS below) Z position obtained from the Z endstops, instead of being relative to a properly probed bed, at the true Z0 position. It's untidy, if nothing else...
Any ideas?
--------------------------------------
DETAILS
Why I like to home to the top instead of the bed:
* Home at any time without scraping anything off the bed, or the bed itself.
* Home and quickly get out of a bad situation. Like after an emergency stop or a crash, software or hardware.
* Home after each print and move the toolhead away from the bed.
Other methods exist, but it's very convenient to just hit home.
I'd like to make it work similar to my delta printer. It has a Duet controller running reprap.
Homing lifts the carriages to the "high" endstops which is normal for any delta.
The endstop positions don't have to be that accurate since the true bed position at true Z0 is probed and adjusted just before each print using a Smart Effector, a "Tap" for delta printers.
On the delta (and the Voron) I have configured the value of "position_endstop" (or M665 Hxxx on the delta) to be a half a millimeter lower than it actually is.
On the Voron "position_endstop" is set to 357 instead of 357.5 where it actually is, this makes the homed Z0 position to be half a millimeter above the bed.
So even if I were to do something stupid like a "G1 Z0" move in absolute mode, I probably won't hit the bed.
At least not until after the bed is probed, which is done only just before a print.
On the Voron with the high Z endstops I can do the PROBE*, BED_MESH* and QUAD_GANTRY_LEVEL stuff as usual.
But I can't figure out how to reset the Z position just before a print, unless I load a bed mesh.
To get accurate values with the correct Z offset a BED_MESH_CALIBRATE must be done before each print and I'd like to avoid that, including adaptive bed meshing.
I'd be very happy if I could:
1. Home Z to the high position and set that position to a value a just a little bit lower than it actually is. (this I already do)
2. Before each print probe Z0 and have the already homed Z position reset to the true bed position.
3. Then load a saved bed mesh, now relative to the true Z0, independent from nozzle length and from the need to have perfectly calibrated Z endstops.
I have a 2.4 with four Z endstops at the high end, and a Tap.
I'd like to use the Tap to find and set the actual Z0 position just before a print.
Homing is done Z first, the gantry moves to the top, then X and Y are homed and it works just fine.
It's done by using some macros and a [homing_override] in the config files.
What I can't figure out is how to configure klipper to, just before a print, find the bed and have the result replace the already homed Z position with a new, accurate, probed Z position.
One solution is to correct the Z position found by the endstops by doing a bed mesh calibration before each print, but I want to avoid that.
Also, by doing mesh calibrations that way the mesh corrections are relative to the not so accurate (and also off by 0.5mm, see DETAILS below) Z position obtained from the Z endstops, instead of being relative to a properly probed bed, at the true Z0 position. It's untidy, if nothing else...
Any ideas?
--------------------------------------
DETAILS
Why I like to home to the top instead of the bed:
* Home at any time without scraping anything off the bed, or the bed itself.
* Home and quickly get out of a bad situation. Like after an emergency stop or a crash, software or hardware.
* Home after each print and move the toolhead away from the bed.
Other methods exist, but it's very convenient to just hit home.
I'd like to make it work similar to my delta printer. It has a Duet controller running reprap.
Homing lifts the carriages to the "high" endstops which is normal for any delta.
The endstop positions don't have to be that accurate since the true bed position at true Z0 is probed and adjusted just before each print using a Smart Effector, a "Tap" for delta printers.
On the delta (and the Voron) I have configured the value of "position_endstop" (or M665 Hxxx on the delta) to be a half a millimeter lower than it actually is.
On the Voron "position_endstop" is set to 357 instead of 357.5 where it actually is, this makes the homed Z0 position to be half a millimeter above the bed.
So even if I were to do something stupid like a "G1 Z0" move in absolute mode, I probably won't hit the bed.
At least not until after the bed is probed, which is done only just before a print.
On the Voron with the high Z endstops I can do the PROBE*, BED_MESH* and QUAD_GANTRY_LEVEL stuff as usual.
But I can't figure out how to reset the Z position just before a print, unless I load a bed mesh.
To get accurate values with the correct Z offset a BED_MESH_CALIBRATE must be done before each print and I'd like to avoid that, including adaptive bed meshing.
I'd be very happy if I could:
1. Home Z to the high position and set that position to a value a just a little bit lower than it actually is. (this I already do)
2. Before each print probe Z0 and have the already homed Z position reset to the true bed position.
3. Then load a saved bed mesh, now relative to the true Z0, independent from nozzle length and from the need to have perfectly calibrated Z endstops.
Last edited: