Setting up 'guard thermistors'
-
Probably this has been beaten to death, but all I can find is posts about setting up virtual heaters and displaying the temperature of them.
I would like to setup a couple of 'guard thermistors' using the extra thermistor inputs on the expansion header of my Duet2 Wifi. One extra on the bed, one on the (liquid cooled) coldend. I want to shutdown the printing when one of those guard thermistors reports an unusual temperature.
I am currently using the latest RRF2 firmware, but if this is easier to do with RRF3 I would not mind moving to that.
-
Given that you already have a thermistor on the hotend and the bed, adding another isn't going to provide much more safety. the firmware will model the heater and throw an error if its heating or cooling outside of the expected range, as such you'll still be reliant on the firmware doing its job.
For adittional safety I'd rather suggest thermal fuses or bi-metal switches to physically interrupt the circuit if they exceed the set value. Search the forums for TCO and/or thermal fuse to see more on the topic.
Back to the topic at hand; RRF2 can only respond to digital i/o atm, there is comming support for conditional g-code in RRF3 so it'll likely be able to achieve what you want. There is a thread on that, you may want to follow that for details and timelines: https://forum.duet3d.com/topic/13516/conditional-gcode-and-object-model-variables/21As added by DC42 below: https://duet3d.dozuki.com/Wiki/Gcode#Section_M143_Maximum_heater_temperature
-
An extra thermistor for the bed is dubious, but I am moving to a thermistor embedded in the aluminium instead of the one embedded in the silicone heater mat; at higher bed temperatures I have too much deviation in temperature between surface and what the mat sensor reports, and it takes ages for the temperatures at the bottom of the heatbed and top of the heatbed to equalize sufficiently. I might as well use the one in the mat to provide an upper bound on temperature; it is already there. Of course I can put the thermistors in series or in parallel to sort of average the temperature, but I don't think that is a very good solution.
The coldend is different; if water flow ever stops things turn into a very hard to clean mess. I could use a thermal switch, but I find the lower-temperature ones I tried before highly inaccurate, and they are usually physically much larger than a thermistor also.
-
@DaBit said in Setting up 'guard thermistors':
if water flow ever stops things turn into a very hard to clean mess.
then a flow sensor could make more sense imo; might* be able to tie it into the filament sensor stuff without much more effort than that.
*) i.e. i have no idea if it'll work
-
You can do this by setting up extra heater protection elements using M143.
-
Nice, M143 seems to be what I am looking for.
Will this work?
M305 S"Coldend" P103 X3 T100000 B4725 ; setup virtual heater using THERMISTOR3 at the coldend? M143 H1 P103 S40 M143 H1 S285 ; Two protection instances allowed? M143 H2 P103 S40 ; Allowed to use the same virtual heater in two protection instances? M143 H2 S285
Regarding a flow sensor: that provides indirect protection only. Having flow says nothing about the cold end becoming too hot.
When I start to split the flow in parallel (I am considering milling a small waterblock to keep the Duet stepper drives cool, for example) it might happen that one of the 4mm hoses to the coldend gets pinched while the sensor still senses flow. -
@DaBit said in Setting up 'guard thermistors':
Nice, M143 seems to be what I am looking for.
Will this work?
M305 S"Coldend" P103 X3 T100000 B4725 ; setup virtual heater using THERMISTOR3 at the coldend? M143 H1 P103 S40 M143 H1 S285 ; Two protection instances allowed? M143 H2 P103 S40 ; Allowed to use the same virtual heater in two protection instances? M143 H2 S285
Regarding a flow sensor: that provides indirect protection only. Having flow says nothing about the cold end becoming too hot.
When I start to split the flow in parallel (I am considering milling a small waterblock to keep the Duet stepper drives cool, for example) it might happen that one of the 4mm hoses to the coldend gets pinched while the sensor still senses flow.That looks OK to me for RRF3. Please test it before relying on it, because testing heater protection instances in RRF3 is still on my todo list.
You should be able to use the same sensor to protect two heaters, although that seems to me an unusual thing to do. The term "virtual heater" no longer applies in RRF3 because it treats sensors and heaters separately; whereas in RRF2 a sensor could only be tied to a heater, so you needed a "virtual heater" if you wanted to use a sensor that wasn't associated with a particular heater.
-
OK, so with RRF 2.05 (what I currently run) it won't work? Then I will read a bit on the migration and try RRF3. Need to get some 4k7 resistors to be able to use the thermistor inputs on the expansion header anyway.
In my case it is not unusual to use a single protection instance for two heaters since I am using an E3D Chimera where two nozzles and two heatbreaks share the same cooling block. Thus, in case the cooling stops both E0 and E1 may cause an overtemperature fault at the cooling block.
-
@DaBit said in Setting up 'guard thermistors':
OK, so with RRF 2.05 (what I currently run) it won't work?
you should be fine (the config would differ though) https://duet3d.dozuki.com/Wiki/Gcode#Section_M143_Maximum_heater_temperature
-
What would be different for RRF2 then? Can you post a few lines of example code maybe?
One more question: can the protection instances control the PS_ON pin on the Duet 2 Wifi? I might want to put a mechanical relay (with flyback diode of course) controlled by the PS_ON pin in the 230VAC path which is switched off when severe overtemperature faults occur. MOSFET's fail shorted, SSR's do so too.