Adaptive bed mesh in OrcaSlicer
Adaptive bed mesh in OrcaSlicer probes only the area under your actual print instead of the whole bed — faster prep time, without giving up mesh accuracy where it matters. Below you’ll find where OrcaSlicer’s settings for this live, how it maps to firmware, and a probe-point calculator to see the time saved on your own bed size.
What adaptive bed mesh does
It meshes the print, not the printer’s entire bed.
A standard bed mesh probes a grid across the whole build plate, whether your model is 20mm square or fills the entire bed. Adaptive bed mesh instead calculates the area actually needed for the current print and probes just that — with margin — cutting probing time on small or off-center prints without losing mesh accuracy where the nozzle actually goes.
OrcaSlicer builds this support directly into the machine start G-code, working across Marlin, Klipper, and RepRapFirmware (RRF) — no plugins or firmware modifications required.
Where the settings live
All under Printer Settings, in Advanced mode.
Bed mesh min / max
- Variables: bed_mesh_min, bed_mesh_max
- Sets the boundary the probe is physically able to reach
Probe point distance & mesh margin
- Probe point distance — default 50mm in X and Y
- Mesh margin — extra clearance added around the adaptive area
Setting it up, start to finish
- Open Printer Settings
Switch to Advanced mode to see the bed mesh options under Basic Information — if you haven’t set up a profile yet, start with printer selection. If the menu layout doesn’t match, check the interface guide.
- Set bed mesh min/max
Match this to the area your probe can physically reach — check your printer manufacturer’s specs, or our list of 3D printers compatible with OrcaSlicer, if unsure. Some Bambu Lab and Creality machines handle adaptive meshing in their own firmware by default — see OrcaSlicer vs Bambu Studio vs Creality Print for how that compares.
- Set probe point distance
50mm × 50mm is the default — smaller values mean a denser mesh but more probing time.
- Set mesh margin
This expands the adaptive area a bit beyond the model’s footprint for a safer mesh.
- Configure firmware macros
On Klipper specifically, set your config’s own margin to 0 and pass ADAPTIVE=0 — see the Klipper section below.
- Slice and verify
Check the generated G-code calls BED_MESH_CALIBRATE (or the Marlin/RRF equivalent) with the min/max points you expect.
Probe point & time-saved calculator
Rough estimate only — actual probing speed depends on your probe type and Z-hop settings, but this shows the scale of the time saved.
Estimate assumes probing time scales roughly with point count. PROBE_COUNT in Klipper is grid intersections along each axis, so a 4×3 grid means 4 columns and 3 rows of points.
How it works across firmware
| Firmware | Mechanism |
|---|---|
| Marlin | Adaptive min/max points passed via the machine start G-code to Marlin’s own bed leveling command. |
| Klipper | Passed to BED_MESH_CALIBRATE as mesh_min/mesh_max, with OrcaSlicer’s own margin already applied. |
| RepRapFirmware (RRF) | Adaptive area passed to RRF’s mesh bed compensation G-code equivalent. |
Setting it up with Klipper
Two things trip people up here: double-applied margins, and Klipper’s own adaptive logic fighting with OrcaSlicer’s.
Two settings matter here: pass ADAPTIVE_MARGIN=0 because OrcaSlicer has already applied adaptive_bed_mesh_margin internally, and pass ADAPTIVE=0 so Klipper doesn’t run its own built-in adaptive mesh logic on top of OrcaSlicer’s calculated area.
Questions people ask about this
Does OrcaSlicer support adaptive bed mesh?
Yes — natively, across Marlin, Klipper, and RepRapFirmware, with no plugins required. The settings live under Printer Settings in Advanced mode.
Why is my bed mesh probing outside the print area?
Check bed_mesh_min/bed_mesh_max — if left at the unrestricted default, OrcaSlicer assumes the probe can reach the full bed, which isn’t true on every printer.
How many probe points does OrcaSlicer’s adaptive mesh use?
It depends on your model’s footprint, margin, and probe point distance — use the calculator above to see the exact grid for your own numbers.
Adaptive bed mesh vs. full bed mesh — which is more accurate?
Full-bed mesh probes more points overall, but adaptive mesh probes at the same density under the actual print — so accuracy where it matters is comparable, with less time spent probing area you’re not printing on.
Klipper’s own adaptive mesh vs. OrcaSlicer’s — do they conflict?
They can. Pass ADAPTIVE=0 in your BED_MESH_CALIBRATE call so Klipper doesn’t run its own adaptive logic on top of the area OrcaSlicer already calculated.
Why did my adaptive mesh area not shrink for a small print?
If there are multiple objects on the plate, the adaptive area covers all of their combined bounding box, not just one part — a small object sharing a plate with a large one won’t produce a small mesh area.
Troubleshooting
Probe tries to go outside the bed
Check bed_mesh_min/bed_mesh_max match what your probe can physically reach — the default (99999, 99999) means no limit, which assumes full-bed reach.
Mesh area looks bigger than the model
You’re likely double-applying margin — check for a non-zero margin in both OrcaSlicer and your Klipper [bed_mesh] config, or a non-zero ADAPTIVE_MARGIN passed in the macro.
Klipper ignores the adaptive area OrcaSlicer calculated
Make sure ADAPTIVE=0 is set in the BED_MESH_CALIBRATE call — otherwise Klipper’s own adaptive mesh logic takes over instead of using OrcaSlicer’s min/max points. If the option is missing entirely, confirm you’re on a current OrcaSlicer version, or check Orca Slicer not working if the slicer itself is misbehaving.
Probe count exceeds what your firmware supports
Some Marlin builds cap the number of mesh points at compile time (GRID_MAX_POINTS_X/Y). A very small probe point distance on a large adaptive area can request more points than the firmware allows — widen the spacing or raise the compiled limit.
Mesh looks right for single parts but wrong on multi-object plates
Adaptive bed mesh calculates its area from the combined bounding box of everything on the plate. If objects are spread across the bed, the “adaptive” area can end up close to full-bed size anyway — this is expected, not a bug, since the mesh still has to cover every object.
Marlin doesn’t seem to support this at all
Adaptive bed mesh support in Marlin depends on firmware version and compile-time options for mesh leveling. Older Marlin builds without the relevant mesh commands compiled in will ignore the adaptive min/max points entirely — check your firmware version before assuming it’s an OrcaSlicer setting issue.
RRF still probes close to the full bed
If your config.g already defines a fixed mesh grid with M557, that can override what OrcaSlicer is trying to pass in. Remove or adjust any hardcoded M557 grid definition if you want RRF to follow the adaptive area.
Mesh results vary between otherwise identical prints
Usually a probe repeatability issue rather than an adaptive-mesh problem — check probe deployment consistency, bed temperature at probe time (thermal expansion shifts the surface slightly), and whether the probe needs a warm-up routine before meshing. If OrcaSlicer itself crashes mid-slice while testing this, see fixing an Access Violation error.
Frequently asked questions
What is adaptive bed mesh in OrcaSlicer?
A feature that probes only the bed area under the actual print instead of the entire bed, reducing probing time while still compensating for surface irregularities.
Which firmware does OrcaSlicer’s adaptive bed mesh support?
Marlin, Klipper, and RepRapFirmware (RRF), with no additional plugins required.
What is the default probe point distance?
50mm in both X and Y by default, adjustable to trade off mesh resolution against probing time.
What margin should I use in Klipper’s own config?
Set it to 0. OrcaSlicer already applies its own mesh margin, so an additional margin in the Klipper config can double up the expansion.
What does ADAPTIVE=0 do in the Klipper macro?
It tells Klipper not to run its own built-in adaptive mesh logic, since OrcaSlicer has already calculated the mesh_min and mesh_max points to pass in.
Why does bed mesh min/max matter?
Because of the probe’s physical XY offset, most printers can’t probe the entire bed surface — setting min/max correctly stops the adaptive mesh from trying to probe outside the reachable area.
Recent insights
Latest updates across the OrcaSlicer.pro wiki and blog.
