Printer hangs after hotend and bed reach temperature

Basic Information:

Printer Model: Ender 3 NG - Ender 3 to CoreXY conversion
MCU / Printerboard: BTT SKR 3 EZ
Host / SBC: BTT Pi 2
klippy.log
logs-20241020-212104.zip (478.1 KB)

Describe your issue:

Printer hangs after heating up the hotend and bed.
From what I can see there are no errors in the log the printer just heats the hotend up and then heats the bed up, says both have reached temp and after that it just stops, it doesn’t run any more of the gcode commands/rest of the start print macro, it just does nothing.

Some notes, I recently swapped my hotend out from a Ender 3 style hotend to the Triangle Labs TZ-E3-2.0 hotend. This uses an 80W heater in a bambu style heater block. The thermistor is a NTC 100K B3950, I have set it as Generic 3950 in my config. TZ-E3-2.0 Hotend

I have found that the heater doesn’t keep the temperature as consistent as I’d like, it seems to fluctuate ~4 degrees from 214-218. I have PID tuned for 215 but this still seems to happen. When cold the temperature stays stable so I don’t think it’s an issue with the wires, but maybe the way klipper is controlling the heater.

My only thought is that because the heater isn’t staying at a consistent temperature Klipper is waiting for it to stabilise before it starts printing.
I have printed with this setup before but this issue now seems to be happening consistently.

I have also reapplied thermal grease to both the heater cartridge and the thermistor.

If I attempted to Pause or Cancel the print it doesn’t do anything and the only way to get it out of this state is to do a emergency stop.

Does anyone have any advice for things to try?
Thanks in advance.

Correct, your hotend temperature never stabilizes and thus the print never starts.
Either a:

  • Defect in the temperature sensor or its wiring / connector
  • Defect in the heater or its wiring / connector
  • No PID tuning done or somehow wrong PID values

There is no indication for a Klipper defect in this area.

Hi Sineos, thanks for your response.

I have ran PID tuning so I would assume it shouldn’t be that.
The thermistor seems to read fine at lower temperatures with no deviation like what is seen at printing temperatures.
I think some defect in the heater may be possible, I do have a 40W heater cartridge that I can swap to, so I’ll try that.

Would it be worth trying some of the additional heater settings in the extruder config like max_power, smooth_time or pwm_cycle_time ?

So I did some more reading, and found someone else when a hight power hot end had had a similar issue, their fix was to run the PID tune while the cooling fan was at max speed.

Someone did suggest to them that reducing the smooth_time value would help for that type of heater.

So I change my value from the default of 1 to 0.5. Then I ran PID tune again, and now the temperature stays much more consistent. only varying <0.5 which is much more acceptable and I think shouldn’t cause an issue for the print to start.

I also read someone suggest not using the gcode commands for temperature wait and instead use the Klipper commands. So change from M109 SX to TEMPERATURE_WAIT SENSOR=extruder MINIMUM=X as that just waits for the temperature to be reached not for the temperature to stabilise.

References: High power hotend unstable after PID - https://www.youtube.com/watch?v=LZIjZobgJ7A&ab_channel=FutureEthan

Changing gcode commands in printer start - Reddit - Dive into anything

I humbly suggest looking here:

And maybe here: heaters: drop control delay by nefelim4ag · Pull Request #6706 · Klipper3d/klipper · GitHub

Maybe instant PWM or more frequent query of heater + shorter smooth time will improve things.

This is correct, but should not be considered a solution. It is my understanding that M109 really makes sure that the extruder is stable to start printing, whereas TEMPERATURE_WAIT just looks for the given sensor name and does not care about its stability.

Good point. Of course you should always limit the disturbances. For example, if I try to do a PID tune with full fans but no “silicone sock” on the hotend, PID tune will fail.

Indeed, this sometimes can help. I have to admit, I do not understand the circumstances when it is needed. One working theory is that extremely noisy temperature measurement might need this.
I’m running a 80W heater and never had any need to mess with this value.

So i was finding that even with all the changes I was still getting large(+/- 3 degrees) fluctuations in temp during printing. I set the max_power value of the extruder to 0.75 and reran PID turning and tried another print. This seems to be much more stable with a fluctuation range of +/- 0.5 degrees at 215 target temp.