M851 - XYZ Probe Offset

none Set the Z probe XYZ offset from nozzle HAS_BED_PROBE


Set the XYZ distance from the nozzle to the probe trigger-point. These offsets are required for the firmware to know how to probe the bed and where probed points are in relation to the nozzle, and vice-versa.

The easiest way to get the Z offset value (assuming your homed Z = 0.0) is to:

  • Home the Z axis.
  • Raise Z and deploy the probe.
  • Move Z down slowly until the probe triggers.
  • Take the current Z position (as reported by M119) and negate it. (5.2 => -5.2)
  • Set with M851 Z-5.2 and save it with M500.
  • Configure with #define Z_PROBE_OFFSET_FROM_EXTRUDER -5.2.

For the X and Y offsets you have to measure the distance with a ruler or caliper.

For LCDs that support MarlinUI you can enable PROBE_OFFSET_WIZARD and follow a guided process to set the probe Z offset.


The default (factory) values are set by

  • (version 1.x)

    Where the X and Y offsets must be integers.

  • (version 2.x)


  • X offset: -left +right [of the nozzle]
  • Y offset: -front +behind [the nozzle]
  • Z offset: -below +above [the nozzle]
     +-- BACK ---+
     |           |
   L |    (+) P  | R <-- probe (20,20)
   E |           | I
   F | (-) N (+) | G <-- nozzle (10,10)
   T |           | H
     |    (-)    | T
     |           |
     O-- FRONT --+


M851 [X<linear>] [Y<linear>] [Z<linear>]



Z probe X offset


Z probe Y offset


Z probe Z offset


Set a reasonable offset for an inductive probe

M851 Z-2.0

A probe that is triggered by the nozzle itself

M851 Z1.2

Set the XY distance (probe left front of nozzle)

M851 X-1.70 Y-1.30

Set the XY distance (probe right back of nozzle)

M851 X0.20 Y.40