This 3D printer calibration tool turns your measurements into corrected settings and writes the exact commands to send. It covers the six calibrations that fix most print problems: extruder E-steps (rotation distance in Klipper), flow rate, retraction, PID tuning, the first layer and Z offset, and axis steps. Choose Marlin for most Ender 3 models and many Anycubic, Artillery, Sovol, Elegoo and Prusa printers, or Klipper for Voron, RatRig, Creality K1, Elegoo Neptune 4 and printers running Mainsail or Fluidd. The calculator follows the official Marlin and Klipper documentation for every command, including the signs that trip people up.
3D printer calibration in the right order
- Check the hardware. Tighten loose frame bolts, set the belts so they twang like a low guitar string, and make sure the wheels on the print head and bed roll without wobble.
- PID tuning, so the nozzle and bed hold a steady temperature.
- E-steps, so the extruder pushes exactly the length of filament the slicer asks for.
- First layer and Z offset, with the first layer test from the 3d printer test prints.
- Flow rate, with a single wall cube, once per filament.
- Temperature, with a temperature tower, once per filament.
- Retraction, with the stringing test.
- Axis steps, only if parts still come out the wrong size after everything else.
Write each new value on a strip of tape on the printer. When something goes wrong months later, you will know what was changed.
E-steps calculator
E-steps (steps per mm) tell the extruder motor how far to turn for each millimeter of filament. Klipper uses rotation distance instead, which works the other way round: a smaller rotation distance pushes more filament.
- Heat the nozzle to your print temperature, mark the filament 120 mm above the extruder inlet (70 mm for Klipper) and measure the exact distance.
- Send the commands from the tool. The filament is pushed slowly, so wait until it stops.
- Measure from the inlet to the mark again and type it in. The tool shows the error and the new value.
Within 1% needs no change. If the result is far out, around 10% or more, check for a slipping extruder gear or a partly blocked nozzle before changing anything. Some printers, such as Bambu Lab models, do not let you change this setting, and Prusa printers ship with a tested value that rarely needs changing.
Flow rate calibration
Flow, called extrusion multiplier in PrusaSlicer and flow ratio in OrcaSlicer and Bambu Studio, fine tunes the width of each line for one filament. Print the calibration cube in vase mode, which spiralizes a single wall with no top or infill, and measure the wall in the middle of each side with calipers. New flow = current flow × line width ÷ measured width. A wall of 0.48 mm with a 0.45 mm line width at 100% gives 93.8%. Try it on the next print with M221 S94, then save the new value in the slicer so every print uses it.
Retraction tuning
Retraction pulls the filament back before travel moves to stop oozing. Direct drive extruders usually need 0.5 to 2 mm at 25 to 45 mm/s, Bowden tubes 4 to 7 mm at 40 to 60 mm/s. The tool plans a tower: each 5 mm section of the stringing test prints with a longer retraction.
- Klipper: turn on firmware retraction in printer.cfg and in the slicer, then send the TUNING_TOWER command from the tool before starting the print.
- Marlin: if your firmware has FWRETRACT, add the M207 lines as custom G-code at each height. Otherwise print the stringing test once per distance.
Pick the shortest distance with clean towers. Going much further than needed can pull soft plastic into the cold end and jam it.
PID tuning
PID tuning teaches the heater how hard to drive to hit the target without overshooting. Run it at the temperature you print at, with the part fan on as it would be while printing. In Marlin, M303 with U1 applies the result and M500 saves it; the bed needs a firmware built with PIDTEMPBED. If you paste the M303 output into the tool, it writes the M301 line for the nozzle or M304 for the bed. In Klipper, PID_CALIBRATE runs the test and SAVE_CONFIG writes the values to printer.cfg and restarts.
First layer and Z offset
The Z offset sets how close the nozzle sits to the bed. Start with the paper test: home the printer, move the nozzle to the bed and adjust until a sheet of paper drags slightly. Then print the first layer test and pick the look that matches in the tool.
| Firmware | Setting | To move the nozzle closer |
|---|---|---|
| Marlin with a probe | M851 Z offset | Make it more negative |
| Klipper with a probe | z_offset in [probe] | Make it larger |
| Klipper with a Z endstop | position_endstop | Make it larger |
| Marlin without a probe | Bed screws | Turn to raise the bed |
You can also adjust while the first layer prints, with babystepping (M290 in Marlin, SET_GCODE_OFFSET in Klipper). In Klipper, Z_OFFSET_APPLY_PROBE or Z_OFFSET_APPLY_ENDSTOP followed by SAVE_CONFIG keeps that change.
Axis steps and dimensions
Belt driven X and Y axes have fixed steps set by their parts: a GT2 belt with a 20 tooth pulley and 16 microsteps needs 80 steps per mm, or a rotation distance of 40. If a part comes out the wrong size, check the belt tension and the slicer first. Measure a part at least 100 mm long, because a 20 mm cube cannot show small errors, and change the steps only if the same error repeats. Errors under 0.5% are normal shrinkage and are better fixed with the slicer's scaling.
Printers that calibrate themselves
Many recent printers run some of these steps on their own. Bambu Lab printers calibrate vibration and flow dynamics, Prusa MK4 and Core One printers check the first layer height with their load cell, and many Creality and Anycubic models level the bed automatically. Even then, flow, temperature and retraction still depend on the filament, so those tests remain worth doing.
Sending commands to the printer
Type the commands into a terminal: OctoPrint, Pronterface, Repetier Host, or the console in Mainsail or Fluidd for Klipper. If the printer is connected by USB, the serial monitor online can send them straight from Chrome or Edge. If the printer's port does not appear at all, it often needs a CH340 or CP2102 USB driver; the usb device not recognized guide walks through it. Prints that stop at random from a microSD card can point to a failing card, which the sd card speed test helps you check.
What the calculators cannot do
The results are only as good as your measurements, so use digital calipers and measure twice. The tool cannot see the printer, so it cannot spot a cracked extruder arm, a loose pulley or a worn nozzle, which no setting will fix. The commands assume standard Marlin and Klipper builds: printer makers sometimes switch features off, such as PID tuning for the bed or firmware retraction, and the printer then ignores those lines or reports an unknown command.
3D printer calibration questions
What order should I calibrate a 3D printer in?
Check the frame and belts first, then tune PID, E-steps, the first layer and Z offset, flow rate, temperature and finally retraction. Each step depends on the ones before it, so fixing flow before E-steps just hides an extruder error.
How do I calculate E-steps?
New E-steps = current E-steps × requested length ÷ length actually extruded. If the printer is set to 93 and extrudes 97 mm when asked for 100 mm, the new value is 93 × 100 ÷ 97 = 95.88. Save it with M92 E95.88 and M500.
Should I calibrate E-steps or flow rate first?
E-steps first. E-steps make the extruder push the right length of filament for every material. Flow then fine tunes how wide each line comes out for one filament, and is set in the slicer.
What does M500 do?
M500 saves the current settings, such as E-steps, PID values and the Z offset, to the printer's memory (EEPROM) so they survive a restart. M503 shows the settings and M502 loads the firmware defaults, which you then save with M500.
How do I know if my PID needs tuning?
Watch the nozzle temperature while printing. If it swings more than about 2 °C either side of the target, overshoots by 5 °C or more when heating, or the printer stops with a heating error, run PID tuning. Always tune after replacing the heater, thermistor or hot end.
How often should I calibrate my 3D printer?
E-steps and PID only need doing once, and again after hardware changes. Check the first layer whenever you change the bed surface or nozzle, and run flow, temperature and retraction tests for each new type or brand of filament.