A thermal runaway error is one of the most critical safety features on any FDM 3D printer. When triggered, the firmware immediately cuts power to the heater to prevent a fire. Most thermal faults are not actual runaways — they are caused by a faulty thermistor, loose wiring, a failing heater cartridge, or incorrect PID values. This guide walks through systematic diagnosis for both hotend and heated bed thermal errors on Marlin, Klipper, and RepRapFirmware machines.
Thermal runaway protection works by monitoring the temperature rise rate. If the heater is commanded on but the thermistor does not report a temperature increase within a set time window (typically 20–60 seconds), the firmware assumes something is wrong and shuts down. The fault almost always falls into one of these categories:
Work through these steps from easiest-to-hardest. Never disable thermal runaway protection — it is there to save your printer and your house.
Answer these before proceeding:
Before touching anything, note the exact error text and which heater triggered it. Different firmware uses different wording, and knowing the exact error tells you where to look first.
Thermistor failures are the single most common cause of thermal errors. Power off the printer, disconnect the thermistor at the control board, and measure its resistance with a multimeter. A 100K NTC thermistor should read approximately 100,000 ohms at 25°C room temperature.
Reading interpretation: open circuit (infinite ohms) = thermistor wire broken or sensor burned out. Short circuit (0–1 ohm) = wires shorted together. Drifted value (50K or 200K at room temp) = thermistor aged or wrong type installed. A reading that fluctuates wildly while wiggling the wire = intermittent break in the cable.
If the thermistor checks out, test the heater cartridge itself. Disconnect it from the board and measure resistance. A 24V 40W cartridge should read approximately 14.4 ohms; a 12V 40W cartridge reads about 3.6 ohms. A reading of infinite ohms means the heater coil has burned out — replace the cartridge.
Wiring problems are the second most common cause. The thermistor wires flex with every X-axis movement and eventually break inside the insulation. Check the full wire run from the control board connector, through the cable chain or wrap, all the way to the hotend. Pay special attention to strain relief points and where the wire enters the heat block.
Common failure points: where the cable exits the cable chain at the hotend side, inside the hotend connector (dupont pins can back out), at the MOSFET terminal block, and anywhere the wire is pinched or zip-tied tightly. Gently tug each wire at connectors — a loose pin will pull out easily.
If the thermistor is not making good thermal contact with the heat block, it will read lower than the actual temperature and the heater will run too long — but more commonly, poor contact causes temperature spikes/drops that confuse the PID controller. Remove the thermistor, clean the hole with a small drill bit or needle, apply a tiny amount of thermal paste, and re-seat it firmly. For screw-in type thermistors, use PTFE tape on the threads.
After any change to the hotend (new nozzle, different heat block, added silicone sock, or thermistor replacement), you must re-run PID tuning. The PID control loop must be calibrated to the thermal characteristics of your specific heater and sensor. Incorrect PID values can cause slow temperature rise, oscillation, or thermal error triggers.
| Firmware | PID Autotune Command | Save to EEPROM |
|---|---|---|
| Marlin (hotend 0) | M303 E0 S200 C8 | M500 |
| Marlin (heated bed) | M303 E-1 S60 C8 | M500 |
| Klipper (hotend) | PID_CALIBRATE HEATER=extruder TARGET=200 | SAVE_CONFIG |
| Klipper (bed) | PID_CALIBRATE HEATER=heater_bed TARGET=60 | SAVE_CONFIG |
| RepRapFirmware | M303 H0 S60 (bed) / M303 H1 S200 (hotend) | M500 |
If all hardware checks pass and you still get thermal errors, it may be that your firmware's thermal protection settings are too aggressive, or not aggressive enough. Verify the settings are appropriate for your hardware. Never fully disable thermal runaway protection, but you can adjust the sensitivity if you have a large thermal mass bed or a high-flow hotend that heats more slowly than the defaults expect.
THERMAL_PROTECTION_HOTENDS and THERMAL_PROTECTION_BED in Configuration.h. Defaults: period 40s, hysteresis 5°C.verify_heater settings in printer.cfg under each heater section. Default check_gain_time: 20s for hotend, 60s for bed.Marlin's thermal protection uses a "period and hysteresis" model. The heater must rise by at least the hysteresis value (default 5°C) within the period window (default 40s for hotend, 120s for bed). On large beds or all-metal hotends with high thermal mass, you may need to increase the period to 60–90 seconds for the hotend or 180–300 seconds for the bed. Always re-verify with a proper test after changing these values.
Klipper's verify_heater module uses a more sophisticated algorithm that monitors the heating rate and compares it to an expected model. If Klipper reports "not heating at expected rate," run PID_CALIBRATE first. If the error persists, check the check_gain_time and hysteresis settings under each heater. Klipper also has a separate max_temp and min_temp that trigger an immediate shutdown.
RRF uses M143 to configure heater fault detection. The default model checks for temperature rise rate during heating and temperature stability during hold. You can adjust fault detection parameters with M570, which sets the time and temperature tolerance before a heater fault is raised. RRF is also unique in that you can configure different fault behavior: pause print, shut down heater, or shut down everything.
If the heater cartridge and thermistor both test good, but the heater does not heat at all (zero rise), check the MOSFET on your control board or the external MOSFET module. Use a multimeter to verify voltage is reaching the heater terminals when the firmware commands heat. If no voltage, the MOSFET or fuse has failed. If voltage is present but no heat, go back to step 3 — the heater cartridge is open circuit.
Heater cartridge has infinite resistance (burned out) — replace with correct voltage/power rating.
Thermistor reads open or shorted — replace with the correct type (100K NTC, matching B value).
MOSFET on control board has failed short — replace the board or install an external MOSFET module.
Heated bed PCB has delaminated or traces have lifted — replace the bed or install a silicone heater on top.
Temperature readings are noisy/jittery and wiring checks out — control board ADC may be damaged, replace board.
If the printer is under warranty and you suspect a board-level component failure, contact manufacturer support before soldering.
BLTouch calibration, mesh bed leveling, Z-offset, PEI sheet maintenance, and warping fixes — the other common print failure mode.
Cold pull method, nozzle cleaning, Bowden tube removal, heat break clogs, wet filament issues, and extruder gear wear diagnosis.
Belt tension, stepper current, V-slot wheels, linear rail maintenance, and print speed/acceleration tuning for layer alignment.
Browse our full collection of 3D printer guides and specifications. From entry-level budget machines to high-end industrial printers, we cover the common failure modes and how to fix them.