Adding a flow switch to a water cooled hot end
-
I am running a dyze designs water cooled hot end and I decided to buy a flow switch so I could code the printer to if for some reason the pump fails. I have the water cooled system done entirely independent so if something there fails, the duet would unsuspectingly run the printer to destruction I assume. Possible destroyed printer, potential house fire.. Not my thing so for piece of mind, I got a flow switch.
Repinned the connector when it showed up and it plugged right into the duet board. Awesome. I am noticing that it might be just barely too big for my pump though because im getting major switch bounce. It seems like im picking up the pulses from the pump.
I tried wiring in a small capacitor in an effort to "charge and maintain" the signal but it didn't quite seem to work like I figured. Turns out my switch isn't really a on off switch as I thought. The switch produces a alternating current and I guess the board is supposed to interpret the pulses as flow? Is this something I can use for this application? -
@Dradle
You can check with daemon.g if the signal is still alternating.
Daemon.g is run every 10sec. That should be fast enough for a watercooled system. -
@Dradle
You don't give details of exactly what you're using
If it's a switch the it would normally just stay open when the flow is over the trigger value. This type normally has an adjustment screw to set the trigger point.
These are normally a rectangular block.If it's a flow sensor with a paddle wheel (more common) then it will give a PWM signal, which would appear as a square wave. This type is typically round in the middle.
On my duet 2 the setup is as follows;water pump M950 F1 C"!fan1+^exp.e4stop" Q25000 ; create fan 1 (water pump) output on inverted pin fan1 and set its frequency. Set RPM/PWM to pb6 with pullup enabled M106 P1 C"Water Pump" H1 L0.5 X1 B1.2 T50:60 ; set fan 1 name and value. Thermostatic control is turned on. Monitoring hotend sensor
I then monitor the pump in daemon.g with sing the object model
-
@OwenD it's not a on off switch that I described first. It is the square wave pulse type. When im adding code like this to the config.g is there a certain place it belongs?
I've only been changing existing code to fit my needs I haven't really successfully added my own code yet.
I didn't run my pump from from my duet because my input voltage is 24v to duet and my fan and water pump were 12v so it's wired live all the time to a 12v converter.
I really want the flow sensor to pause the program if theres no pulse signal and shut down my hot end in the event of lost coolant and/or pump failure. -
Shooting around here
With what im trying to achieve described
M950 J1 C"^e0stop"; that would from my understanding turn my e0stop to a general purpose input pin using a pull up resistor which from a quick google search which creates a signal from the lack of input signal. Am I on the right track with that? -
@Dradle
My system is also 24v
I have a separate 12v power supply which runs the pump and some other 12v gear.
The pump I use is similar to this
It has a PWM output on both the pump and cooling fan.
In my setup I am using a fan output to control a the pump (which to the duet is just a thermostatically controlled fan). The setup to do so using 12v on a 24v system is here
I have fitted an inline temperature sensor to the hoses and control the radiator fan the same way as a thermo fan because it's not needed all the time and adds noise.
And finally I am about to add flow switch on the return line near the radiator to ensure that if a hose comes off, I can shut off the pump.
Because I have set up both the water pump and radiator fan as fans, I can monitor them in DWC
and using the object model
So to answer your question on the setup
In my
M950 F1 C"!fan1+^exp.e4stop" Q25000
I am using fan1 to turn on/off the pump and exp.e4stop to monitor the RPM of the pump impeller
If you're not controlling the pump from the Duet, omit the fan1
So you were close, but the input doesn't create a signal from lack of input. It just reports RPM (signal frequency).
It's up to you to interpret and take action based on that.
If you want a simple yes/no is it working? then use a switch, not a a flow sensor.
You could then set up a trigger macro and not worry about daemon.gIn my daemon.g I monitor the pump RPM using the object model and shut down if
- The pump RPM is low and the hotend > 45C
- The radiator fan RPM is < limit
- The pump is on, but the flow return switch isn't active