Heat soaking taking into account history?
With the new heat soak variables
Is there a way to change it so it can look at the history of the temperature graph to see if its been heating for at least 1200 seconds already before I started the print?
For example if I have just finished a print and I want to start the next print right away I now have to wait 1200 more seconds before it starts even though its previously been printing/heat soaking for the last hour
15 Replies
Not Sure If it would Work
But can't you simply add the variable to the start Code of the printer or Change it in the Konsole?
What variable would that be?
Is there one that knows how long its been heating alread y for?
I ment the heatsoak time
As it's written in the config
If i think of it right since it's a variable you can even write it in a macro to Change it
Its possible to change it dynamically, but the issue is I need to somehow pull the data/value for how long its already been heating for. Do you know where I would find that?
Klipper doesn't persist this sort of data at the end of a print. So you would first need to write a macro that looks up the current bed temperature, logs it, and saves that log to an output variable file sort of like how the ratos-variables.cfg works for IDEX. Then you could reference that file in another macro.
The much simpler thing to do is to just write a macro to adjust heat-soak time based on real-time temperature. So look up the current bed temperature at the start of a print, compare it to the target temperature, and change the heat soak variable based on how close the bed currently is to the target temperature.
The issue is if I heat my bed to 115. It takes about 2 minutes to get there. But I need to lest the printer heat soak for about 40-60 minutes before it at its optimal temperature to start printing. So if I did what you suggested it wouldn't work in this case as we are waiting for the frame and chamber temp to heat up
I'm thinking I could add a chamber temp probe and then add a macro to wait till the chamber is at a specific temp before printing?
As I don't have a chamber heater, just the 1000w bed heater. So if that chamber is hot enough, the bed should have heat soaked enough by then
Yes I understand, I don't think you've understood what I mean
I'm talking about inserting a macro right at the start of the
start_print
macro, BEFORE any heaters are switched on
Look up current bed temp, compare it to the target bed temp that is about to be set
So then the macro can operate something along the lines of: if your current bed temp is 20°, and your target bed temp is 115°, set heat soak variable to x. If your current bed temp is 57° (or whatever) and your target bed temp is 115°, set heat soak variable to y. If your current bed temp is 100°, and your target bed temp is 115°, set heat soak variable to z. Etc etc etc, you can define this as many times as you wish based on those criteria.
So what you're doing is assuming that if the current bed temperature is a certain value, then you've probably just finished a print and you can reduce your heat soak time
A chamber thermistor is certainly a good idea, it's always valuable data to haveCorrect me if I am misunderstanding, but if I start a print from room temp, my bed is 20c turned off. So then lets say if its at 20c I let it heat soak for 30 minutes.
But if I just manually turned on my bed 3 minutes ago before I started my print and now my bed is at 115c, how do I know how long to let it heat soak for, as in how does it know if its been on for 3 minutes or 30 minutes.
I assume it cant and this wont work if I manually turn on the bed.
But if I let the print fully control the bed, then I think it makes sense that this would work. so if the bed is off or lower than x degrees c, then we let it heat soak for 30 minutes, but if its above 90c then we assume its been running already, so remove the heatsoak time (or let it heatsoak for 5 minutes or so).
Am I understanding that correctly?
Yes, I think you're understanding now
Awesome, thanks for clarifying that 🙂
So basically what we're doing, is making an assumption that if the bed is at 115° at the very start of the print, then you have probably just finished a print and the bed should already be heat soaked sufficiently
Yeah logically that all makes perfect sense now
What this doesn't allow for, is if you were to start the printer from cold, and say you decided to preheat the printer for a bit so you set your bed to 115° in preparation.
But the something happens, you change your mind for whatever reason or you forget you were preheating and just go and click print, whatever - now your macro is going to reduce the heat soak time because it's assumed you've already heat soaked, and now it's not going to do a sufficient heat soak
So that's the catch
But, for the sake of a significantly more simple macro to code, I think it's a fairly small risk
I'm thinking I may give just setting the chamber temp a go as it looks like this is built into RatOS by default
https://os.ratrig.com/docs/configuration/chamber_heater/
Simply adding a chamber thermistor and then it will use the bed itself to heat the chamber. That way if the chamber is at X degrees and the bed is atx, then we assume its heat soaked enough to start printing. Then I can enable chamber heating for the materials that need it such as ASA & abs where PLA does not needed it as I can start a print from cold for that without issues.
Going back to the original issue, the bed will say its heated up in about 2 minutes, but it hasnt heat soaked all the way through and there is no way to measure its true temp unless I added a thermistor ontop of it. But if we take the chamber temp, that takes a while to creep up, then that should work nicely if my theory is correct
which would take into account manual heating and heating using the slicer
Yep, chamber temp is useful data, definitely worth having a chamber thermistor