Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Water-Cooling | Using PWM Tac on Flow Sensor to Trigger E-Stop

    Scheduled Pinned Locked Moved
    Duet Hardware and wiring
    4
    11
    708
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Jordan_Miller41undefined
      Jordan_Miller41
      last edited by

      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.

      • Jordan
      1 Reply Last reply Reply Quote 1
      • Phaedruxundefined
        Phaedrux Moderator
        last edited by

        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.

        Z-Bot CoreXY Build | Thingiverse Profile

        Jordan_Miller41undefined 1 Reply Last reply Reply Quote 0
        • piperswundefined
          pipersw
          last edited by pipersw

          ok, how do for read tacho in gcode ?

          1 Reply Last reply Reply Quote 0
          • Phaedruxundefined
            Phaedrux Moderator
            last edited by

            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.

            Z-Bot CoreXY Build | Thingiverse Profile

            1 Reply Last reply Reply Quote 0
            • Jordan_Miller41undefined
              Jordan_Miller41 @Phaedrux
              last edited by

              @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.

              • Jordan
              OwenDundefined 1 Reply Last reply Reply Quote 0
              • Phaedruxundefined
                Phaedrux Moderator
                last edited by

                In short, yes.

                See here: https://duet3d.dozuki.com/Wiki/Macros#Section_daemon_g
                https://duet3d.dozuki.com/Wiki/GCode_Meta_Commands

                Z-Bot CoreXY Build | Thingiverse Profile

                1 Reply Last reply Reply Quote 0
                • OwenDundefined
                  OwenD @Jordan_Miller41
                  last edited by OwenD

                  @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
                  
                  Jordan_Miller41undefined 1 Reply Last reply Reply Quote 1
                  • piperswundefined
                    pipersw
                    last edited by

                    Thanks !!

                    1 Reply Last reply Reply Quote 0
                    • Jordan_Miller41undefined
                      Jordan_Miller41 @OwenD
                      last edited by

                      @OwenD thank you so much! I will be implementing this in my build, I appreciate it!

                      • Jordan
                      OwenDundefined 1 Reply Last reply Reply Quote 0
                      • OwenDundefined
                        OwenD @Jordan_Miller41
                        last edited by

                        @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.

                        Jordan_Miller41undefined 1 Reply Last reply Reply Quote 0
                        • Jordan_Miller41undefined
                          Jordan_Miller41 @OwenD
                          last edited by

                          @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.

                          • Jordan
                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post
                          Unless otherwise noted, all forum content is licensed under CC-BY-SA