3D Printer Test and Calibration

Test a 3D printer in this order: first layer, extruder, flow, temperature, then stringing. Download the free calibration models below, print each one, and enter your measurements in the calculators. Each step uses the method from Prusa, Klipper or Marlin documentation.

By Printer Test Page LabLast updated

Test models (STL)

Free 3D print test models, including a calibration cube, in millimetres. Open them in any slicer: PrusaSlicer, Bambu Studio, Cura or OrcaSlicer.

  • 20 mm calibration cube

    20 × 20 × 20 mm

    Measure X, Y and Z with calipers. Print in spiral (vase) mode for the single-wall flow check.

    Download STL
  • First layer test

    9 squares, 25 × 25 × 0.2 mm, over 170 × 170 mm

    One layer at nine spots across the bed. Shows the first-layer height and whether the bed is level everywhere.

    Download STL
  • Temperature tower

    30 × 14 × 51 mm, 5 tiers of 10 mm

    Five 10 mm tiers. Set a different nozzle temperature for each tier in your slicer, then compare surface, stringing and layer bonding.

    Download STL
  • Retraction (stringing) test

    50 × 10 × 31 mm

    Two thin pillars 40 mm apart. Strings between them mean retraction or temperature needs adjusting.

    Download STL

3D printer calibration, in order

  1. 1First layer. Everything else depends on it. Model
  2. 2Extruder. Only if prints look under- or over-extruded everywhere.
  3. 3Flow. Fine-tunes how much plastic goes into each line. Model
  4. 4Temperature. Once per new filament. Model
  5. 5Stringing. After temperature is set. Model

Calibration calculator

Extruder calibration

Heat the nozzle, mark the filament 120 mm above the extruder, extrude 100 mm slowly, then measure what is left to the mark.

Enter your numbers

Find the current value with M503 (Marlin) in a terminal.

Flow (extrusion multiplier)

Print the cube in vase mode, then measure each wall three or more times in the middle with calipers and use the average.

Enter your numbers

The expected wall is the extrusion width set in your slicer.

1. First layer

Print the first layer test: nine single-layer squares spread across the bed. A good first layer is an even surface with no gaps or ridges. Gaps between the lines mean the nozzle is too high; ridges mean it is too low.[1] If some squares look fine and others don’t, the bed isn’t level. Prusa printers with a load cell (MK4/S, CORE One, XL) set this height automatically; older i3 models use Live adjust Z from the printer’s menu.[2]

2. Extruder (E-steps or rotation_distance)

This checks that the extruder pushes the length of filament it is told to. Heat the nozzle, mark the filament 120 mm above the extruder, extrude 100 mm slowly, and measure what is left; Voron aims for within 0.5%.[3] On Marlin, steps per mm scale inversely with the length extruded, so new E-steps = current × requested ÷ actual; set it with M92 E and save with M500.[4] On Klipper the setting is rotation_distance, which scales the other way: new = previous × actual ÷ requested, rounded to three decimals.[5] The calculator above does both.

3. Flow (extrusion multiplier)

Print the 20 mm cube in vase mode so it has one wall, measure the middle of each wall three or more times, and divide your extrusion width by the average. Prusa’s guide uses 0.45 mm as the width and notes results usually fall between 0.9 and 1.1.[6] The calculator multiplies by your current value, so it works if you have already changed it.

4. Temperature tower

The tower has five 10 mm tiers. In your slicer, insert a temperature change at the start of each tier, for example 215, 210, 205, 200 and 195 °C for PLA. PrusaSlicer does this with custom G-code at a layer (such as M104 S205), which Prusa itself names as the way to build a temperature tower.[7] Pick the tier with the best surface, the least stringing and layers that don’t split apart.

5. Stringing

Print the retraction test: two pillars 40 mm apart. Fine hairs between them are stringing. Prusa’s first fix is lowering the nozzle temperature by 5 to 10 °C, then tuning retraction.[8]

Should you change X and Y steps from the cube?

Usually not. Klipper’s documentation says not to use a “measure and trim” method for the X, Y or Z axes, because it isn’t accurate enough and tends to make things worse.[9] A cube that measures 19.8 mm more often points to flow, elephant foot or plastic shrinkage.

Common 3D print problems

Stringing and oozing
Lower the nozzle temperature 5 to 10 °C, then tune retraction. Print the retraction test.[8]
Warping (corners lift)
Clean the bed, add a brim, keep the room free of drafts.[10]
Layer shift
Check belt tension and that the pulleys are tight.[11]
Under-extrusion (gaps in layers)
Check the first layer, slicer settings, nozzle, extruder gears and filament, then run the extruder test.[12]
Elephant foot (bottom flares out)
Use your slicer’s elephant foot compensation; about 0.2 mm suits a 0.4 mm nozzle.[13]

Looking for a paper printer test?

This page is for 3D printers. For inkjet and laser printers, print a printer test page, or start from what your printout looks like on the problem finder.

Questions people ask

What is the best test print for a 3D printer?

Start with a first layer test, because a bad first layer ruins every other print. Then print a 20 mm calibration cube to check flow and dimensions, a temperature tower for each new filament, and a retraction test if you see strings.

How do I calibrate E-steps?

Heat the nozzle, mark the filament 120 mm above the extruder, extrude 100 mm slowly and measure what is left to the mark. New E-steps = current E-steps × 100 ÷ the length actually extruded. Set it with M92 E and save with M500 on Marlin.

How do I calibrate flow?

Print the cube in vase mode so it has a single wall, measure each wall three or more times, and divide your extrusion width by the average. Prusa notes the result usually lands between 0.9 and 1.1.

Should I change X and Y steps if my cube measures 19.8 mm?

Usually not. Klipper’s documentation warns against measure-and-trim calibration for the X, Y and Z axes. Small size errors more often come from flow, elephant foot or shrinkage. Check those first.

How do I print a temperature tower?

Download the tower, then in your slicer insert a temperature change at the start of each 10 mm tier. In PrusaSlicer, right-click the layer slider in Preview and add custom G-code such as M104 S205 before each tier.

Sources

  1. [1] First Layer Calibration (i3) (Prusa Research)A good first layer is an even surface with no gaps or ridges; gaps between lines mean the nozzle is too high, ridges mean it is too low.
  2. [2] Live adjust Z (Prusa Research)Prusa printers with a load cell (MK4/S, CORE One, XL) set the first-layer height automatically; older i3 models use Live adjust Z.
  3. [3] Initial Startup (Voron Design)Voron’s extruder check: mark the filament 120 to 150 mm from the extruder, extrude 100 mm (two 50 mm moves on Klipper), measure, and repeat until within 0.5% of the target.
  4. [4] M92 - Set Axis Steps-per-unit (Marlin Firmware)Marlin sets extruder steps per mm with M92 E, saves it with M500, and reports current values with M92 (or M503 on older versions).
  5. [5] Rotation distance (Klipper)Klipper extruder calibration: new rotation_distance = previous × actual extruded ÷ requested, rounded to three decimals; extrude slowly for the test.
  6. [6] Extrusion multiplier calibration (Prusa Research)Prusa’s flow calibration: print a cube in vase mode, measure each wall three or more times, and set extrusion multiplier = extrusion width ÷ average wall thickness; values usually fall between 0.9 and 1.1.
  7. [7] Insert pause or custom G-code at layer (Prusa Research)PrusaSlicer can insert custom G-code (such as M104 S205) before a chosen layer, which Prusa names as the way to build a temperature tower.
  8. [8] Stringing and oozing (Prusa Research)Stringing comes from high temperatures or wrong retraction; Prusa suggests lowering nozzle temperature by 5 to 10 °C first.
  9. [9] Rotation distance (Klipper)Klipper advises against calibrating the X, Y or Z axes by measuring a print and trimming the value.
  10. [10] Warping (Prusa Research)Warping lifts corners off the bed, caused by the temperature difference between the hot plastic and the surrounding air; a clean bed, a brim and stable surroundings help.
  11. [11] Layer shifting (Prusa Research)Layer shifts are most often caused by wrong belt tension or loose pulleys.
  12. [12] Under-extrusion (Prusa Research)Under-extrusion shows as material missing from layers; Prusa’s causes include first layer too close, slicer settings, the nozzle, extruder gears, hotend cooling and the filament.
  13. [13] Elephant foot compensation (Prusa Research)Elephant foot is the first layers squished outward against the bed; PrusaSlicer’s Elephant foot compensation (around 0.2 mm for a 0.4 mm nozzle) corrects it.

Checked 2026-10-13. The Marlin E-steps formula follows from steps per mm scaling inversely with distance; Marlin’s page documents the commands. The models are simple boxes we generated; they are free to use.