Dimensional Accuracy: How to Calibrate Your 3D Printer
This article may contain affiliate links. If you make a purchase through these links, we may earn a small commission at no extra cost to you. This helps us keep creating free content.
You designed a part that should snap-fit onto a 20mm dowel. You printed it, grabbed the dowel, and... it doesn't fit. The hole measures 19.6mm instead of 20mm. Or worse, it's 20.4mm and wobbles loosely. You double-checked your CAD model, the dimensions are right. So what happened?
Your printer isn't lying to you, but it is making systematic errors that compound across every axis. The good news: these errors are predictable and fixable. Once you calibrate properly, you can hit tolerances of +/- 0.1mm consistently on most desktop printers. Here's the full calibration workflow.
Step 1: Calibrate Your E-Steps
E-steps (extruder steps per millimeter) control how much filament the extruder pushes. If this number is wrong, every dimension in your print will be off because you're either over- or under-extruding.
How to calibrate:
- Remove the Bowden tube from the hot end (or disconnect the direct-drive outlet) so filament extrudes freely
- Mark the filament 120mm above where it enters the extruder
- Use your printer's menu or send the G-code command
G1 E100 F100to extrude exactly 100mm - Measure the remaining distance from the mark to the extruder entry point
- If you have exactly 20mm remaining, your E-steps are perfect. If not, calculate:
new_e_steps = current_e_steps × (100 / actual_extruded) - Save the new value with
M92 E[new_value]followed byM500to store it
Step 2: Calibrate Flow Rate
Mitutoyo 500-196-30 Digital Calipers
0.01 mm resolution, AOS encoder, stainless, the calipers every calibration tower assumes.
See on Amazon →E-steps handle raw filament feed. Flow rate (also called extrusion multiplier) fine-tunes how much plastic fills each printed line. Even with perfect E-steps, your flow rate might need adjustment because filament diameter varies between brands and batches.
How to calibrate:
- Print a single-wall calibration cube (no infill, no top layers, 1 perimeter), many free models exist on Printables
- Measure the wall thickness with calipers at multiple points
- Compare to your slicer's line width setting (usually 0.4mm for a 0.4mm nozzle)
- Adjust flow rate:
new_flow = current_flow × (expected_width / measured_width)
If your walls measure 0.44mm but should be 0.40mm, you're over-extruding by 10%. Set your flow multiplier to 0.91 (or 91% in Cura). Re-print and verify until the wall thickness matches your line width setting within 0.02mm.
Step 3: XY Dimensional Compensation
Even with perfect E-steps and flow, external dimensions tend to be slightly oversized and holes tend to be slightly undersized. This happens because the nozzle leaves a small bead of plastic on the outside of perimeters (expanding outer dimensions) and on the inside of holes (shrinking them).
How to calibrate:
- Print a calibration cube, the classic 20mm XYZ cube works perfectly
- Measure the X and Y dimensions with calipers
- If X measures 20.3mm, your X offset is +0.3mm. In your slicer, set XY compensation to -0.15mm (half the error, because it applies to both sides)
- For holes: print a test with known hole diameters (10mm, 15mm, 20mm). Measure each and note the average undersizing
Most slicers have a "horizontal expansion" or "XY size compensation" setting. A typical value is -0.1mm to -0.15mm for outer dimensions. For holes specifically, some slicers offer a separate "hole horizontal expansion" setting, set this to +0.1mm to +0.2mm to compensate for hole shrinkage.
Step 4: Thermal Compensation
Different materials shrink differently as they cool. PLA shrinks about 0.3-0.5%, PETG about 0.5-0.8%, and ABS about 0.7-1.0%. For small parts this barely matters, but on a 200mm-long part, 1% shrinkage means a 2mm dimensional error.
If you're designing parts that need to fit together at large scales, add a shrinkage compensation factor in your slicer or scale the model up slightly in the relevant axis. Test with a known-dimension reference part first to determine your material-specific shrinkage factor.
The Calibration Print Order
Calibrate in this exact sequence, each step depends on the previous one being correct:
- E-steps, raw filament feed accuracy
- Flow rate, per-filament line width accuracy
- XY compensation, external and hole dimensional accuracy
- Thermal compensation, material-specific shrinkage (only if needed for precision fits)
Dimensional accuracy isn't about buying a more expensive printer, it's about understanding and compensating for the systematic errors every FDM machine makes. Run through this calibration once per nozzle and filament combination, save the profiles, and you'll never have to force-fit a part again.
Published by the 3D Printer Stuff editorial team. Published July 16, 2026.
Editorial responsibility: see Imprint.
Spotted an error or have something to add? corrections@3dprinterstuff.com
Explore more
All articles on 3D Printer Stuff →
Maker Tips, Delivered
New guides, filament tests, and project ideas — every week in your inbox.
🎁 Free bonus: 3D Printing Starter Checklist (PDF)
You might also like
Perfect First Layer: The Foundation of Every Good Print
Your first layer determines whether the next 6 hours of printing succeed or fail. This data-driven guide covers Z-offset calibration, bed surfaces, and adhesion science.
PETG Stringing: Complete Fix Guide with Test Models
PETG strings like crazy out of the box. Here's a systematic approach to fixing it—retraction settings, temperature tuning, and test models that actually isolate the problem.
How to Print and Read a Temperature Tower (Step by Step)
A temperature tower is the fastest way to find your filament's sweet spot. Here's how to set one up in Cura, read the results, and dial in perfect temps.