Skip to main content

Heater Tolerance Configuration

Function Description

verify_heater is used to adjust Klipper's safety detection thresholds for heaters. It is not a configuration to increase heating power but is used to handle false positive issues caused by slow heating, high thermal inertia, or noticeable temperature fluctuations.

Safety Reminder
  • Do not blindly relax detection thresholds to bypass real faults.
  • If the heater is not rising in temperature, prioritize checking the heating element, heated bed, MOSFET, power supply, power rating, thermistor wiring, and thermistor model.
  • After making changes, you must personally observe a complete heating process to ensure the temperature changes are normal.

Extruder Reference Configuration

printer.cfg
[verify_heater extruder]
max_error: 120
check_gain_time: 120
hysteresis: 50
heating_gain: 2

Heated Bed Reference Configuration

printer.cfg
[verify_heater heater_bed]
max_error: 120
check_gain_time: 120
hysteresis: 50
heating_gain: 2
Reference Value Explanation

In the reference configuration above, check_gain_time: 120 and hysteresis: 50 are relaxed example values, used only to troubleshoot false positives after confirming the hardware is normal. Klipper’s official defaults are: check_gain_time 20 seconds for the extruder / 60 seconds for the heated bed, hysteresis: 5. After eliminating false positives, it is recommended to restore default values to avoid masking real faults.

Parameter Descriptions

Below are Klipper’s official definitions for each parameter of [verify_heater]. Please understand the mechanism before making changes.

max_error

  • Default Value: 120
  • The maximum "cumulative temperature deviation" before triggering an error. Smaller values result in stricter checks, while larger values allow more time before an error.
  • Specifically, the temperature is checked once per second:
    • If the temperature is approaching the target, the internal "error counter" resets.
    • Otherwise, if the temperature is below the target range, the counter increases by the difference between the reported temperature and the target.
    • When the count exceeds max_error, an error is triggered.

check_gain_time

  • Default Value: Extruder 20 seconds, Heated Bed 60 seconds
  • This parameter controls the check during the initial heating phase. Smaller values result in stricter checks, while larger values allow more time before an error.
  • Specifically, during initial heating, as long as the temperature rises within the time slice (in seconds), the error counter is reset.

hysteresis

  • Default Value: 5 (°C)
  • The maximum temperature difference (in degrees Celsius) considered to be within the target range. This parameter controls the range detection for max_error.
  • Rarely requires customization.

heating_gain

  • Default Value: 2 (°C)
  • The minimum temperature rise (in degrees Celsius) required during the check_gain_time check.
  • Rarely requires customization.

Situations Suitable for Adjustment

  • Large heated bed heats up slowly, and hardware is confirmed normal but occasionally triggers Heater heater_bed not heating at expected rate
  • High-temperature hot end has large fluctuations near the target temperature, and PID is confirmed calibrated but still occasionally triggers false positives
  • Chamber temperature changes cause slower heating curves for the heated bed or hot end
  • Thermistor displays negative values, several hundred degrees, or obvious jumps
  • No change in temperature at all when the heater is turned on
  • MOSFET, terminal blocks, or power supply show signs of heat, discoloration, or unusual smell
  • The configured sensor_type does not match the actual thermistor model

Debugging Recommendations

  1. First, perform PID calibration and save the configuration.
  2. Observe a complete heating curve from a cold start.
  3. Only add [verify_heater] for the heater that triggers false positives; do not change multiple at once.
  4. Modify one parameter at a time and record the performance before and after.

Common PID calibration commands:

PID_CALIBRATE HEATER=extruder TARGET=245
PID_CALIBRATE HEATER=heater_bed TARGET=100
SAVE_CONFIG
Loading...