Disclaimer: This is an independent resource site. Not affiliated with the Voron project or its development team.

Voron Bed Mesh Types Guide — Automatic vs Manual, Probing Patterns, and Strategies

Calibration Klipper Guide

A properly calibrated bed mesh is essential for first-layer reliability on any Voron printer. Even with perfectly trammed gantries, no build plate is perfectly flat across its entire surface. Bed mesh compensation tells your printer to adjust Z height during the first few layers to account for plate deviations. Without it, you will have inconsistent first-layer squish — too tight in some areas, too loose in others. Last updated: May 2025.

This guide covers every aspect of bed mesh calibration for Voron printers running Klipper: automatic vs manual probing, probing patterns (Lagrange vs bicubic), probe count selection, adaptive mesh strategies, mesh profiles for different build surfaces, and maintenance best practices. We cover Voron-specific considerations for the V2.4 (4-point Z adjustment + bed mesh), Trident (3-point Z tilt + bed mesh), V0.2, and Switchwire.

Automatic vs Manual Probing

Automatic probing uses a probe (inductive, hall effect, or the Voron TAP system) to measure the bed surface at defined grid points. Klipper then generates a mesh of Z offsets that it applies during printing. This is faster, more repeatable, and recommended for nearly all situations.

Manual probing uses the paper feeler method at each grid point via the PROBE_CALIBRATE or Z_ENDSTOP_CALIBRATE commands. This is slow (3-5 minutes for a 5x5 grid), tedious, and less accurate than automatic probing (typical human error of ~0.05-0.1mm). It is only recommended for initial setup when you have not yet installed a probe or as a diagnostic tool to verify probe readings.

Verdict: Use automatic probing. Install a TAP probe if you want the best possible results for all bed surfaces. Use an inductive probe if you are on a budget and print only on spring steel PEI sheets.

Probing Patterns: Lagrange vs Bicubic Interpolation

Klipper supports two interpolation algorithms for converting the probed grid points into a continuous Z height map:

Lagrange Interpolation

Bicubic Interpolation

Configuration in printer.cfg:

# V2.4 or Trident (350mm) — Bicubic with 7x7 grid
[bed_mesh]
speed: 120
horizontal_move_z: 5
mesh_min: 30, 30
mesh_max: 320, 320
probe_count: 7, 7
algorithm: bicubic
bicubic_tension: 0.5
fade_start: 1
fade_end: 10
fade_target: 0

# V0.2 (120mm) — Lagrange with 3x3 or 4x4 grid
# [bed_mesh]
# speed: 80
# horizontal_move_z: 5
# mesh_min: 15, 15
# mesh_max: 105, 105
# probe_count: 4, 4
# algorithm: lagrange
# fade_start: 1
# fade_end: 10
# fade_target: 0

Recommendation: Use bicubic with 5x5 for 250mm beds and 7x7 for 300-350mm beds. Use Lagrange for 3x3-4x4 grids on smaller machines. The bicubic_tension parameter (0.3-0.7 range) controls how tightly the spline follows the data — 0.5 is a safe starting point.

Probe Count Selection

Probe Grid Probe Points Time (at 120mm/s) Best For
3x3 9 ~15 seconds Very small beds (V0.2), quick verification, or very flat beds
4x4 16 ~25 seconds Small beds, good balance of speed and accuracy
5x5 25 ~40 seconds 250mm beds (V2.4 250, Trident 250) — recommended default
7x7 49 ~80 seconds 300-350mm beds with bicubic — recommended default
9x9 81 ~130 seconds Damaged or known-warped beds, diagnostic use only
Adaptive mesh Varies Same as grid size All bed sizes — probes only the print area, not the whole bed

Rule of thumb: Use the minimum number of probe points that gives you a reliable first layer. More points = more time = more chance for thermal drift during probing. A 7x7 mesh with bicubic is overkill for a 250mm bed and can actually cause issues if your bed has small localized imperfections that the spline tries to follow exactly.

Adaptive Mesh

Klipper's adaptive mesh feature (available in Klipper v0.11.0+) probes only the area that will actually be printed, not the entire bed. This is useful when:

Configuration: Add the following to your slicer's start G-code (after G28 but before printing):

; Adaptive mesh macro (add to your printer.cfg)
[gcode_macro ADAPTIVE_MESH]
gcode:
    BED_MESH_CLEAR
    BED_MESH_CALIBRATE ADAPTIVE=1
    ADAPTIVE_MARGIN=10  ; 10mm margin around print area
    {% if printer.bed_mesh %}
        BED_MESH_PROFILE LOAD="default"
    {% endif %}

; In your slicer start G-code:
; ADAPTIVE_MESH

Adaptive margin: 10-20mm is standard. Too low (5mm) risks probing outside the actual print area if your model origin is slightly off. Too high (30mm+) defeats the purpose of adaptive probing.

Compatibility note: Adaptive mesh requires the virtual_sdcard.py feature to know the print area from the G-code file. It works with OrcaSlicer, SuperSlicer, and PrusaSlicer. Ensure your Klipper is on the latest stable version.

Mesh Profiles for Different Build Surfaces

If you switch between different build surfaces (e.g., smooth PEI, textured PEI, G10/FR4, magnetic sheet + spring steel), you can save separate mesh profiles for each surface. This avoids re-probing every time you swap surfaces.

# Calibrate and save profiles for each surface
BED_MESH_CALIBRATE              # Run mesh calibration
SAVE_CONFIG                     # Saves as "default" profile

# Save additional profiles
BED_MESH_PROFILE SAVE=textured_pei
BED_MESH_PROFILE SAVE=smooth_pei
BED_MESH_PROFILE SAVE=g10_fr4

# Load a specific profile
BED_MESH_PROFILE LOAD=textured_pei

# In your START_PRINT macro, add a parameter:
# [gcode_macro START_PRINT]
# {% set SURFACE = params.SURFACE|default("smooth_pei") %}
# BED_MESH_PROFILE LOAD={SURFACE}

Important: Mesh profiles are only valid for the bed at the same temperature they were probed at. If you probe at 100°C but print at 60°C, the mesh will be inaccurate because the bed expands differently at different temperatures. Always probe at your printing temperature.

Voron-Specific Mesh Strategies

V2.4 — Four Corner Z Adjustment + Bed Mesh

The V2.4 uses four independent Z motors. The Z_TILT_ADJUST command levels the gantry to the bed using four points (one above each Z lead screw). This corrects for gross bed-to-gantry misalignment. After Z_TILT_ADJUST, the bed mesh corrects for local variations in bed flatness. The two work together:

Trident — Three Point Z Tilt + Bed Mesh

The Trident uses three Z motors (one bed-screw driven by three motors). The Z_TILT_ADJUST uses three probe points to level the bed to the gantry. The procedure is the same as V2.4 but with three adjustment points instead of four.

V0.2 — Single Z with Bed Screws + Bed Mesh

The V0.2 has a single Z motor. Bed leveling is done with the four bed adjustment screws (manual or with SCREWS_TILT_CALCULATE). After mechanical leveling, the bed mesh compensates for remaining imperfections. The small bed (120mm) means a 4x4 Lagrange mesh is usually sufficient.

Switchwire — Single Z with Bed Mesh

The Switchwire also uses a single Z motor (converted Ender 3 bed). After manual bed leveling with the adjustment knobs, run a 5x5 bicubic mesh for the 235mm bed.

Mesh Maintenance and Verification

Troubleshooting Bed Mesh Issues

Symptom Likely Cause Solution
First layer uneven despite mesh Z_TILT_ADJUST not run, or gantry racking Run Z_TILT_ADJUST first, then mesh. Check gantry alignment.
Mesh shows unrealistic spikes Dirty probe tip, debris on bed, electrical noise Clean probe and bed, check wiring, run PROBE_ACCURACY
Mesh changes between prints Temperature variation, loose bed screws Always probe at printing temperature. Tighten bed mounting screws.
Mesh compensates in wrong direction Inverted probe direction in config Check probe reverse direction in printer.cfg
Probe triggers before touching bed Probe z-offset is too low (nozzle too far), or probe defective Recalibrate probe z-offset with paper test
🚨

Voron LDO 商标 · 域名 打包出售

Trademark & domains sold as one package

Voron LDO 商标 (中国区 · China)
voron.cn
voronldo.com
ldovoron.com

有意者请联系 · Contact us:

📧 346290742@qq.com
📞 +86 13522926174