What G29 means

A leveling mesh records height error at multiple XY positions so firmware can make small Z corrections while printing the first layers. Marlin provides several mutually selected systems—including bilinear, linear, manual mesh and UBL—and each gives G29 a different option set. The correct sequence may also involve G28, M420, EEPROM storage or a saved mesh.

Other firmware uses different interfaces. Klipper calibrates a bed mesh with BED_MESH_CALIBRATE, while RepRapFirmware commonly delegates probing behavior to machine macros and its own G29 semantics. A G-code file cannot prove that the probe is accurate, the bed is mechanically sound or the expected mesh is active.

Syntax and parameters

G29 ; behavior depends on Marlin leveling system
G29 P1 ; UBL phase example
G29 T ; report or map on supported Marlin modes
P

Phase, point count or other mode-specific option; meaning changes between Marlin leveling systems.

S / L

May store or load mesh data in UBL and other supported configurations.

A / D / T

UBL examples for activate, disable or display; not portable to every G29 implementation.

Practical examples

Common Marlin start sequence

G28
G29

Homes first, then runs the configured G29 routine. Some printers instead load an existing mesh.

Klipper equivalent concept

G28
BED_MESH_CALIBRATE

Klipper uses an extended command rather than native Marlin G29 syntax.

Firmware context

SystemStatusWhat changes
MarlinCheck dialectSupported, but parameters and results depend on the one leveling system compiled into that firmware.
KlipperCheck dialectUses BED_MESH_CALIBRATE and BED_MESH_PROFILE; G29 may only exist as a user macro.
RepRapFirmwareCheck dialectProbing and mesh behavior is machine- and macro-driven; confirm the configured G29 workflow.
CNC controllersNot applicableG29 is not a portable CNC bed-leveling command and may be unused or machine-specific.

What this viewer can show

Command noted, compensation not simulated

The viewer draws the coordinates written by the slicer. It does not execute probe moves, load a machine mesh or warp the path with firmware-only Z compensation.

Common mistakes

  • Never copy G29 parameters from another Marlin leveling mode without checking which system is compiled.
  • Homing, probe offset and a clear motion path are safety prerequisites for a real probing run.
  • A good-looking nominal toolpath does not confirm that a saved mesh exists or is active on the printer.

Primary sources

This page is an original explanation, reviewed against the firmware documentation below. Always confirm commands against the firmware and configuration on the machine that will execute them.