Water-Cooling | Using PWM Tac on Flow Sensor to Trigger E-Stop
-
Hello all,
Been working on my Senior Project of Water-cooling a Tool-changing 3D printer with the goal of printing HT Plastics (PEEK, PEKK, Etc.). I am using the HevORT as the "printer" and using E3D's hardware for the tool-changing operations.
I am looking for redundancy here, I want a "failsafe" for my water loop should my pump stop working. I found this "flow indicator" and from what I see, it uses a 3 pin connection, and typically plugs into a fan header on a motherboard, this makes sense to me.
Check it out HERE
My question is, how would I trigger an "E-Stop", or "Kill heat" command with this Flow meter's Tach reading "zero", which would indicate a stoppage of flow.
Let me know if you have any ideas.
Thanks in advance.
-
It looks like it has a tach signal? In that case it could be monitored like a fan.
https://duet3d.dozuki.com/Wiki/Connecting_and_configuring_fans#Section_Connecting_3_or_4_wire_fans
Then once you have the tach reading you could use daemon.g in RRF3 and conditional gcode to monitor the RPM and pause if it drops.
-
ok, how do for read tacho in gcode ?
-
check the object model once you have the fan configured.
https://duet3d.dozuki.com/Wiki/Object_Model_of_RepRapFirmware
the object model browser plugin in 3.2 might be the easiest way to find the value.
-
@Phaedrux from what I've researched yes, appears to be a tach signal, like PWM fans. So, reprap newb question, is there anyway to run a macro command from this conditional? Or could it sequentially run pause.g and then cancel.g? Just thinking out loud.
-
In short, yes.
See here: https://duet3d.dozuki.com/Wiki/Macros#Section_daemon_g
https://duet3d.dozuki.com/Wiki/GCode_Meta_Commands -
@Jordan_Miller41
Yes, you can react in whatever fashion you choose.
You should have the flow sensor in the return line just before the radiator.
Something like this in daemon.g should work. (You'll need to adjust levels to suit your sensor and flow rate. Mine runs at about 3500rpm)
Likewise you'll need to adjust the fan ID to suit your configuration.;Check if water pump is running correctly if (heat.heaters[1].current > 55) ; only react if extruder temp is over 55 degrees C (or whtever you have it configured to start/stop at) if fans[1].rpm <= 1000 ; Coolant pump RPM off or low echo "Water pump fault - shutting down - RPM : " ^ fans[1].rpm M112; emergency shutdown M81 S1 ; turn off power when fans have turned off elif (fans[1].rpm > 1000) && (fans[1].rpm < 3000) echo "WARNING: Water pump RPM low - RPM : " ^ fans[1].rpm if (state.status=="processing") ; check if we're printing M25 ; pause print so you might be able to save it using M119 ;M41 P5 S1 ; activate output connected to externally powered latching relay here to sound alarm M0 ; unconditional stop. If axes are homed and a print is being canceled will run cancel.g otherwise will run stop.g M81 S1 ; turn off power when fans have turned off else ;echo "Coolant OK - RPM : " ^ fans[1].rpm
-
Thanks !!
-
@OwenD thank you so much! I will be implementing this in my build, I appreciate it!
-
@Jordan_Miller41 you may want a day of a few seconds at the start of daemon.g
Something like G4 S2
Otherwise there's a possibility that if you do a restart when the nozzle is hot, it may initiate a shutdown before the fan/impeller is up to speed. -
@OwenD good thing to think about, I will be attempting to integrate this logic here in the next few weeks when the parts all roll in.