Dual Loop PID, a accurate bed surface temperature

Coming back to the issue: Heatup times should not be a core issue, that prevents one from printing with a decent quality, of course any optimization is very welcome. In my working team, I always ask the team or the PO “Why should we do this project”? Talking everywhere of agile development and value stream, this is a very good “tool” to decide if an optimization or feature is a) good(enough) and b) at the right time (Resources are always limited).

Maybe we should add this question to the template of starting a new feature. At at this point, this question is not completely answered (for me) for the described heating control.

I was halfway through writing a response saying that heat up times could be a core issue, especially for companies using printers with large, thick aluminum heated beds but I suspect that once they have the bed heated, they use something like a stainless steel/PEI sheet for the print surface and keep the beds at temperature to avoid reheating them. Then, of course, there is the cool down time which is at least as long (cool down to 30C is longer on my Voron than heating to temperature from 23C-24C).

So, I would agree with you that heating times probably aren’t a critical metric.

However, if somebody wants to do the work and experiment with coming up with an effective MISO implementation for this application, then I’d tell them to go for it. This is a chance for them to learn and enhance their skills (along with that, it’s not a bad thing to put on your resume that you came up with a MISO bed heating implementation that’s now part of Klipper and the Voron projects).

So if @rmda and @fugalster want to try and get something working in this area I think we should encourage them. I wouldn’t support putting it in as a Klipper feature request as I agree with you that it’s not a “core issue”, but I would support their work and help where I could.

I’d love to see this feature not only for thick beds but for chamber heaters. I’m using a ptc heater and a fan in one of my printers, but the thermistor is on the other end of the chamber so the histeresis is quite high. I mostly use the heater for heatsoaking (70C in under 10 minutes). This would be the exact solution for this problem. I’d like to help but my coding skills are quite outdated. So if anybody wants to attempt a more generic dual loop control feature I can do testing, documentation and stuff like this

2 Likes

you can use my fork, I already implemented it

1 Like

+1 on including a dual thermistor input control feature.

I have a Klipper powered Jubilee with a thick MIC6 bed, located in an insulated enclosure with a temperature controlled fan. While my setup delivers great thermal reproducibility, I would still like the bed temperature to be driven by a thermistor that is closest to the surface of the bed while not needing to worry about the silicone heater over-heating as a result of an overshoot.

Contrary to some of the opinions in this thread and on the Github issue, I do not see this as unwarranted complexity and here’s why.

  1. For a user, it’s more complex to set up startup macros and offests for different materials (target bed temperatures). It is far preferable to just add two lines of config to introduce another thermistor input and run some calibration routine to tamper overshoot.

  2. I do not agree with the discounting of “quality of life” improvements such as heat up times. 3D printing in general is at a point where things like ease of use and print speed matter. Shaving off 30% of the time it will take for temperatures to stabilize (as suggested by a simulation posted here) is a good prospect to go after.

In-short I like this idea a lot, especially nowadays where MIC6 plates tend to come with pre-drilled holes for plate thermistors.

1 Like