Skip to content

Retraction calibration: dial in retraction to stop stringing

Print a two-pillar retraction tower where every segment uses a different retraction distance or speed, then read off where the strings disappear.

  • Free, no limits
  • No sign-up
Everything happens in your browser; your data is never uploaded.
  • ✓ Free
  • ✓ No sign-up
  • ✓ Nothing uploaded

Next step

What to do next

How to use it

  1. Choose what to test: retraction distance or retraction speed.
  2. Pick your extruder type (direct drive or Bowden); the tool fills in a starting range.
  3. Adjust the start and end values, the step and segment height, then download the STL or 3MF.
  4. Turn on firmware retraction in your slicer and paste in the value-change code.
  5. Print it and pick the lowest value where no strings span the two pillars.
Try it now

What retraction is and why it needs calibrating

When the print head travels from one spot to another without printing, molten plastic keeps oozing from the nozzle. That leaves thin, cobweb-like strings between parts of the print: stringing. Retraction fights it: before a travel move, the extruder pulls the filament back a little to relieve pressure in the nozzle.

Two values need to be right:

  • Distance: how much filament is pulled back. Too little and the strings stay. Too much and material is missing after the move, or worse, the nozzle clogs.
  • Speed: how fast. Too slow and plastic oozes out meanwhile. Too fast and the drive gear chews into the filament.

The right values depend on your extruder, hotend, filament and temperature, so retraction calibration is the quickest route: one print tries several values stacked on top of each other.

How the retraction tower is built

The tower is two 8 × 8 mm pillars with a 24 mm gap between them (about 1 in). On every layer the head travels from one pillar to the other and retracts. If the setting is off, strings appear across the gap. Each segment's value is embossed on the left pillar, so there's no math when you read it.

Starting ranges by extruder type:

ExtruderDistance (from–to, step)Speed (from–to, step)
Direct drive0.2–2 mm, 0.2 mm20–60 mm/s, 5 mm/s
Bowden1–6 mm, 0.5 mm25–60 mm/s, 5 mm/s

Segment height is adjustable from 3 to 30 mm (5 mm by default), with a 0–5 mm base underneath. A tower holds up to 20 segments. As a rough rule of thumb, most direct drive setups land around 0.4–1.5 mm and Bowden setups around 3–6 mm, but the tower tells you the exact value for your machine.

Firmware retraction: how the tower changes values

Slicers normally write retraction into the G-code themselves, with the same value on every move. To change the value per segment, this tool relies on firmware retraction: the slicer just writes "retract" (G10) and "unretract" (G11), while distance and speed live in the printer and can be changed mid-print.

  • Marlin: set with M207 (S = distance in mm, F = speed in mm/min; the tool converts from mm/s). Your firmware must support it (FWRETRACT).
  • Klipper: needs a [firmware_retraction] section in printer.cfg; the TUNING_TOWER command changes the value through SET_RETRACTION.
  • PrusaSlicer, OrcaSlicer, Bambu Studio: enable "Use firmware retraction" in the printer settings and paste the macro into the layer-change G-code.
  • Cura: use one instance of the "ChangeAtZ" post-processing script per segment, with "Change Retract Length" or "Change Retract Feed Rate".
  • Manual table: if none of these work, change the value by hand at the listed heights.

If your firmware doesn't support firmware retraction, use the built-in retraction test in OrcaSlicer's Calibration menu, which serves the same purpose.

Worked example: direct drive, 0.2–2 mm

The direct drive preset runs from 0.2 mm to 2 mm in 0.2 mm steps, which makes 10 segments. With 5 mm segments and a 1 mm base, the tower is 1 + 10 × 5 = 51 mm tall (about 2 in).

The PrusaSlicer macro starts with {if layer_z < 6.01}M207 S0.2, then {elsif layer_z < 11.01}M207 S0.4, and so on, ending with {else}M207 S2{endif}. For Klipper you need one line: TUNING_TOWER COMMAND=SET_RETRACTION PARAMETER=RETRACT_LENGTH START=0.2 SKIP=1 STEP_DELTA=0.2 STEP_HEIGHT=5.

Say the strings vanish completely at 0.8 mm. Set the distance to 0.8 mm. Then print a second tower as a speed test with the distance fixed at 0.8 mm. If 40 mm/s is the lowest speed with no strings and no clicking, the Marlin command becomes M207 S0.8 F2400 (40 mm/s × 60 = 2,400 mm/min). Enter the same values in your slicer's filament or printer profile if you switch firmware retraction off later.

Reading the tower and common mistakes

  • The lowest good value wins: pick the smallest distance or speed where the strings between the pillars disappear. Retracting more than that buys you nothing.
  • Too much retraction: material is missing at the pillar edge after travel, and the clog risk goes up. On a direct drive, going above 2 mm is rarely worth it.
  • Retracting too fast: the extruder clicks and the filament shows bite marks.
  • Temperature first: if the filament is too hot, retraction won't fix stringing. Print a temperature tower first, and test retraction at its best temperature.
  • Wet filament: PETG, TPU and nylon string when damp even with perfect settings. Dry the spool and run the test again.
  • Pressure advance: blobs at seams and corners respond to pressure advance (linear advance) calibration, which this tower doesn't measure.

If you see other defects along with stringing, the 3D print troubleshooting guide helps you find the cause by symptom.

Frequently asked questions

What retraction distance should I use on a direct drive?

Typically 0.4–1.5 mm, but the tower shows the exact value. Going above 2 mm is rarely worth it, because the clog risk rises.

What retraction distance should I use on a Bowden setup?

The flex in the Bowden tube means you need more, typically 3–6 mm. The preset tests from 1 to 6 mm.

Why does the test need firmware retraction?

Because then distance and speed are stored in the printer and can be changed per segment with M207 or SET_RETRACTION. The slicer's own retraction can't be changed mid-print.

What if my firmware doesn't support M207?

Try Cura's ChangeAtZ script, or use the built-in retraction test in OrcaSlicer's Calibration menu.

Should I calibrate temperature or retraction first?

Temperature first. If the filament is too hot, retraction won't stop the stringing.

Why do strings remain even with the best setting?

Often the filament is wet or the temperature is too high. Dry the spool and check a temperature tower.

Last updated: November 13, 2026

Recommended

Similar tools

If Retraction calibration helped, you may need these too.

See all in category →

People also use