Hardware & maintenance

Bed leveling and Z-offset

Bed leveling is two separate things people lump together: tramming (making the bed mechanically parallel to the gantry) and mesh leveling (mapping the warp the probe can't physically remove). Z-offset is the human-set "lower than the probe says" number that controls first-layer squish. All three work together; missing one ruins prints regardless of how well you did the others.

8 min read Updated May 2026 PrintPal editorial
The 30-second answer

Heat the bed to printing temperature. Tram the four corners with a piece of paper under the nozzle (drag, not friction). Run mesh bed leveling. Print a first-layer test. Live-adjust Z during the print until lines look squished smooth (not stringy, not gouging). Save the offset.

The three things that matter

TermWhat it doesHow often
TrammingMake bed mechanically parallel to gantry (corner screws or bedslinger)Once at setup, after transport, after any major work on the printer
Mesh bed levelingMap the bed's residual warp the corners can't fixBefore every print or weekly
Z-offset / Live-ZSet the gap between nozzle and bed for the first layerOnce per filament / sheet combination

Step 1: Manual tramming

The mechanical foundation. Most modern printers with auto-bed-leveling still benefit from a properly trammed bed — the probe maps surface variation, but if the bed is tilted 1 mm corner-to-corner the ABL probe needs to do too much vertical correction across the print and the toolhead has to keep changing Z mid-layer.

Bedslinger (Ender 3, MK3S+ before mesh)

  1. Heat bed to printing temperature (cold beds are shorter than hot beds).
  2. Home printer, then disable steppers so you can move the head by hand.
  3. Move head to one corner.
  4. Slide a piece of standard 80 gsm paper under the nozzle.
  5. Adjust the corner screw until the paper has slight drag but still moves freely.
  6. Repeat for the other three corners.
  7. Go back to corner #1 and re-check — tramming one corner moves the others slightly.
  8. Re-check all four until they're consistent.

CoreXY / fixed-bed (Voron, Bambu)

The bed mounts on a 3-point screw system. Use the same paper test, adjusting the three screws to make the bed parallel to the gantry's XY plane. Bambu and Prusa CORE One automate this with a mesh-only routine — you don't manually tram.

Step 2: Mesh bed leveling

The probe touches the bed at multiple points (usually a 4x4 or 5x5 grid) and builds a height map. The firmware then adjusts Z continuously during printing so the nozzle stays at the same distance from the bed surface even where the bed warps.

  • Bambu: auto-runs before every print. Force a fresh mesh from Device → Cal → Mesh.
  • Prusa MK4 / CORE One: auto-runs before every print.
  • Prusa MK3S+: Calibration → Mesh Bed Leveling.
  • Klipper: BED_MESH_CALIBRATE macro.
  • Marlin ABL: add G29 to your start G-code after G28.

Step 3: Z-offset

Probes measure the height of the probe trigger point, not the height of the nozzle tip. The Z-offset is the difference between those two.

  1. Print a first-layer calibration square (most slicers include one).
  2. Watch the first layer print.
  3. Adjust Z-offset live during the print. Most printers support this:
    • Prusa: hold ↓ on the LCD; lowers nozzle in 0.025 mm steps.
    • Bambu: Device → Cal → Z-offset mid-print.
    • Klipper: SET_GCODE_OFFSET Z_ADJUST=-0.025 macros.
  4. Goal: lines are flat, smooth, touching each other, and stuck to the bed. See first layer not sticking for the inspection checklist.
  5. Save the offset when it looks right.

When to re-do each step

TriggerWhat to re-do
Changed nozzlesZ-offset only
Changed build plates / sheetsZ-offset only
Changed filaments (different mfr)Z-offset (live tune during print)
Moved the printerTramming + mesh + Z-offset
First layer suddenly wrongMesh + Z-offset
Layer 2+ shows issuesProbably not bed-leveling; check belts, drivers

Auto-bed-leveling probe types

ProbeSeesNotes
Inductive (P.I.N.D.A., SuperPINDA)Steel under PEI sheetTemperature compensated (PINDA v1 had drift).
Inductive (BLTouch / 3DTouch)Anything (mechanical contact)Reliable workhorse; needs Z-offset per probe.
Capacitive (CR-Touch, Microswitch)Anything (mechanical contact)Slightly faster than BLTouch.
Loadcell (MK4, Bambu)Bed via nozzle contactMost accurate; auto-Z-offset because the nozzle is the probe.
Strain gauge / piezoBed via toolheadVoron / DIY; very accurate when tuned.

Related articles

Sources & further reading