Reading a temperature tower: how the test works and what it cannot tell you

Published October 15, 202611 sources

Short answer

A temperature tower stacks blocks printed at different nozzle temperatures so one print compares a whole range [1]. Choose the block with the fewest problems across stringing, layer adhesion, overhangs and bridging; if several look good, OrcaSlicer suggests the middle of that range, or its upper end for faster printing [1]. Start from the filament maker's published range [3], and calibrate temperature before volumetric speed and pressure advance [2].

How a tower changes temperature with height

A temperature tower is a column of identical blocks. Each block is printed at a different nozzle temperature, so the finished part lets you compare stringing, bridging and surface quality side by side [1]. Temperature changes happen at block boundaries, which makes the tower a banded test: you read which block looks best, not an exact height.

The arithmetic behind any banded tower is simple. Klipper’s TUNING_TOWER command documents it with STEP_DELTA and STEP_HEIGHT, a mode its documentation describes as common with temperature towers: value = start + step_delta × floor(z_height / step_height) [5]. A tower starting at 230 °C with −5 °C every 10 mm is therefore at 220 °C anywhere between 20 and 30 mm. Klipper also has a FACTOR plus BAND mode, where value = start + factor × ((floor(z_height / band) + 0.5) × band), which reports the value at the middle of each band [5]. The PA tower calculator reads banded towers with either formula.

Where the tower comes from depends on the software:

Software How to get a tower Source
OrcaSlicer Built-in temperature calibration with a ready model [1]
Bambu Studio Temperature test in the developer-mode calibration menu for third-party printers [10]
PrusaSlicer Add M104 commands at chosen layers in the preview, or a Before layer change macro [7, 8]
Klipper Banded TUNING_TOWER arithmetic for any tower model [5]

In PrusaSlicer, custom G-code added from the preview’s layer slider is inserted before the selected layer prints. Prusa names M104 as the command for building a temperature tower and notes that M109 with S waits only while heating, while M109 with R also waits for cooling [7]. Prusa labels this as a tool for advanced users and asks you to double-check inserted commands.

Setting up the print

  1. Pick a range inside the filament manufacturer’s published nozzle temperatures. OrcaSlicer’s material page says optimal temperatures vary by brand and printer and to start from the manufacturer’s recommendation [3]. The temperature chart collects published ranges.
  2. In OrcaSlicer, leave Auto-scale for nozzle on unless you want to compare against older towers. The reference model is built for a 0.4 mm nozzle at 0.2 mm layers; with the option on, the tower is scaled to your nozzle and the layer height is set to half the nozzle diameter [1]. Because the block heights scale with it, check where each block starts in the G-code preview instead of assuming fixed millimeter values.
  3. Print with the speeds you intend to use. OrcaSlicer’s advice on choosing a final value depends on print speed and flow, as described below.

On belt printers, OrcaSlicer’s dialog adds a choice between the standard sectioned tower and an Overhang model of inverted-L pieces for judging overhangs at each temperature [1].

What to look for in each block

OrcaSlicer’s wiki defines the best temperature as the one with the highest quality and the fewest issues such as stringing, poor layer adhesion, warped overhangs and poor bridging [1]. It summarizes the trade-offs this way:

Feature Lower temperature Higher temperature
Stringing Usually less stringing More stringing
Layer adhesion Weaker Generally better
Overhangs and bridges Less flow Better flow, but sagging if too hot
Extrusion Under-extrusion when too cold Degradation and clogging when too hot

Table content from OrcaSlicer’s temperature guide [1]. Prusa’s stringing guide agrees on the first row and suggests dropping the nozzle 5–10 °C to see whether strings decrease [9].

When a run of blocks all look acceptable, OrcaSlicer suggests taking the middle of that run, or leaning toward the upper end if you plan to print at higher speeds or flow rates [1]. If the 215, 220 and 225 °C blocks are all clean, that rule gives 220 °C for everyday printing and points toward 225 °C for a fast profile. Its volumetric speed guide gives the same advice from the other direction: for more speed or flow, move toward the top of the filament’s range, which is why the tower comes before the max volumetric speed test [4, 2].

What the tower cannot tell you

A tower answers one question well: which temperature gives the cleanest surface for this geometry at these settings. Several things fall outside it.

Strength. The blocks show visible layer bonding, not measured strength. OrcaSlicer only states that higher temperatures generally improve adhesion [1]; a tower does not quantify how much.

Flow rate. A tower printed slowly says little about the same filament at a much higher volumetric flow. OrcaSlicer ties higher flow to higher temperature [4], so a value chosen at low speed may be too cool for fast printing.

Moisture. Wet filament causes heavy stringing on its own [9]. If every block strings, dry the spool and print again before reading the result; see wet filament.

Bed and chamber. The tower tests the nozzle. OrcaSlicer’s material page covers bed temperature separately, warning that too hot a bed softens lower layers into elephant’s foot and that hot chambers can clog low-temperature filaments such as PLA [3].

Downstream calibrations. Klipper notes that printing temperature affects pressure advance and should be tuned first [6], and Bambu Lab lists a temperature change as a reason to recalibrate flow dynamics [11]. After settling on a temperature, re-run the pressure advance test.

Where it fits in the calibration order

OrcaSlicer’s guide starts with nozzle and bed temperature, then max volumetric speed, pressure advance, flow, retraction, cornering and input shaping [2]. The guide puts temperature first because it sets the filament’s viscosity, which governs how the plastic flows through the nozzle and bonds to the bed [2]. If stringing remains after the tower and the later steps, the stringing guide covers retraction and hardware causes.

Questions

Should I trust the spool's temperature range or my tower result?

Use both. OrcaSlicer's material page says actual optimal temperatures vary by brand and printer and to start from the manufacturer's recommendation, and its tower guide picks the best value within the tested range [3, 1].

Do I need to redo pressure advance after changing temperature?

Klipper's guide says temperature affects pressure advance and should be tuned first, and Bambu Lab lists a print temperature change as a reason to recalibrate flow dynamics [6, 11].

Sources

  1. Temp Calibration. OrcaSlicer Wiki. Slicer documentation. Tower concept, how to read it, auto-scale for nozzle, belt-printer overhang model. Accessed October 12, 2026.
  2. Calibration Guide. OrcaSlicer Wiki. Slicer documentation. Temperature is the first calibration in the recommended order. Accessed October 12, 2026.
  3. Material Temperatures. OrcaSlicer Wiki. Slicer documentation. Refer to manufacturer recommendations; bed and chamber temperature effects. Accessed October 12, 2026.
  4. Max Volumetric Speed (FlowRate) Calibration. OrcaSlicer Wiki. Slicer documentation. Raise temperature toward the top of the range for higher flow. Accessed October 12, 2026.
  5. G-Codes. Klipper documentation. Firmware documentation. TUNING_TOWER banded formulas (FACTOR/BAND and STEP_DELTA/STEP_HEIGHT). Accessed October 12, 2026.
  6. Pressure advance. Klipper documentation. Firmware documentation. Temperature affects pressure advance; tune temperature first. Accessed October 12, 2026.
  7. Insert pause or custom G-code at layer. Prusa Knowledge Base. Manufacturer documentation. Temperature towers via M104 at chosen layers; M109 S vs R behavior. Accessed October 12, 2026.
  8. Macros. Prusa Knowledge Base. Manufacturer documentation. Temp tower example using Before layer change G-code. Accessed October 12, 2026.
  9. Stringing and oozing. Prusa Knowledge Base. Manufacturer documentation. Lowering temperature 5-10 °C reduces strings; wet filament causes stringing. Accessed October 12, 2026.
  10. Calibration for 3rd Party Printer. Bambu Lab Wiki. Manufacturer documentation. Bambu Studio developer-mode temperature tower. Accessed October 12, 2026.
  11. Flow Dynamics Calibration. Bambu Lab Wiki. Manufacturer documentation. Recalibrate flow dynamics after a print temperature change. Accessed October 12, 2026.