How do you calibrate retraction distance?
Print a retraction tower and keep the shortest length that prints clean. In OrcaSlicer (Calibration → Retraction), the defaults run 0 to 2 mm in 0.1 mm steps, one length per 1 mm of height. Count the notches below the lowest clean band, multiply by the step and add the start. Save the result as the filament’s Length override.
The number
| Slicer and test | Where to find it | Lengths tested | New length every |
|---|---|---|---|
| OrcaSlicer 2.4.2, defaults (meant for most direct-drive extruders) | Calibration → Retraction | 0 to 2 mm in 0.1 mm steps | 1 mm of tower height |
| OrcaSlicer 2.4.2, wiki values for Bowden extruders | Same dialog | 1 to 6 mm in 0.2 mm steps | 1 mm of tower height |
| Bambu Studio 2.8.2 | Calibration → Retraction test (third-party printers, or Bambu Lab printers with Develop mode on) | 0 to 2 mm in 0.1 mm steps | 1 mm of tower height |
| UltiMaker Cura with the Calibration Shapes plugin, direct drive | Retract Tower model plus the RetractTower script, Command set to Distance | From 0.25 mm, up 0.25 mm per block | 38 layers at 0.2 mm layer height |
| Same plugin, Bowden | Same | From 1 mm, up 1 mm per block | 38 layers at 0.2 mm layer height |
| PrusaSlicer 2.9.6 | No built-in retraction test | None | None |
The OrcaSlicer rows come from its v2.4.2 source and its Retraction test wiki page, and the Bambu Studio row from its v02.08.02.61 source. The Cura rows come from the Calibration Shapes plugin’s Retract Tower wiki (5axes on GitHub). PrusaSlicer 2.9.6’s menus have no calibration entries.
Why does the tower change length every 1 mm?
Because the slicer rewrites Length at every layer change. In OrcaSlicer 2.4.2 and Bambu Studio 2.8.2, the tower’s G-code sets it to start + step × (layer Z minus 0.4 mm, rounded down). The first 0.4 mm is the base plate. So the lowest band prints at the start value, and each 1 mm above it adds one step.
Notches mark the bands: Bambu Studio’s tower model has one at every step, and OrcaSlicer’s wiki describes each notched section as a different length. Nothing else changes, so retraction speed, Z hop and wipe stay at your profile’s values. Both slicers print the tower with 2 walls, no infill and no top layers, and OrcaSlicer also switches off firmware retraction.
- Start value at the bottom
- First clean band
- Strings thin out as the length rises
- Notch between one length and the next
What should you calibrate before retraction?
- Dry the spool. Bambu Lab says damp filament strings in ways retraction settings usually cannot fully fix, so dry first and tune second (how to tell if filament is wet).
- Set the nozzle temperature. OrcaSlicer’s calibration guide starts with a temperature tower (Calibration → Temperature) because every later test depends on that setting.
- Tune pressure advance and flow ratio next. OrcaSlicer’s guide puts retraction last of its five filament tests. Pressure advance and flow ratio both change the pressure in the nozzle, so they come first.
How do you read retraction test results?
- Look between the posts. Bands printed too short leave strings across the gap and ooze on the posts. The strings thin out as the length rises.
- Pick the lowest clean band. OrcaSlicer’s wiki defines the best length as the shortest one that produces the cleanest tower.
- Convert it to a length. Count the notches below the band: length = start + notches × step. Or measure the band’s bottom edge from the bed: length = start + step × (height minus 0.4 mm, rounded down). With the defaults, a band starting at 12.4 mm gives 0 + 0.1 × 12 = 1.2 mm.
- Confirm it in the preview. The G-code carries a
Calib_Retraction_towercomment at each layer with its Z height and length. OrcaSlicer warns against reading the; retractlines, which leave out Retract amount before wipe.
A tower clean from the bottom up is common with PLA (polylactic acid) and ABS (acrylonitrile butadiene styrene), which ooze little. OrcaSlicer’s and Bambu Lab’s guides then suggest 0.2 to 0.4 mm.
What if no band on the tower is clean?
- Dry the filament and check the nozzle for leaks. OrcaSlicer and Bambu Lab both give this advice when the top of the tower still strings heavily.
- Lower the temperature. Prusa suggests 5 to 10 °C lower. Rerun the temperature tower, then the retraction test.
- Extend the range, within limits. On a Bowden extruder, test 1 to 6 mm as OrcaSlicer’s wiki suggests. On direct drive, stay within your maker’s ceiling: Bambu Lab recommends 2 mm at most, and Prusa caps the MK2.5/S and MK3/S/+ at 2 mm. Longer retraction trades strings for clogs and gaps (what happens if retraction distance is too high).
- Look past retraction. Long travel moves and worn nozzles also cause strings (why prints string).
How do you test retraction in Cura or PrusaSlicer?
- UltiMaker Cura: no built-in test. The Calibration Shapes plugin adds Extensions → Part for calibration → Add a Retract Tower. Then open Extensions → Post Processing → Modify G-Code, add RetractTower and set Command to Distance. Its wiki says to keep retraction on with a Retraction Distance above 0 and to remove the script after the test.
- PrusaSlicer: no built-in test either, and Prusa’s knowledge base recommends staying on the factory presets. OrcaSlicer 2.4.2 ships Prusa and Creality printer profiles. Print its tower there and copy the length into Retraction length (PrusaSlicer) or Retraction Distance (Cura).
How to check it on your own print
- Dry the spool and settle the nozzle temperature with a temperature tower.
- Run the tower in OrcaSlicer with your usual printer, filament and process profiles: the defaults for direct drive, 1 to 6 mm in 0.2 mm steps for Bowden. Leave the tower’s other settings alone. Bambu Studio 2.8.2 runs the same test from Calibration → Retraction test; on a Bambu Lab printer, tick Develop mode in Preferences first (where Bambu Studio keeps retraction settings).
- Convert the lowest clean band with start + notches × step, and check it against the
Calib_Retraction_towercomment. - Save it in the filament profile under Setting Overrides → Retraction. Tick Length, enter the value and save the preset. An unticked field falls back to the printer’s Length, per Bambu Lab’s wiki.
- Start a new project to leave calibration mode, as OrcaSlicer and Bambu Lab both instruct, then print a real part. Starting values by extruder type are on retraction distance, and for PLA on PLA retraction settings.
Sources
- src/slic3r/GUI/calib_dlg.cpp at v2.4.2, OrcaSlicer on GitHub (accessed October 30, 2026)
- src/libslic3r/GCode.cpp at v2.4.2, OrcaSlicer on GitHub (accessed October 30, 2026)
- src/slic3r/GUI/Plater.cpp at v2.4.2, OrcaSlicer on GitHub (accessed October 30, 2026)
- src/slic3r/GUI/MainFrame.cpp at v2.4.2, OrcaSlicer on GitHub (accessed October 30, 2026)
- src/slic3r/GUI/Tab.cpp at v2.4.2, OrcaSlicer on GitHub (accessed October 30, 2026)
- src/libslic3r/PrintConfig.cpp at v2.4.2, OrcaSlicer on GitHub (accessed October 30, 2026)
- resources/profiles at v2.4.2, OrcaSlicer on GitHub (accessed October 30, 2026)
- Retraction test, OrcaSlicer Wiki (accessed October 30, 2026)
- Calibration Guide, OrcaSlicer Wiki (accessed October 30, 2026)
- src/slic3r/GUI/calib_dlg.cpp at v02.08.02.61, Bambu Studio on GitHub (accessed October 30, 2026)
- src/libslic3r/GCode.cpp at v02.08.02.61, Bambu Studio on GitHub (accessed October 30, 2026)
- src/slic3r/GUI/MainFrame.cpp at v02.08.02.61, Bambu Studio on GitHub (accessed October 30, 2026)
- src/slic3r/GUI/Plater.cpp at v02.08.02.61, Bambu Studio on GitHub (accessed October 30, 2026)
- src/slic3r/GUI/Preferences.cpp at v02.08.02.61, Bambu Studio on GitHub (accessed October 30, 2026)
- src/slic3r/GUI/Tab.cpp at v02.08.02.61, Bambu Studio on GitHub (accessed October 30, 2026)
- resources/calib/retraction/retraction_tower.stl at v02.08.02.61, Bambu Studio on GitHub (accessed October 30, 2026)
- Calibration for 3rd Party Printer, Bambu Lab Wiki (accessed October 30, 2026)
- Retraction (Bambu Studio parameter guide), Bambu Lab Wiki (accessed October 30, 2026)
- Stringing and Oozing, Bambu Lab Wiki (accessed October 30, 2026)
- Stringing and oozing, Prusa Knowledge Base (accessed October 30, 2026)
- src/slic3r/GUI/MainFrame.cpp at version_2.9.6, PrusaSlicer on GitHub (accessed October 30, 2026)
- Retract Tower, Calibration Shapes plugin wiki (5axes on GitHub) (accessed October 30, 2026)
- CalibrationShapes.py at V2.2.4, Calibration Shapes plugin (5axes on GitHub) (accessed October 30, 2026)
- plugins/PostProcessingPlugin/PostProcessingPlugin.py at 5.13.0, UltiMaker Cura on GitHub (accessed October 30, 2026)