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 systemG29 P1 ; UBL phase exampleG29 T ; report or map on supported Marlin modesPPhase, point count or other mode-specific option; meaning changes between Marlin leveling systems.
S / LMay store or load mesh data in UBL and other supported configurations.
A / D / TUBL examples for activate, disable or display; not portable to every G29 implementation.
Practical examples
Common Marlin start sequence
G28
G29Homes first, then runs the configured G29 routine. Some printers instead load an existing mesh.
Klipper equivalent concept
G28
BED_MESH_CALIBRATEKlipper uses an extended command rather than native Marlin G29 syntax.
Firmware context
| System | Status | What changes |
|---|---|---|
| Marlin | Check dialect | Supported, but parameters and results depend on the one leveling system compiled into that firmware. |
| Klipper | Check dialect | Uses BED_MESH_CALIBRATE and BED_MESH_PROFILE; G29 may only exist as a user macro. |
| RepRapFirmware | Check dialect | Probing and mesh behavior is machine- and macro-driven; confirm the configured G29 workflow. |
| CNC controllers | Not applicable | G29 is not a portable CNC bed-leveling command and may be unused or machine-specific. |
What this viewer can show
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.