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

Below 4°

Scheduled Pinned Locked Moved
General Discussion
4
19
759
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.
  • undefined
    deckingman @falco22
    last edited by 20 Dec 2021, 20:46

    @falco22 I think you could do it with conditional gcode - it certainly works for heating so I don't see any reason why it wouldn't work for cooling.

    Something like this should work after you set the demand temperature

    while sensors.analog[1].lastReading > 4
    M291 P"Waiting for dispenser to cool" S1 T4
    echo "Dispenser temp", sensors.analog[1].lastReading
    G4 S4

    Ian
    https://somei3deas.wordpress.com/
    https://www.youtube.com/@deckingman

    undefined 2 Replies Last reply 21 Dec 2021, 18:01 Reply Quote 2
    • undefined
      dc42 administrators @falco22
      last edited by 20 Dec 2021, 21:12

      @falco22 I see the I1 parameter now, on heater 1 (I was looking at heater 0).

      A solution may be for RRF to change its behaviour when the I1 parameter is given. Normally, RRF assumes that temperatures below 40C are not of interest, and ambient temperature may be as high as 40C, so do not wait for cooling below 40C. With the I1 parameter, RRF could assume that temperatures above e.g. 10C are not pf interest, so do not wait for the temperature to become greater than 10C after the cooler is turned off. Would this be sufficient? Is 10C a suitable value, or should it be lower e.g. 5C or 0C ?

      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
      • undefined
        falco22
        last edited by 21 Dec 2021, 17:33

        Well, the ideal would be between 0 and 4 degrees.

        undefined 1 Reply Last reply 21 Dec 2021, 17:46 Reply Quote 0
        • undefined
          dc42 administrators @falco22
          last edited by 21 Dec 2021, 17:46

          @falco22 ideal for you perhaps! We need to look for a solution that works for other users with cooling devices too.

          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

          undefined 1 Reply Last reply 21 Dec 2021, 17:54 Reply Quote 0
          • undefined
            falco22 @dc42
            last edited by 21 Dec 2021, 17:54

            @dc42 Of course it is ideal for me. But I have seen that many people are developing bioprinting solutions, and to work with certain cells the minimum recommended temperature is 4 degrees.

            1 Reply Last reply Reply Quote 0
            • undefined
              falco22 @deckingman
              last edited by 21 Dec 2021, 18:01

              @deckingman said in Below 4°:

              conditional gcode
              Can you explain a little more? how to apply it and where? thank you very much.

              1 Reply Last reply Reply Quote 0
              • undefined
                falco22 @deckingman
                last edited by 21 Dec 2021, 18:08

                @deckingman Forget it, it worked perfect!

                undefined 1 Reply Last reply 21 Dec 2021, 19:40 Reply Quote 0
                • undefined
                  deckingman @falco22
                  last edited by 21 Dec 2021, 19:40

                  @falco22 said in Below 4°:

                  @deckingman Forget it, it worked perfect!

                  I'm pleased that it did - I thought it might. I use that while loop myself instead of M116 although I can't take any credit, as it was someone else on these forums who advised me how to do it.

                  In my case, I wanted a solution which would check if the hot end was at or above a threshold temperature. The problem with M116 is that if the hot end is already above that threshold, then it will wait for it to cool until it reaches the set point, which is not what I wanted to happen. Using a "while loop" gives much more flexibility IMO.

                  Ian
                  https://somei3deas.wordpress.com/
                  https://www.youtube.com/@deckingman

                  undefined 1 Reply Last reply 24 Dec 2021, 11:02 Reply Quote 1
                  • undefined
                    falco22 @deckingman
                    last edited by 24 Dec 2021, 11:02

                    @deckingman I find a problem with that solution. It only works for 4 degrees. Is there any way to formulate the equation to fit any temperature between room temperature and 0C? Thank you.

                    undefined 1 Reply Last reply 24 Dec 2021, 15:21 Reply Quote 0
                    • undefined
                      deckingman @falco22
                      last edited by 24 Dec 2021, 15:21

                      @falco22 said in Below 4°:

                      @deckingman I find a problem with that solution. It only works for 4 degrees. Is there any way to formulate the equation to fit any temperature between room temperature and 0C? Thank you.

                      I'm not an expert on conditional gcode so someone else might have a better answer. But do you mean if the temperature is within a range from (say) 20 to 0? In which case you could use something like

                      while {sensors.analog[1].lastReading >0} & {sensors.analog[1].lastReading <20}

                      or do you mean a fixed temperature but one that you can define? In which case you could use a global variable that you define elsewhere - e.g. in a separate macro or config.g.

                      so something like

                      global dispenserTemp = nn (where "nn" is the temperature value)

                      then the expression would become something like

                      while sensors.analog[1].lastReading > {global.dispenserTemp}.

                      But as I said, I'm not expert and may have got something wrong. Suggest you check out the documentation https://duet3d.dozuki.com/Wiki/GCode_Meta_Commands#main

                      Ian
                      https://somei3deas.wordpress.com/
                      https://www.youtube.com/@deckingman

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