====== Nozzle is high above the bed at HOME ======
{{tag> faq z_offset}}
HOME doesn't take us to the center of the plate, by homing we send the probe to the trigger position.
HOME is not where the nozzle is at the center of the bed, it's where the probe is at the center x,y position, not the nozzle. HOME is also not Z0, unless you’ve changed this, and it should be about 10mm above the bed, yet we expect it to be ~10mm +/- the gcode z offset and a variety of other factors. See [[layer_height_compostion|Layer Height Composition]] for a diagram that explains some to the factors that go into the exact nozzle position.
==== Usual suspects ====
So why's the nozzle too high or in the wrong expected position? Often it's the expectation is wrong.
=== the bed is leveled poorly ===
The bed screws could be set at extremes. Unscrew them each, all the way, then screw them back on just 1 1/3 full rotations and relevel the bed with [[SCREWS_TILT_CALCULATE]]. Do not level with the paper method.
=== offsets are affecting position ===
You could be using the gcode z offset for more than its proper role as nozzle height adjustment and also overloading it with an error adjustment for the probe not being calibrated. If your gcode z offset is negative, then this confirms your z probe isn’t calibrated. If that adjustment value was miscalculated then your position could be off.
Set your gcode z offset value to an appropriately up/down value than it is currently, using ''SET_GCODE_OFFSET MOVE=1 Z Z=newValue'' to bisect the difference until it’s about 10mm off the bed. Then calibrate your gcode z offset. Do not use the paper method. Use observation for the correct filament squish while babying stepping.
=== our z probe is misaligned or damaged ===
Check to make sure it’s properly aligned in the head.
==== Diagnosis ====
Enter the follow in the Klipper console to home the probe :
G28
GET_POSITION
This should produce something similar to:
// mcu: stepper_x:-334500 stepper_y:312573 stepper_z:-80771
// stepper: stepper_x:141.000000 stepper_y:98.000000 stepper_z:1.449000
// kinematic: X:141.000000 Y:98.000000 Z:1.449000
// toolhead: X:141.000000 Y:98.000000 Z:10.000000 E:40218.477580
// gcode: X:141.000000 Y:98.000000 Z:9.991639 E:40218.477580
// gcode base: X:0.000000 Y:0.000000 Z:20.010000 E:40219.677580
// gcode homing: X:0.000000 Y:0.000000 Z:20.010000
This tells us the toolhead (nozzle) considers itself at the ''X:141.000000 Y:98.000000 Z:10.000000'' position, which is where the probe is at the center of the bed for the Neptune 4 and 4 Pro.
However our gcode offsets for x,y,**z** are ''X:0.000000 Y:0.000000 Z:20.010000'' so we're very likely far from the plate, likely about 30mm above the plate.
Observe above that ''stepper: stepper_z:1.449000'' is //my// probe z offset value as we're at the probe trigger point position.
Is your's zero? If so your probe is uncalibrated as this should be the measured z distance between the nozzle and the probe. You're including an adjustment for the lack of this in your gcode z offset and that adjustment value varies.
In the end what really counts when it all comes down to the actual position that's what's actually being considered by the mcu which uses the mcirostep position of the abstracted stepper motor (micro steps position.)
Compare this with the following:
G28
G1 Z10
GET_POSITION
which should produce something like
// mcu: stepper_x:-334499 stepper_y:312528 stepper_z:-57916
// stepper: stepper_x:141.000000 stepper_y:98.000000 stepper_z:30.030250
// kinematic: X:141.000000 Y:98.000000 Z:30.030250
// toolhead: X:141.000000 Y:98.000000 Z:30.030000 E:40218.477580
// gcode: X:141.000000 Y:98.000000 Z:30.010000 E:40218.477580
// gcode base: X:0.000000 Y:0.000000 Z:20.010000 E:40219.677580
// gcode homing: X:0.000000 Y:0.000000 Z:20.010000
Here the Z10 + the gcode offset has the toolhead (nozzle) at 30.010000mm from the bed.
Cautiously, compare this with the following:
SET_GCODE_OFFSET Z=0 MOVE=1
G28
G1 Z10
GET_POSITION
which should produce something like
// mcu: stepper_x:-334501 stepper_y:312520 stepper_z:-80780
// stepper: stepper_x:141.000000 stepper_y:98.000000 stepper_z:1.449000
// kinematic: X:141.000000 Y:98.000000 Z:1.449000
// toolhead: X:141.000000 Y:98.000000 Z:10.008409 E:40218.477580
// gcode: X:141.000000 Y:98.000000 Z:10.000000 E:40218.477580
// gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:40219.677580
// gcode homing: X:0.000000 Y:0.000000 Z:0.000000
and the nozzle at about 10mm above the plate.