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

    Connect a water flow sensor --> will M591 P7 work in Laser mode?

    Scheduled Pinned Locked Moved Solved
    Laser Cutters
    4
    50
    2.2k
    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.
    • paulg4hundefined
      paulg4h
      last edited by

      @dc42
      Many thanks, now I get the rpm from the sensor, but maybe you are so kind to tell me how to read the value in daemon.g and check if it is below a threshold and pause the machine in that case.

      http://192.168.199.203/rr_model?key=fans
      returns:
      {"key":"fans","flags":"","result":[{"actualValue":0,"blip":0.10,"max":1.00,"min":0.10,"name":"","requestedValue":0,"rpm":203,"thermostatic":{"heaters":[]}}],"next":0}

      cosmowaveundefined 1 Reply Last reply Reply Quote 0
      • cosmowaveundefined
        cosmowave @paulg4h
        last edited by

        @paulg4h
        you should have a look to the object model for correct naming... i'm not at the machine...
        But it will be something like this:

        if fans[n].rpm < xxx
            M25
        

        Mankati FSXT+, DeltaTowerV2, E3D MS/TC

        paulg4hundefined 1 Reply Last reply Reply Quote 0
        • paulg4hundefined
          paulg4h @cosmowave
          last edited by paulg4h

          @cosmowave
          this is now my daemon.g content

          if job.duration = null
              ; No job ignore sensor reading
          else
              ; Check Water Flow
              if fans[0].rpm < 100
                  G4 P10
                  if fans[0].rpm < 100
                      G4 P10
                      if fans[0].rpm < 100
                          M25
                          M118 S"No Water flow!" 
              ; Check water temperature
              if sensors.analog[0].lastReading > 35
                  G4 P10
                  if sensors.analog[0].lastReading > 35
                      G4 P10
                      if sensors.analog[0].lastReading > 35
                          M25
                          M118 S"Water to hot!"
          
          paulg4hundefined 1 Reply Last reply Reply Quote 0
          • paulg4hundefined
            paulg4h @paulg4h
            last edited by

            @dc42 @cosmowave

            Now even with three times reading the rpm and the delay the job pauses with the message no water flow.

            How can I prevent this?

            cosmowaveundefined 1 Reply Last reply Reply Quote 0
            • cosmowaveundefined
              cosmowave @paulg4h
              last edited by

              @paulg4h
              First: check if your rpm is > 100

              Mankati FSXT+, DeltaTowerV2, E3D MS/TC

              1 Reply Last reply Reply Quote 0
              • paulg4hundefined
                paulg4h
                last edited by

                @cosmowave this works now, many thanks!

                paulg4hundefined 1 Reply Last reply Reply Quote 0
                • paulg4hundefined
                  paulg4h @paulg4h
                  last edited by paulg4h

                  For everyone now the water flow sensor and even the water temperature monitored by RRF worked and pause the job when the water flow is to low or the water temperature is to high.

                  I use the YF-S201 as Flow Meter connected to the SKR 1.4T Board on the BLTouch Connector (servo and probe) pins. The thermistor is connected to the bed thermistor input also.

                  then I add in config.g

                  ; Tools --> Laser Water Flow
                  M950 F0 C"!fan0+^probe"                          ; Fan 0 uses the Fan0 output, but we are using a PWM fan so the output needs to be inverted, also we are using probe as a tacho input with pullup resistor enabled
                  
                  ; Tools --> Laser Water Temperature
                  M308 S0 P"bedtemp" Y"thermistor" T100000 B4092 ; configure sensor 0 as thermistor on pin bedtemp
                  

                  then add the daemon.g file with this content too:

                  if job.duration = null
                      ; No job ignore sensor reading
                  else
                      ; Check Water Flow
                      if fans[0].rpm < 100
                          G4 P10
                          if fans[0].rpm < 100
                              G4 P10
                              if fans[0].rpm < 100
                                  G4 P10
                                  if fans[0].rpm < 100
                                      M25                            ; pause job
                                      M118 S"No Water flow!"         ; write msg
                      ; Check water temperature
                      if sensors.analog[0].lastReading > 35
                          G4 P10
                          if sensors.analog[0].lastReading > 35
                              G4 P10
                              if sensors.analog[0].lastReading > 35
                                  M25                                 ; pause job
                                  M118 S"Water to hot!"               ; write msg
                  

                  Many thank's for all your help!

                  o_lampeundefined 1 Reply Last reply Reply Quote 0
                  • o_lampeundefined
                    o_lampe @paulg4h
                    last edited by

                    @paulg4h
                    Thanks for sharing!
                    I'm just wondering, if there's a different way to code this (G4 P10)?
                    Eg. using a counter variable or iteration?
                    You can keep it like that, but if there's more code in daemon.g (for Lid control?) you don't want daemon.g to stick in a if-iteration with lots of G4.

                    paulg4hundefined 1 Reply Last reply Reply Quote 1
                    • paulg4hundefined
                      paulg4h @o_lampe
                      last edited by

                      @o_lampe You are right, this is not perfect, maybe I found a better way without G4 P10 but for the lid control this doesn't matter because this is handled by triggers and works without G4

                      o_lampeundefined 1 Reply Last reply Reply Quote 0
                      • o_lampeundefined
                        o_lampe @paulg4h
                        last edited by

                        @paulg4h
                        I'm sure you know it already, just wanted to mention that daemon.g runs only every 10 seconds. So you already have a G4 P10 'incorporated'.
                        Just have to count, how many times in a row your sensors were outside of the zone.

                        dc42undefined 1 Reply Last reply Reply Quote 0
                        • dc42undefined
                          dc42 administrators @o_lampe
                          last edited by dc42

                          @o_lampe said in Connect a water flow sensor --> will M591 P7 work in Laser mode?:

                          @paulg4h
                          I'm sure you know it already, just wanted to mention that daemon.g runs only every 10 seconds. So you already have a G4 P10 'incorporated'.
                          Just have to count, how many times in a row your sensors were outside of the zone.

                          G4 P10 waits for 10 milliseconds. G4 S10 would wait for 10 seconds.

                          To reduce the number of accesses to the SD card, it's best to use an explicit loop in daemon.g like this:

                          while true
                            G4 S2
                            ... rest of code ...
                          

                          This saves RRF from having to keep re-opening the file. You can change S2 to however many seconds you want to wait between tests.

                          Duet WiFi hardware designer and firmware engineer
                          Please do not ask me for Duet support via PM or email, use the forum
                          http://www.escher3d.com, https://miscsolutions.wordpress.com

                          1 Reply Last reply Reply Quote 0
                          • paulg4hundefined
                            paulg4h
                            last edited by

                            @dc42 thanks for the input.

                            After changing of the daemon.g I am not able to update the file by DWC because it is now opened forever.

                            How can I update the daemon.g beside change the file on SD card now?

                            dc42undefined 1 Reply Last reply Reply Quote 0
                            • dc42undefined
                              dc42 administrators @paulg4h
                              last edited by dc42

                              @paulg4h said in Connect a water flow sensor --> will M591 P7 work in Laser mode?:

                              @dc42 thanks for the input.

                              After changing of the daemon.g I am not able to update the file by DWC because it is now opened forever.

                              How can I update the daemon.g beside change the file on SD card now?

                              Rename the daemon.g file from DWC, then reset.

                              Duet WiFi hardware designer and firmware engineer
                              Please do not ask me for Duet support via PM or email, use the forum
                              http://www.escher3d.com, https://miscsolutions.wordpress.com

                              paulg4hundefined 1 Reply Last reply Reply Quote 0
                              • paulg4hundefined
                                paulg4h @dc42
                                last edited by

                                @dc42 Thank's again!

                                How could I use the rpm more reliable to detect water flow, even in DWC the Sensors Fan RPM are shown and jumps between 0 and something between 190 and 210 all the time.

                                What is the best in sort of functionality and use as low as possible resources in RRF?

                                paulg4hundefined dc42undefined 2 Replies Last reply Reply Quote 0
                                • paulg4hundefined
                                  paulg4h @paulg4h
                                  last edited by

                                  Is there anybody who can show the best way to monitor such an sensor where the reading is not reliable on RRF 3.3?

                                  Many thanks!

                                  cosmowaveundefined 1 Reply Last reply Reply Quote 0
                                  • cosmowaveundefined
                                    cosmowave @paulg4h
                                    last edited by

                                    @paulg4h I think, it is a signal problem. Do you have an oscilloscope for checking the signal?

                                    Mankati FSXT+, DeltaTowerV2, E3D MS/TC

                                    paulg4hundefined 1 Reply Last reply Reply Quote 0
                                    • paulg4hundefined
                                      paulg4h @cosmowave
                                      last edited by

                                      @cosmowave For me it looks like that RRF is not able to count the signal (rpm) because the DWC which pools the values every second shows as example 207 - 0 - 196 - 0 - 201 - 0 -198 - 0 so every two seconds I get zero.

                                      How to use a variable to calculate a avg value to get a relieable value I can use to decide that the water flow is still there?

                                      cosmowaveundefined 1 Reply Last reply Reply Quote 0
                                      • cosmowaveundefined
                                        cosmowave @paulg4h
                                        last edited by

                                        @paulg4h Eventually you can make a sum of e.g. 10 measurements of the value and take the average of these measurements. When the average is below a value (e.g. 20) then you have no flow.

                                        It will be a littel slower, but i think, that is no problem...

                                        Mankati FSXT+, DeltaTowerV2, E3D MS/TC

                                        paulg4hundefined 1 Reply Last reply Reply Quote 0
                                        • paulg4hundefined
                                          paulg4h @cosmowave
                                          last edited by paulg4h

                                          @cosmowave so create 10 position variables and one counter and avg or is there a type of list /array available too?
                                          How to create such a script that it uses as less ressources of the system as posible?

                                          There is an variable type of array but I have no clue how to assign a value or sum the values to get an AVG with the informations provided there.

                                          cosmowaveundefined 1 Reply Last reply Reply Quote 0
                                          • cosmowaveundefined
                                            cosmowave @paulg4h
                                            last edited by cosmowave

                                            @paulg4h or something like this in daemon.g

                                             var.counter
                                             var.sum
                                            
                                            if var.zähler < 10
                                            	set var.sum = {var.sum + "newValue"}
                                            	set var.counter = var.counter + 1
                                            
                                            else 
                                            	if {var.sum / var.counter} < 20
                                            		NO FLOW
                                            

                                            Mankati FSXT+, DeltaTowerV2, E3D MS/TC

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