⬢ prusa-profile-tuning

Phase 2 · The filament · L10

The temperature tower

One print, seven temperatures, one number. The first measurement of Phase 2, and the one every other measurement is standing on.

⏱ ~90 minutes, mostly printing• 🖨 One print per material per brand• Phase 2
◎ Why this lesson

Temperature is first in the calibration order because it moves everything else. Viscosity sets how much plastic a given push delivers, how far it oozes on a travel, how much pressure lags behind the extruder, and how quickly a bridge freezes. Measure extrusion multiplier at 245 °C, then decide 240 °C prints better, and your EM is a number for a material that no longer exists. So: temperature, then everything else.

The method is a temperature tower — a single tall print whose nozzle temperature drops by 5 °C every 10 mm. You get every candidate temperature on one object, printed with one spool, on one machine, in one session. That is the only way to compare them honestly: seven separate prints would differ by seven other things too.

⚠ Two gates before you print anything

The spool must be dry. A wet spool pops, strings and bonds badly at every temperature, so the tower's bands all look mediocre and you can't rank them. Prusa list moisture as a direct cause of stringing, and suggest simply trying a different spool as a diagnostic.2 In Mauritius this is not an optional step — see Lesson 2.

The machine must be signed off. If the hotend wanders ±8 °C, your 5 °C bands overlap and the tower is unreadable. That was Lesson 8. Don't skip forward to here with an unmeasured machine — you'll write the machine's faults into a filament profile.

1What you are actually looking for

Not "the best-looking band". The goal is the lowest temperature that still bonds layers properly, and those are different questions. Hotter almost always looks glossier and smoother — and strings more, sags more on bridges, curls more on overhangs, and takes longer to freeze, which caps how fast you can print later.

So you are searching downward from "obviously hot enough" until bonding fails, and then stepping back one band. The failure you are hunting for is invisible from the outside, which is why the tower gets destroyed afterwards.

▲ Judge in this order, not in order of what's easiest to see
  1. Layer adhesion — snap each band off afterwards. This outranks everything.
  2. Bridge sag — the underside of a bridged span, measured by eye against the band above.
  3. Overhang curl — does the edge lift and get hit by the nozzle next layer?
  4. Stringing — between the tower and any second object.
  5. Surface sheen — last, and only as a tie-breaker.

Sheen is at the bottom deliberately. It is the most visible property and the least load-bearing one, and ranking on it is how people end up printing PETG 15 °C hotter than it needs.

The snap test is the whole lesson in one action. Break a band across the layer lines. A granular, ragged fracture that tears through the plastic means the layers fused into one solid. A clean, flat separation along a layer line means they didn't — they are stacked, not welded, and that part will fail in service no matter how good it looks.

2Build the tower

Any smooth-walled tall model with an overhang and a bridge will do. What matters is the G-code you wrap around it. With a layer height of 0.2 mm, 50 layers is exactly 10 mm — so a band change every 50 layers gives you 10 mm of each temperature.

⬇ Download · the tower

temp-tower.stl — built for this lesson: seven 10 mm bands, each with a smooth outer wall, an 18 mm bridge and a 45° overhang, plus a detached pillar 40 mm away so every layer shows stringing too. Seven bands fit the suggested 30 °C ranges exactly (one band per 5 °C step, changes at layers 50–300); for a shorter range just leave the top conditional lines out and the last bands repeat your final temperature. Slice at 0.2 mm layers or the band maths breaks.

Set the filament profile's nozzle temperature to the highest value in your sequence, then step down. Stepping down means the machine is never asked to heat up mid-print and wait, which would stall in place and leave a blob.

Printer Settings → Custom G-code → After layer change G-code
;AFTER_LAYER_CHANGE
;[layer_z]
{if layer_num == 50}M104 S245{endif}
{if layer_num == 100}M104 S240{endif}
{if layer_num == 150}M104 S235{endif}
{if layer_num == 200}M104 S230{endif}
{if layer_num == 250}M104 S225{endif}

M104 sets the target and returns immediately — it does not wait for the nozzle to get there.1 That is what you want (a wait would pause the print and scar the wall), but it has a consequence: the first two or three layers of each band are still on their way to the new temperature. Judge the middle of each band, never the boundary.

⌁ Tower block generator — your range, exact G-code

The block above is the worked PETG example; type your own range and this writes the exact lines. Band 1 is deliberately absent from the block — it prints at the filament profile's own temperature, which you set to the hottest value. Paste the result below whatever is already in the after-layer-change pane.

Layers per band
Coldest band
Tower height used
Past the top of the tower. temp-tower.stl is 70 mm — only the bands that fit will print. Fewer bands, or shorter ones.
This layer height doesn't divide the band height exactly, so the temperature changes drift away from the STL's band boundaries. Slice at 0.2 mm and the maths stays honest.
Set the filament profile's other-layers temperature to the hottest value first — and delete this block from the printer profile the moment the tower comes off the bed.

Open your machine. The command is the same; where you put it and what else is already there is not.

MK3S · Marlin, and the slow machine of the three

Path: Printer Settings → Custom G-code → After layer change G-code.

The MK3S's stock after-layer-change block is short. Append your conditional lines below whatever is already there — don't replace it.

Print it at MK3S speeds. Around 45–60 mm/s perimeters, per Lesson 8. A tower printed at speeds this machine can't hold will show you cooling and flow problems that you'll misread as temperature.

Suggested ranges (0.4 nozzle, 0.2 mm layer), highest first:

  • PLA 230 → 200 · PETG 255 → 225 · TPU 95A 245 → 215

Set the filament profile's Other layers nozzle temperature to the top of the range, and its First layer temperature 5 °C above that — a cold first layer is an adhesion problem, not a calibration one, and you don't want it confusing the print.

MK4S · Buddy, and a stock profile that already runs hot

Path: Printer Settings → Custom G-code → After layer change G-code. Same pane, and M104 follows standard Marlin behaviour on Buddy firmware.1

Read what's there first. The MK4S stock block is longer than the MK3S's — it can carry Input-Shaper- and nozzle-related lines. Append; never overwrite.

⌁ Why the stock profile is hotter than you expect

Prusa's MK4S PLA profile runs around 230 °C, noticeably above the 210–215 °C that MK3S owners are used to. That is not a different opinion about PLA — it is because the MK4S is built for high flow, and Prusa themselves note that bigger flow wants more heat.3 So run your tower's range higher on this machine than you would on the MK3S, and expect the answer to land higher too. If you later push MVS up in Lesson 15, you may have to come back and add heat.

Suggested ranges: PLA 240 → 210 · PETG 260 → 230 · TPU 95A 245 → 215.

Core One · same command, but the chamber is in the experiment

Path: Printer Settings → Custom G-code → After layer change G-code, exactly as the MK4S. Same hotend class, same firmware, same suggested ranges.

⚠ Fix the chamber state, or the tower measures two variables

An enclosure that is heating up through the print changes the ambient temperature between band 1 and band 7 — which is precisely the thing you are trying to isolate. Decide the door and vent state before you start, write it down, and don't touch it. The tower's answer is only valid for that state.

The working targets — vent open and chamber ≤ 30 °C for PLA, closed and 35–40 °C for PETG — are community consensus, not a Prusa specification. Treat them as a starting point you are testing, and log what your machine actually did.

Run the tower twice for PLA if you have the time: once vented, once closed. The difference is a real property of this machine, and it is the single most useful Core One-specific number you can put in your log.

⚠ Delete the block when you are finished

That conditional lives in the printer profile, so it applies to every filament and every model you slice on that machine until you remove it. Leave it in and your next print silently drops 25 °C partway up for no reason you'll be able to find. Delete it the moment the tower comes off the bed — this is exactly the trap Lesson 4 warned about.

3Read it, then destroy it

Write the winner into Filament Settings → Filament → Nozzle, both fields. Then log it — with the machine, the spool, the colour and the date, per Lesson 19. Colour matters: pigment loads change flow and thermal behaviour within the same brand and material, so "eSun PETG" is not a spool identity, and "eSun PETG, black, batch on the label" is.

▲ What re-running this invalidates

Everything below it. Temperature is the first of Phase 2's seven measurements. If you come back and change this number by more than a couple of degrees, your extrusion multiplier, advance value, retraction length, cooling bands and MVS were all measured on a different material state and are now guesses. That is not a reason never to re-run it — it is a reason to get it right once, at the start, with a dry spool.

4Find the fault

Click each. Every one of these produces a tower you can read confidently and wrongly.

Why is this tower's answer worthless?

5Check yourself

From memory. Question 3 reaches back to Phase 0.

Question 1 of 3
Two bands both pass the snap test. The hotter one is visibly glossier. Which wins?
Question 2 of 3
Why does the lesson tell you to step temperature down through the tower?
Question 3 of 3
You finished all of Phase 2, then decided to drop PETG from 240 °C to 230 °C. What now?
✎ Your task · do this with your tutor

One tower, one material, one machine

Pick the machine you signed off in Lesson 8 and the material you print most. Then:

  1. Confirm and record the spool's drying state — temperature, hours, date it came out.
  2. Build the tower with the after-layer-change block, in your machine's suggested range. Paste me the block before you print it if you want it checked.
  3. Print, photograph, mark the bands, then snap every one of them.
  4. Report: the temperature you chose, the band that first failed the snap test, and what the failure looked like — clean split or granular tear.
  5. Confirm you deleted the G-code block.

→ Paste me all five. The one I care most about is point 4: if you can describe the fracture, you measured something. If you can only describe the surface, you ranked on sheen.

What you can now say

  1. Temperature is first because it moves everything else — flow, ooze, pressure lag and freeze time are all downstream of viscosity.
  2. The target is the lowest temperature that still bonds, not the best-looking band.
  3. The snap test outranks every visible criterion. Granular tear means fused; clean split along a layer means stacked.
  4. M104 doesn't wait, so the band edges are smeared — judge the middle.
  5. The test G-code lives in the printer profile and must be deleted, or it corrupts every later print on that machine.
📖
Primary source · read this next
Read it now rather than in Lesson 13, because it makes the case that stringing is a temperature symptom before it is a retraction symptom — Prusa's first suggestion is dropping the nozzle 5–10 °C. That ordering is exactly why temperature comes before retraction in this course.
💬 I'm your tutor — ask me anything. Paste me your after-layer-change block before you print and I'll check the layer numbers against your layer height, which is the commonest way a tower comes out with bands in the wrong places. Photos of a snapped band are welcome too — fracture surfaces are genuinely hard to read at first. Confused beats stuck.

§References

  1. Prusa Research. Buddy firmware specific G-code commands. M104 is listed as "Set Extruder Temperature" with standard Marlin behaviour and no Buddy-specific parameters — it sets the target and returns without waiting. Link.
  2. Prusa Research. Stringing and oozing. Stringing is caused by "very high printing temperatures and/or using incorrect retraction settings"; the recommendation to lower the nozzle by 5–10 °C; and the note that filament which "might have gathered moisture" will cause a lot of stringing. Link.
  3. Prusa Research. Max volumetric speed. "With larger nozzles, consider increasing the nozzle temperature to allow for even bigger MVS" — the documented link between heat and achievable flow that explains why the MK4S ships hotter profiles than the MK3S. Link.
  4. This course. Master tuning guide, §2.1 and §4 — the after-layer-change tower method, the judging priority order, and the per-material starting temperatures. Link.

Lesson L10 of the prusa-profile-tuning course · all lessons · The Calibration Card · glossary