Bed levelling: manual tramming, mesh, and Z offset
Bed levelling is the difference between a first layer that sticks and one that peels — this guide covers manual tramming, probe-based mesh calibration, and the Z offset step most people skip.
Why the first layer is everything
Get the bed wrong and every layer above it inherits the problem. Parts lift at the corners, the base looks rough and uneven, or the print pops off halfway through a four-hour job. Bed levelling — sometimes called tramming — is the process of setting the nozzle the correct distance from the build surface, consistently, across the whole plate.
When it is right, the first layer squishes firmly onto the surface with an even thickness all the way across. It looks slightly flattened, the lines merge together cleanly, and the part does not shift.
Manual levelling vs automatic levelling
Most printers use one of two systems, and some use both.
Manual levelling uses thumb wheels or knobs under the bed. You move the nozzle to each corner and adjust the wheel until the gap feels consistent. It is low-tech and reliable. Once you have done it a few times, it takes about five minutes.
Automatic (probe-based) levelling uses a sensor — a BLTouch, CR Touch, inductive probe, or Creality's PrTouch piezo system — to measure the actual surface height at a grid of points. The printer stores a correction map and adjusts Z on the fly as it prints.
Here is the bit that trips people up: automatic levelling does not replace manual tramming. It compensates for small surface irregularities after you have done the coarse adjustment. If one corner is 1.5 mm higher than the rest, the probe mesh will try to correct for it and do a poor job. Tram the bed first, then let the probe tidy up what is left.
How to manually level the bed
1. Heat the bed and nozzle to your normal print temperatures. Metal expands when it gets hot, so a cold tram will be slightly off the moment the machine warms up. 2. Home all axes — G28 in your slicer's terminal, or the home button on the screen. 3. Move the printhead to the front-left corner, about 5–10 mm in from the edge. You can disable the steppers and slide the head by hand, or use the built-in tramming menu if your printer has one. 4. Slide a piece of standard printer paper (roughly 0.1 mm thick) under the nozzle. Adjust the wheel until you feel a light drag — the paper moves but you can feel it catching slightly. 5. Repeat at the front-right corner, then rear-right, then rear-left. 6. Move to the centre and check the gap. If it is noticeably tighter or looser than the corners, you have some bed warp. Minor warp is handled by mesh levelling; a heavily bowed bed needs replacing. 7. Go around all four corners a second time. The first pass changes the geometry slightly, and a second pass usually gets you properly dialled in.
Run a single-layer test square the full width of your bed and watch the first layer go down. Adjust the wheels live if you need to.
What mesh levelling actually does
A probe mesh measures the surface at a grid of points — typically 3×3, 5×5, or larger — and stores a height map. During printing, the firmware applies a Z correction at each grid point so the nozzle follows the real surface instead of assuming the bed is flat.
This is useful for glass beds with a slight bow or PEI sheets that flex differently at the centre than at the edges. A finer mesh (5×5 or 7×7) handles more complex surfaces but takes longer to generate.
Probe accuracy matters here. The PrTouch on Creality machines probes directly through the nozzle, which avoids the X/Y offset problem you get with side-mounted sensors. A BLTouch or inductive probe sits slightly to one side of the nozzle, so you need the correct probe offset configured in your firmware or the mesh will be shifted — the probe measures one spot and the nozzle prints a few millimetres away.
On Klipper-based machines, BED_MESH_CALIBRATE followed by SAVE_CONFIG stores the mesh to printer.cfg. Some start-gcode sequences run this automatically before every print, adding 2–4 minutes to startup but ensuring you never print on a stale mesh. Worth doing for long prints.
The Z offset — the step most people miss
Bed levelling gets the surface flat. The Z offset sets the exact nozzle height above that surface. You can have a perfectly levelled bed and still print badly if this is wrong.
Too high and the filament does not stick — strands look round, individual, and peel off easily. Too low and the nozzle scrapes the surface or the first layer is crushed almost transparent.
The right offset produces a layer that looks slightly flattened with no gaps between lines and no raised ridges where they overlap.
Set it using your printer's live adjust or babystepping menu during a test print. On Klipper, PROBE_CALIBRATE walks you through a manual paper-test to find the correct value. On Marlin, use the babystepping menu while a first-layer test is printing and adjust in 0.025 mm steps.
One important note: every time you swap the build surface, re-run the Z offset. A smooth PEI sheet and a textured one are different thicknesses. A glass plate is different again. The mesh calibration also needs redoing if you change the surface.
How often does it need doing
On a stable printer that does not get moved or knocked, a mesh calibration before each print and a manual tram every few weeks is enough. If the machine gets bumped, transported, or if you swap the bed surface, re-level before you print.
After any maintenance that touches the Z axis — changing the nozzle, tightening the bed springs, replacing the hotend — check the Z offset before the next print. It will almost certainly have shifted.
Diagnosing common first-layer problems
First layer looks fine on the left but lifts on the right: One corner is higher than the rest. Go back to manual tramming and be more careful at that corner.
Centre prints fine but corners lift: Classic bed bow, common on larger beds. Use a finer mesh (5×5 or 7×7) and make sure mesh levelling is enabled in your slicer's start gcode.
Good first layer but parts pop off mid-print: Probably a bed temperature issue rather than a levelling issue. Try increasing bed temperature by 5 °C for your material, and check you are not printing in a draught.
Probe gives inconsistent results each time it runs: A BLTouch with a bent or sticky pin is the most common cause — clean the pin or replace the sensor. On Creality machines with PrTouch, certain firmware versions have a probe timing bug that causes scatter; check whether an update is available.
Z offset keeps drifting between prints: The probe mount is probably loose. Check it is secured solidly to the carriage. On Klipper, make sure you are saving the offset with SAVE_CONFIG — if it only lives in memory, a restart loses it.
Prints fine cold but first layer fails after a warm-up: You trammed the bed cold. Redo the tram with the bed and nozzle at operating temperature.
When to get it printed instead
If you have spent more time levelling than printing, that is a reasonable signal to hand the job off. We run a mail-in 3D printing service from our workshop — you upload your STL or 3MF, get an instant quote, and we post the finished parts back to you. No printer faff, no wasted filament, no half-finished prints to scrape off at midnight. We calibrate the bed before every job, so what you get back has a clean first layer. Take a look at what we offer and get a quote at harktech.co.uk/printing.