Error whilst autotuning PID for high temperature printing

I've upgraged my printer to be able to print high temperature materials, and I'm looking to set PID values for these new temperatures.

When I try to autotune at 330°C, I get an overshoot of approximately 25°C. At this point, I get an error, and the autotune sequence is aborted. To try and counter this, I changed the PID_CONTROL_RANGE value in Configuration.h to 30. This hasn't made a difference though. Is this max temperature overshoot hard coded somewhere else?

I'm aware that I can reduce the overshoot by reducing the max pwm output, but it currently takes 10 minutes to heat to 330°C, and even longer to 400°C, so I'd like to avoid it if possible.

Any help would be appreciated. Thanks!


  • Update:

    I gave up looking through the firmware, and changed the max heater value to 200 °C. This gave a max overshoot of ~15 °C for the initial warmup. After tuning, I'm still getting a variation of +/- 10 °C during printing though. Would reducing the max heater value further improve this?

  • An overshoot is normal especially for high power heater. Until targen - PID_CONTROL_RANGE it will use full power (max drive) and then PID only starts to kick in. Depending on power even completely disabling power might cause overshoot due to delay heater until you get a response at sensor. Problem is you need to switch from P part being build from error * P to give control to integral part. One trick is to limit initegral part. If you know max. power needed when you are settled is 200 set Imax to 210 to have some margin. Then you waste no time to reduce it when it starts building up too high. Increase damping maxbe to throttle speed faster and reduce P. That should reduce overshoot an dif you go too extreme you get undershoot and takes a bit longer to increase I to reach the temperature.
Sign In or Register to comment.