Bed Leveling and Bed Mesh
Bed leveling (tramming) gets the bed plane parallel to the printer’s XY motion so the nozzle gap doesn’t change as it moves around. A bed mesh then measures the remaining small bumps/warps and lets the firmware gently vary Z during the first layers. The goal is one consistent first layer: not scraped in one spot, not “air printing” in another.
TL;DR
Tram the bed first, then build a bed mesh at printing temperature, then tune Z offset with a first-layer test. If the first layer is wrong everywhere it’s usually Z offset; if it’s wrong only in certain areas it’s usually tramming/mesh (or a dirty spot).
Key terms (bed setup)
- Bed leveling (tramming)
- Adjusting the bed so it is parallel to the printer’s XY motion plane (not making it level to gravity).
- Z offset
- The firmware’s nozzle-to-probe (or nozzle-to-bed reference) height used to hit the correct first-layer gap.
- Bed mesh
- A grid of measured bed heights used by firmware to vary Z slightly as the nozzle moves in XY.
- Probe
- A sensor (inductive, BLTouch, strain, etc.) used to measure bed height for Z homing and/or mesh.
Leveling vs mesh: what each one can and can’t fix
Tramming fixes large tilt so the nozzle gap is roughly correct everywhere without needing big compensation. A bed mesh is for smaller unevenness: slight warp in the plate, texture variation, magnetic sheet bumps, or small gantry sag. A mesh is not a substitute for loose hardware or major tilt, and a wrong Z offset will ruin the first layer even with a perfect mesh because the whole layer starts too high or too low.
When to do which (fast rules)
- Re-tram if you changed nozzle/hotend parts, removed/reinstalled the bed, adjusted bed screws/springs, had a nozzle crash, or one side/corner is consistently too close/far.
- Rebuild the mesh if you changed bed temperature/material, swapped build surfaces (glass vs PEI), moved the printer, or quality varies by location on the plate.
- Re-check Z offset if you changed nozzle, probe mount, build surface thickness, or the first layer is consistently too squished or too high everywhere.
Reliable workflow (in the order that prevents chasing errors)
- Heat the bed and nozzle to your typical printing temperatures. The bed shape and nozzle length effectively change when hot.
- Clean the build surface so adhesion problems aren’t misdiagnosed as leveling problems.
- Home the printer (use your normal Z-homing method).
- Tram the bed at the leveling points (guided routine, paper method, or feeler gauge). Aim for the same drag at each point.
- Generate a new bed mesh at the same temperatures you’ll print at.
- Tune Z offset with a first-layer test print until lines are slightly flattened and touch each other, without the nozzle plowing or clicking.
- Save/store the settings the way your firmware expects (mesh and Z offset).
First-layer symptoms: what to fix first
Nozzle scratches the bed in one area but is fine elsewhere
Likely cause: Bed tilt is too large, or mesh is not enabled/loaded
Fix: Re-tram the bed, then rebuild the mesh and make sure it’s enabled/loaded during the print
First layer is too squished everywhere (rough, ridged, elephant foot)
Likely cause: Z offset too low
Fix: Increase Z offset slightly, then repeat a first-layer test
First layer doesn’t stick anywhere; lines look round and separated
Likely cause: Z offset too high or bed too cold/dirty
Fix: Lower Z offset slightly; confirm bed temp; clean the surface
One corner always fails to stick even after mesh
Likely cause: Local low spot beyond compensation, probe/mesh sampling misses it, or contamination in that area
Fix: Rebuild mesh hot; clean that area; slow the first layer or increase first-layer extrusion slightly; consider a different surface
Good first layer at the start, then it changes after homing or mid-print
Likely cause: Mesh not active after homing, start G-code doesn’t load it, or Z axis binding/backlash
Fix: Verify start G-code enables/loads the mesh; inspect Z motion for sticking and check couplers/lead screws