Phase 0 · Fundamentals · L3
What the slicer actually decides
One equation with three terms, and the reason "print faster" quietly becomes "melt more per second".
This lesson covers what a slicer produces, reading G-code, the extrusion equation
flow = height × width × speed, and why max volumetric speed clamps everything else. If
that's already yours, skip straight to Phase 1 →
Every remaining lesson in this course is a number you will type into PrusaSlicer. This is the lesson that makes those numbers mean something physical instead of being knobs. Get the extrusion equation and you can predict, before you press print, whether a speed you just set is inside your machine's melting capacity — which is the difference between tuning and guessing. It's also how you'll read the results of the max volumetric speed test in Lesson 15 rather than eyeballing them.
PrusaSlicer's job is narrow. It takes a solid model and produces a text file of movement instructions. It decides where the nozzle goes, how fast, and how much filament to push while it gets there. Everything you tune is one of those three.
1G-code is a list of moves, and you can read it
Slice anything and look at the output. Almost all of it is one command:
G1 X120.5 Y98.2 E1.842 F2700
; ^ go here ^ push this much ^ at this speed
Four things worth internalising:
X/Y/Zare millimetres of position.Eis millimetres of filament consumed — length of 1.75 mm stock, not length of deposited line. This is what the extrusion multiplier scales.Fis feedrate in mm per minute, not per second. The slicer says 45 mm/s; the G-code saysF2700. Divide by 60.- A move with no
Eis a travel — the nozzle is moving without extruding, which is exactly when it wants to ooze. That's what retraction exists for.
Some commands are settings rather than moves, and these are the ones this course will have you writing by hand in Phase 2:
| Command | Does | Where |
|---|---|---|
M104 S220 | set nozzle temperature, don't wait | all three printers |
M221 S95 | firmware flow multiplier, in % | all three printers |
M220 S150 | feedrate override, in % | all three printers |
M900 K0.04 | set Linear Advance | MK3S only (Marlin) |
M572 S0.045 | set Pressure Advance | MK4S / Core One only (Buddy) |
An MK3S M900 K value and an MK4S M572 S value both compensate for melt-zone
pressure, and they are not interchangeable numbers. Pressure Advance replaced Linear Advance on
the MK4 family from firmware 5.0.0.1 Copying 0.05 from one to
the other is the single most expensive mistake available in this course, because the print will still
work — just slightly wrong, everywhere, forever.
2The extrusion equation
The slicer computes each E value from a simple physical picture. An extruded line is
approximately a rectangle in cross-section: as tall as the
layer height, as wide as the
extrusion width. Move that cross-section along at
some speed and you get a volume per second:
volumetric flow (mm³/s) = layer height × extrusion width × print speed
(mm) (mm) (mm/s)
Two things follow immediately, and both are counter-intuitive enough to be worth stating out loud.
First: extrusion width is not nozzle diameter. A 0.4 mm nozzle typically lays a ~0.45 mm wide
line, because the plastic is squashed against the layer below. PrusaSlicer sets it per feature type and
you read the real value at Print Settings → Advanced → Extrusion width. You'll need that
exact number in Lesson 11 — using 0.4 there will hand you a wrong extrusion multiplier that looks
right.
Second: mm/s is a dishonest unit for speed. Consider two prints:
| Layer | Width | Speed | Flow | |
|---|---|---|---|---|
| Fine detail print | 0.15 | 0.45 | 100 | 6.75 mm³/s |
| Draft print | 0.25 | 0.45 | 100 | 11.25 mm³/s |
Both say "100 mm/s". One asks the hotend for two-thirds more plastic per second than the other. The MK3S, with its ~11–13 mm³/s ceiling, is comfortable in the first row and at its limit in the second — same number on the slider. This is why the honest unit for "how fast is this printing" is mm³/s, and why every hotend comparison in this course is quoted that way.
3The ceiling, and what happens when you hit it
Max volumetric speed (MVS) is a
per-filament setting at Filament Settings → Advanced → Max volumetric speed. It is a hard cap:
PrusaSlicer will silently slow any move whose speed would exceed it.
That word silently is the trap. If you set 150 mm/s perimeters and MVS is 8 mm³/s, you do not get an error. You get 150 in the settings box, something much slower in the G-code, and a print time that makes no sense. And in the opposite case — MVS left at a permissive default while you raise speeds — you get the failure from Lesson 1: plastic arriving faster than the melt zone can heat it, walls going matte, thin and weak, with no warning at all.
MVS is measured before speeds are set, in Lesson 15, not after. Set speeds first and you're tuning numbers that a cap you haven't measured yet may already be overriding. This is the first concrete example of the calibration order — and Lesson 4 is entirely about why that order is not negotiable.
Finally, the equation cuts the other way too, and this is the practical trick worth remembering: to print faster without asking more of the hotend, raise layer height rather than speed. Going from 0.15 mm to 0.25 mm layers at the same speed prints a given object in roughly 40 % less time — but it also raises flow by two-thirds, so you have to check the equation, not just the clock.
4Do the arithmetic before you look
Work each one out on paper first — actually compute it. Retrieval is the point; reading the answer teaches nothing. The calculator below is for checking your answer and then for playing with the three terms until the shape of the equation is yours.
Type your own profile's numbers in. Read extrusion width out of
Print Settings → Advanced → Extrusion width — not off the nozzle.
Working ceilings from Lesson 1, until you measure your own: MK3S ~11–13 · MK4S ~22–28 · Core One ~22–28 mm³/s. After Lesson 15 you type your measured MVS in here instead, and this becomes a calculator about your machine rather than a table.
Your MK3S at 0.20 mm layers, 0.45 mm width, 45 mm/s perimeters. What flow, and is it safe?
0.20 × 0.45 × 45 = 4.05 mm³/s
Comfortably inside the MK3S's ~11–13 mm³/s ceiling — roughly a third of it. Perimeter speed is almost never what saturates a hotend; infill is. Which is exactly why external perimeter speed is free to be slow: you're spending time you weren't going to spend melting anyway.
Same machine, 0.20 mm, 0.45 mm, but infill at 200 mm/s. Now what?
0.20 × 0.45 × 200 = 18 mm³/s
Over the MK3S's ceiling by a wide margin. If MVS is set correctly at ~13, PrusaSlicer clamps this move down to about 145 mm/s and your print takes longer than the settings suggest. If MVS is left permissive, the machine tries it and under-extrudes. Neither outcome matches the "200" you typed — which is the whole lesson.
Core One, 0.25 mm layers, 0.45 mm width. What speed exactly saturates 24 mm³/s?
Rearrange: speed = flow ÷ (height × width) = 24 ÷ (0.25 × 0.45) = 213 mm/s
So a Core One at 0.25 mm layers can genuinely sustain ~213 mm/s of solid extrusion — and the same machine at 0.15 mm layers could sustain 355 mm/s for the same demand on the hotend. Thinner layers buy speed headroom; they just spend it on more layers.
Why does a PETG profile cap out around 8–13 mm³/s when the same machine does 24 with PLA?
Because MVS is a property of plastic and hotend together, not of the hotend alone. PETG is more viscous and needs more heat per mm³ to reach a printable state, so the same heater block delivers fewer mm³/s of usable melt. It's a per-filament setting for exactly this reason — and it's why you'll measure it once per material per machine, not once per machine.
5Check yourself
From memory. Question 3 reaches back to Lesson 1.
M900 K0.045 on the MK3S. What should you put on the Core One?Read your own G-code
Slice anything — a calibration cube is ideal — with the stock 0.20 profile for one of
your printers. Then:
- Export the G-code and open it in a text editor. Find one
G1line with anEvalue in it. Write down itsFvalue and convert it to mm/s. - Look up the real extrusion width at
Print Settings → Advanced → Extrusion width → Perimeters. Write down the actual number, not 0.4. - Compute the volumetric flow for that move. Compare it to your machine's ceiling from Lesson 1.
- Find the
M572orM900line near the top of the file and write down what value your stock profile is currently using. That's your Phase 2 starting point.
→ Paste the four numbers back to me, with the machine you used. I'll tell you whether that profile is leaving throughput on the table or already at the edge.
What you can now say
- G-code is mostly
G1moves: position, filament consumed, feedrate in mm/minute. - Flow = layer height × extrusion width × speed. Three terms, and speed is only one of them.
- mm/s is a dishonest unit — the same number is a different demand at a different layer height.
- Max volumetric speed clamps silently, which is why it gets measured before speeds are set, not after.
M900 KandM572 Sare different features on different scales, and neither converts to the other.
M572 and its neighbours accept on the MK4S
family and Core One. Worth skimming now so that when Phase 2 asks you to write a custom G-code block,
you're checking a reference rather than guessing.§References
- Prusa Research. Pressure Advance. Pressure Advance (
M572 S) replaces Linear Advance on the MK4 family, XL and MINI/+ from firmware 5.0.0. Link. - Prusa Research. Buddy firmware-specific G-code commands. Reference for the commands accepted by MK4-family and Core One firmware. Link.
- Prusa Research. Extrusion multiplier calibration. Total flow rate is the firmware
multiplier (
M221) multiplied by the slicer's extrusion multiplier. Link.
Lesson L3 of the prusa-profile-tuning course · all lessons · The Calibration Card · glossary