image style="width:320px"

G30 means “move the probe until it hits something in the Z axis”.

On CNC mills it can be used to :

  • Find where the workpiece is located in the Z dimension
  • Find the length of a newly inserted tool
  • Find the touch point between a tool and the workpiece

On a 3D printer it can be used to :

  • Find the touch point of the bed and actuator
  • Calibrate Delta machines
  • Automatically level beds with unequal heights

To probe in other axes like X and Y, see the G38.2 and G38.3 G-codes.


The command is used as such :


Which means : move ( in the Z axis ) until the probe is triggered, then report what distance was traveled.

You can also do : 

G30 Z10

Which means : move ( in the Z axis ) until the probe is triggered, then set the Z position to 10.

This is useful for example if you want to use the probe to measure the distance between something else on the actuator and what is touched, and you know the distance between the probe's height and that thing's height.

It is also possible to specify a speed at which to move with :

G30 F100


~ Parameter ~ Usage ~ Example
Z Once the probe hits, set the Z position to this value G30 Z0
F Move at this speed in millimeters/minute G30 Z100


The F parameter sets the movement speed for this move.

It sets the speed only for this specific move and is not modal.

It temporarily overrides the zprobe.slow_feedrate configuration option, see zprobe.


This command is configured via the Zprobe module's options.

Further reading

These resources are used as references for Gcode :