M116 and temperature overshoots...
-
So you would like the M116 S parameter to accept min_temp:max_temp, using the : as the delimiter as do many parameters already?
Sounds like a good idea.
How about posting it in the Firmware Wishlist category?
In the meantime you could use the loop and test for two temps rather than one.
Frederick
-
@edsped That's easy enough to do too. Say for example your set temperature is 230. Then in your while loop you check if the temperature is at or above 228. You could then have second while loop to check if it's below 235. That'll give you the -2 +5 tollerance.
For info, something else I do is in my pre-print macro, I start by setting the bed to the desired temperature then use a while loop to wait for it to get to the set temperature minus 5 degrees, at which point I start heating the hot end and homing the printer. The net result is that all the homing gets done while the bed is heating and the hot end reaches its set point at more or less exactly the same time as the bed. Neither too long before, nor too long after and everything happens in the shortest possible time (which is how long it takes to heat the bed).
-
@fcwilt That would help, something like a M116 Px S2:4 Or something to override the the default +/-2 that seems to kick in once M116 has been satisfied or make M116 Sx persistent.
-
@deckingman That works well enough for the initial tool but not sure if it would be good for tool changes during the print.
-
@edsped said in M116 and temperature overshoots...:
@deckingman That works well enough for the initial tool but not sure if it would be good for tool changes during the print.
You could use global variables for the min/max temps and change them in the tool change code
In config.g you could put this to create the global variables:
global min_temp = 0 global max_temp = 0
In the tool change code you would have something like this:
set global.min_temp = 195 set global.max_temp = 205
And in the while loop:
while true var reading = sensors.analog[state.currentTool].lastReading if var.reading >= global.min_temp && var.reading <= global.max_temp break
The above assumes the tool temp sensors are numbered 0 to 3 and match up with the tool numbers 0 to 3
Frederick
-
@fcwilt Is there some way to pass the print temps from PS? I'm hoping to not have to tweak every time I change filaments.
-
@edsped said in M116 and temperature overshoots...:
@fcwilt Is there some way to pass the print temps from PS? I'm hoping to not have to tweak every time I change filaments.
What is PS?
I use the Filament Management feature of the DWC to take care of changing temps to match the current filament.
Are you familiar with that feature?
By creating different filament entries you can have whatever temps you want just by selecting the desired filament for the desired tool in the DWC Desktop.
Frederick
-
@fcwilt Sorry PrusaSlicer... I abandoned the filament profiles when I couldn't use the same profile for multiple tools simultaneously. Four profiles for the same filament became unruly.
-
@edsped said in M116 and temperature overshoots...:
I abandoned the filament profiles when I couldn't use the same profile for multiple tools simultaneously. Four profiles for the same filament became unruly.
It must depend on how it is done. I have an E3D MS/TC printer and using the same filament for all four tools is not a problem.
Frederick
-
@edsped said in M116 and temperature overshoots...:
@deckingman That works well enough for the initial tool but not sure if it would be good for tool changes during the print.
You can read the active temperature for a tool using the object model e.g in your tool change macro use tools[n].active[0] and use that instead of a fixed value.