LayerCalc

Temp Tower & Calibration Tower Generator

Choose what to test — temperature, retraction distance or speed, cooling fan, print speed or pressure advance — and download a G-code file that steps the value every few millimetres. Six tests, no slicer plugin, no post-processing script, works with any slicer or none.

Printer
mm
mm
mm
Print settings
mm
mm
mm/s

Keep it modest so the test isn't a speed test.

mm/s
°C

Used for retraction tests.

°C
%

Off for layer 1, on from layer 2.

mm

Direct drive ≈0.5–1.2, Bowden ≈4–6.

mm/s
Test sequence
°C
°C

Negative to go down the tower.

sections
mm
mm

Longer gap shows stringing better.

mm

The generated file always sets M83 (relative extrusion) after your start code. Your macro must home and heat.

Tower
—
Section (from bottom)HeightValue

Always open the file in your slicer's preview or a G-code viewer before printing. The generator is generic; it can't know your printer's quirks.

What the generator prints

Two square pillars, two walls thick, with a brim on the first layer for adhesion. The nozzle prints one pillar's walls, travels across the gap, prints the other, and comes back — once per layer, all the way up. The tower is divided into equal-height sections and the test value changes at the start of each one:

  • Temperature tower: an M104 at each section boundary sets the new nozzle temperature. The print continues while it changes, which takes a few layers for a 5 °C step — read each section from its top half.
  • Retraction distance / speed: every travel across the gap retracts with that section's value. Everything else is held constant.

The crossing is the whole point. Stringing, oozing and blobbing all happen on travels, and a 40 mm unsupported gap between two small pillars is the harshest travel a print ever makes. Whichever section has clean pillars and a clean gap is your answer.

Reading the result

  1. Note the section values from the table above (they're also in the G-code header). Section 1 is at the bottom.
  2. For a temperature tower, look at four things per section: stringing across the gap (worse when hot), layer adhesion (try to snap a pillar — worse when cold), the gloss and smoothness of the walls, and any tiny bulges at the corners (over-extrusion when hot). Pick the coolest section with good layer bonding; for strength, go 5 °C hotter than pure looks would suggest.
  3. For retraction distance, find the first section where the strings disappear; that's your distance. Going further doesn't help and risks pulling molten plastic up into the cold end, which causes jams on Bowden printers.
  4. For retraction speed, faster usually helps up to a point where the extruder skips or the filament grinds; use the fastest section that still looks clean.

What each test tells you

TestWhat changes per sectionWhat to look for
TemperatureM104Layer bonding (try snapping a pillar), stringing across the gap, surface gloss, corner bulge.
Retraction distanceRetract length on every travelThe first section where strings disappear. More than that risks clogs.
Retraction speedRetract feedrateThe fastest section that is still clean, before the extruder skips or grinds.
Cooling fanM106Overhang and corner sharpness against layer adhesion. More cooling looks better and bonds worse.
Print speedFeedrate on extrusion movesWhere walls start to thin, corners round off, or ringing appears.
Pressure advanceSET_PRESSURE_ADVANCE or M900 KCorner bulge and thin patches just after corners.

Where this fits alongside your slicer

If you use OrcaSlicer, use its built-in calibration for temperature, flow rate, pressure advance, retraction, tolerance and max volumetric speed. They are good tests and Orca applies the result to your profile for you, which this cannot.

Two things this does that no mainstream slicer has built in:

  • A cooling fan tower. Fan speed is the main lever on the trade between overhang quality and layer adhesion, and it is material-specific — PETG and ABS in particular. Nobody ships a test for it.
  • A print speed tower. Useful for finding where quality actually breaks on your machine, rather than trusting a profile number.

And it works when a slicer's built-in test is not an option: a different slicer, a printer you feed from an SD card, or a machine whose profile you would rather not touch.

A note on the pressure advance test

A tower is a usable pressure advance test but not the best one. It steps the value every few millimetres and you compare corners between sections. A purpose-built PA pattern with deliberate fast-slow speed transitions makes the effect far more obvious, because pressure advance is about what happens when the extruder changes speed. If OrcaSlicer's built-in test or Klipper's TUNING_TOWER is available to you, prefer them. This is the fallback, and the page would rather say so than pretend otherwise.

Suggested sequences

TestMaterial / setupStartStepSections
TemperaturePLA230 °C−56 (230 → 205)
TemperaturePETG250 °C−56 (250 → 225)
TemperatureABS / ASA260 °C−56 (260 → 235)
TemperatureTPU235 °C−56 (235 → 210)
Retraction distanceDirect drive0.2 mm+0.27 (0.2 → 1.4)
Retraction distanceBowden2 mm+16 (2 → 7)
Retraction speedDirect drive15 mm/s+105 (15 → 55)
Retraction speedBowden20 mm/s+105 (20 → 60)

Do temperature first, then retraction distance at the chosen temperature, then retraction speed at the chosen distance. Flow should already be calibrated with the flow rate calculator; if it isn't, over-extrusion will masquerade as "too hot".

What order to calibrate in

There is no single agreed order, and it is worth knowing that the two most-cited ones differ. OrcaSlicer's guide runs temperature → max volumetric speed → pressure advance → flow → retraction → tolerance. The order used elsewhere on this site puts extruder calibration first and flow before temperature.

The disagreement is real and the reasoning cuts both ways. Flow depends on temperature, so tuning flow at a temperature you then change means doing it twice — which argues for temperature first. But over-extrusion looks a lot like printing too hot, so reading a temperature tower with flow badly out can mislead you — which argues for flow first. Both orders converge if you go round twice, which in practice is what people do.

If you use OrcaSlicer, follow Orca's order; its tests are built for that sequence. Otherwise the practical minimum is: get the extruder delivering the right length of filament, then temperature, then flow, then retraction, and re-check flow if you moved the temperature much.

Before you print

  • Preview the file. Drag it into PrusaSlicer, OrcaSlicer or Bambu Studio (File → Import → G-code), or any online G-code viewer, and check the pillars sit where you expect on the bed.
  • Klipper users: if you rely on a PRINT_START macro for homing, mesh loading and heating, paste it in the custom start box with {hotend} and {bed} placeholders. The built-in start does a plain G28 and heats, which is enough for most setups.
  • Bambu users: printing raw G-code works from the SD card or by importing the file into Bambu Studio and sending it as-is. The built-in start code skips Bambu's purge and calibration routine, which is fine for a small test print.
  • Deltas: tick "origin at bed center" so the pillars land around 0,0.
  • Watch the first layer. The generator can't know your Z offset. If the brim isn't sticking, stop and adjust it as you would for any print.

What it deliberately doesn't do

No infill, no overhang features, no bridges — those belong in their own tests, and combining them makes each harder to read. There is no pressure advance or linear advance tuning; use the routines built into Klipper and Marlin for that. The print settings are conservative on purpose: a calibration print should isolate one variable, and a 40 mm/s wall speed keeps the hotend well inside its volumetric limit so what you see is the temperature or retraction, not a flow problem.

Frequently asked questions

How does a temperature tower work?

It's a tall print divided into sections, each printed at a different nozzle temperature. Comparing the sections shows where layer bonding, stringing, overhangs and surface finish are best for that filament. This generator prints two thin pillars with a gap between them, so each section also shows how much the filament strings when the nozzle travels across the gap.

What temperature range should I test?

Start at the top of the manufacturer's range and step down 5 °C per section: PLA 230 → 200, PETG 250 → 220, ABS/ASA 260 → 230, TPU 235 → 205. Six sections of 5 °C covers 25 degrees. Print the hottest section first — at the bottom — so bed adhesion gets the strongest bond.

What retraction settings should I test?

Direct drive: distance 0.2 to 1.5 mm in 0.2–0.3 mm steps, speed 20–45 mm/s. Bowden: distance 2 to 7 mm in 1 mm steps, speed 25–60 mm/s. Test distance first at a fixed speed, then speed at the best distance. Find the lowest values that eliminate strings between the pillars; more retraction than needed causes clogs and blobs.

Will this work on my printer?

It produces standard G-code (G0/G1, M104, M140, M106, M83) that Marlin, Klipper, RepRapFirmware and their derivatives all accept. The built-in start sequence homes and heats; if your printer needs a custom start (Klipper PRINT_START macros, purge lines, bed mesh loading), paste it in the custom start G-code box. Always preview the file in your slicer or a G-code viewer before printing.

Why not just use a slicer plugin?

Plugins are slicer-specific, break between versions, and need post-processing scripts that many people find fiddly. A generated file is the same test every time, works with any slicer or none, and you can keep it and reprint it for every new spool. It also covers two tests no mainstream slicer has built in: a cooling fan tower and a print speed tower.

Which calibration tests does OrcaSlicer not have?

A cooling fan tower and a print speed tower. Orca covers temperature, flow rate, pressure advance, retraction, tolerance, max volumetric speed and VFA, and where it has a test you should generally prefer it because it applies the result for you. Fan and speed are the gaps this generator fills, along with working for people who do not use Orca at all.

Is this a good pressure advance test?

It is a usable one, not the best one. A tower steps the value every few millimetres and you look for the section with the crispest corners and least bulging. A dedicated PA pattern with deliberate fast-slow speed transitions shows the effect far more clearly, so use OrcaSlicer's built-in test or Klipper's TUNING_TOWER if you can. This is for when you cannot: a different slicer, or a printer you drive by dropping files on an SD card.

Last reviewed September 8, 2026. Spotted an error or want another calculator? Tell us.