Guide · Heating, power and control

PID tuning after a heater or hotend swap

Why copied PID values work poorly, the Klipper and Marlin commands their docs describe, how to save the result, and why PID is not a substitute for protection.

We may earn a commission if you buy through links on this page. How we make money

Short answer

Yes, re-run PID tuning after you change a hotend, heater block or heater. Klipper warns that PID values copied from other firmware or example configs often work poorly. In Klipper, run PID_CALIBRATE and then SAVE_CONFIG; in Marlin, run M303 with the U parameter and save with M500. PID tuning is not a substitute for thermal protection.

Picks in this topicAll best picks

  • Sovol SV08 extruder replacement kit (ceramic heater, nozzle thermistor, silicone sleeve, heater clip)Check price on Amazon

Why copied values work poorly

PID tuning sets how hard the firmware drives the heater as the temperature approaches and holds its target. The right numbers depend on the heater power, the mass of the block and nozzle, the sensor and the cooling around them. Change any of those and the old numbers describe a different hotend.

Klipper warns that PID values copied from other firmware or example configs often work poorly.[1] That includes values copied from a forum post for "the same" hotend.

A new heater changes the numbers

Heaters come in different powers, even for one hotend:

  • E3D says the standard 40 W HeaterCore suffices for most Revo High Flow uses, and recommends the 60 W core for high-temperature materials such as polycarbonate.[2]
  • Creality lists the Ender-3 V3 KE with a 60 W ceramic heater and a 300 °C hotend.[3]

A heater change is an electrical change. Check with the hotend and printer makers that the heater suits your printer's voltage and board before fitting it, and follow their installation instructions. Then tune.

Klipper: PID_CALIBRATE, then SAVE_CONFIG

Klipper documents PID_CALIBRATE followed by SAVE_CONFIG; its example is PID_CALIBRATE HEATER=extruder TARGET=170.[1] Run it at a target close to the temperature you print at, with the printer attended. SAVE_CONFIG writes the result into your printer config.

Klipper also notes that a PID-controlled bed may switch about ten times a second, which may not suit mechanically switched heaters. If your bed uses a relay, check with the printer's maker before PID-controlling it.

Marlin: M303, M500 and M503

Marlin's M303 auto-tunes heater PID values, needs at least 3 cycles (the default is 5), and only applies the result when you use the U parameter.[4] With EEPROM_SETTINGS enabled, M500 saves the values, M501 loads them and M502 resets them.

M503 reports the settings currently active in memory, which may not match what is saved in the EEPROM.[5] So a correct-looking M503 after tuning does not prove the values will survive a restart. Save with M500, restart, then check again.

StepKlipperMarlin
TunePID_CALIBRATE HEATER=extruder TARGET=<temp>M303 with cycles and U to apply
SaveSAVE_CONFIGM500 (with EEPROM_SETTINGS)
CheckPrinter configM503 shows active values; restart first

Prusa and other makers' own firmware may wrap these steps in a menu. Use their documented route if they provide one.

PID is not a substitute for protection

Marlin configures thermal protection through separate options from PID tuning, so a PID tune is not a substitute for thermal protection.[6] The two are still related. Marlin says a thermal runaway error may indicate poor PID tuning, and that correct tuning prevents overshoot, which it calls a safety hazard. A good tune makes nuisance errors less likely; it never replaces the check.

Next

Questions

Do I need to PID tune after changing my hotend?

It is the safe assumption whenever the heater, block or hotend changes. Klipper warns that PID values copied from other firmware or example configs often work poorly, and a different heater changes how the hotend responds.[1]

How do I save a PID result in Marlin?

Marlin's M303 applies its result only when you use the U parameter. With EEPROM_SETTINGS enabled, M500 saves the values. M503 shows the values active in memory, which may not match what is saved.[4][5]

How do I PID tune in Klipper?

Klipper documents PID_CALIBRATE followed by SAVE_CONFIG, for example PID_CALIBRATE HEATER=extruder TARGET=170.[1]

Is PID tuning a safety setting?

It is not a substitute for thermal protection, which Marlin configures separately. But Marlin links them: poor tuning may show up as thermal runaway errors, and it calls overshoot a safety hazard.[6]

Sources and changes

  1. Configuration checks - Klipper documentation (Klipper project) · Official documentation · Initial checks including PID_CALIBRATE and next calibration steps. · checked 8 Oct 2026
  2. E3D Revo High Flow Nozzles · Manufacturer · Revo High Flow product page: sizes 0.4-1.4 mm, 300°C, length tolerance, HeaterCore guidance; sold out at retrieval. · checked 8 Oct 2026
  3. Ender-3 V3 KE 3D Printer | Creality Official · Manufacturer · Ender-3 V3 KE product page: hotend, nozzle, Creality OS. · checked 8 Oct 2026
  4. M303 - PID autotune | Marlin Firmware · Official documentation · PID autotune parameters and saving. · checked 8 Oct 2026
  5. M503 - Report Settings | Marlin Firmware · Official documentation · Reporting active settings vs EEPROM. · checked 8 Oct 2026
  6. Configuring Marlin | Marlin Firmware · Official documentation · Thermal protection options and defaults; PID notes. · checked 8 Oct 2026
  • : First published.

Next editorial review due 7 Jan 2027.