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

    gradually decrease bed temp after printing ends

    Scheduled Pinned Locked Moved
    Gcode meta commands
    4
    6
    842
    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.
    • gefidalgoundefined
      gefidalgo
      last edited by

      I wonder if someone has a solution to gradually decrease heated bed temperature over a given lapse of time without creating a new ending script for each material and taking into account maybe the ambient temp when the print started as target temp.

      Some background on the problem. I am running a large Custom printer (500 X 500 X 500) with a 220V AC heated bed on a SSR and a mirror laid over a 6mm aluminum bed as a printer surface to grant a complete even and level surface. printed parts stick impresively well, but due to the large format of the bed (and so the mirror) the heat expansion and cold temperature outside the enclosed chamber, my mirror has cracked twice this winter. (this used not to happen on summer with 30 C° ambient temp, but now at 0 C° at night, the cool down happens too fast and the part puts so much stress on the mirror that it cracks as it seems to cool faster than the plastic does. for reference, to avoid issues when I start a new big print, i set the bed temp to 75° and wait 30 minutes till I expect no further expansion of the bed and the chamber has also absorved some of the heat)

      I can edit the ending script on simplify reducing the temp on steps (reduce 5 degrees, wait till temperature is reached, wait 5 minutes and repeat) but i think there should be a better way to reduce temp on a more linear way (maybe running a custom macro on end using Programming constructs. also, I should consider the season to set the final temp I want to reach, becuase for summer there is actually no way to command the printer to "heat" to 0 degrees as the ambiente temperature is higher.

      my overall idea is so declare a variable when the printer starts with the ambient temp and last bed temp (to account for diffent material settings) , and then create a loop command reducing the temp by 1 degree from the "last target temp" each minute until the saved initial temp is reached (this is due to the lack of an existing gcode command to support relative temp changes). should this work? Is it actually feasible or there is any other recomendation?

      this should also help people experiencing part warping on extreme harsh environments apart from saving some mirrors.

      oliofundefined fcwiltundefined deckingmanundefined 3 Replies Last reply Reply Quote 0
      • oliofundefined
        oliof @gefidalgo
        last edited by

        @gefidalgo recording ambient temperature in start.g keying off a cold bed:

        [...]   ; other start.g commands
        ; create ambient temperature global if it does not exist from 
        ; previous runs; set to current bed temperature
        if !exists(global.ambient)
          global ambient = heat.heaters[0].current
        else
          set global.ambient = heat.heaters[0].current
        M190 S75 ; this temperature may be filament specific
        G4 S1800 ; wait 30 minutes for bed to stabilize and preheat chamber
        [...]   ; other start.g commands
        

        reducing temperature i stop.g stepwise:

        [...]  ; other stop.g commands
        while heat.heater[0].current > global.ambient
          M116 H0 S{heat.heater[0].current-5}  ; reduce bed temp by 5C
          G4 S300                              ; pause 5 min
        M116 H0 S-273.1                        ; finally turn off bed
        [....] ; other stop.g commands
        

        Please note this bit from the documentation Note: M116 will not wait for temperatures below 40c because in many cases they may never be reached due to ambient temps. So if you want to wait for a bed to cool, use 41c or higher.. There is a change in RRF 3.5 pertaining to peltier coolers that may render this comment obsolete in the future.

        Also, you will need to add M0 at the end of your gcode to trigger stop.g

        <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

        gefidalgoundefined 1 Reply Last reply Reply Quote 1
        • fcwiltundefined
          fcwilt @gefidalgo
          last edited by

          @gefidalgo

          I use daemon.g to control heaters after printing is finished.

          I have global variables that contain the needed values.

          The daemon runs every 10 seconds so you can control the timing of the cooldown by how often the code in the daemon file makes a change.

          Frederick

          Printers: a E3D MS/TC setup and a RatRig Hybrid. Using Duet 3 hardware running 3.4.6

          1 Reply Last reply Reply Quote 0
          • deckingmanundefined
            deckingman @gefidalgo
            last edited by

            @gefidalgo I always favour fixing the root cause wherever possible, but I appreciate that having already built the machine, you might not want to go down this route. But I'll put it out there anyway.

            I too use a large aluminium plate with removable glass surface and never had the problems that you have experienced. Admittedly it's somewhat smaller in X and Y than yours being 400mm x 400mm but it's twice as thick at 12mm. So I have a slightly higher volume of material but more importantly, the ratio between surface area and thickness for my bed is 3 times higher than yours. Also, my bed has 12mm of semi-rigid insulation on the underside which speed up the warm up time slightly but significantly lengthens the cool down time. So a thicker aluminium plate with insulation might help.

            The other thing which might help is simply changing the mirror for float glass. You haven't said what thickness the mirror is but I use 6mm float glass and have never had any problems in the 6+ years that I've been using it. Even if I take it out of the chamber and let it cool fairly rapidly in ambient air which might be 60 degrees cooler than the plate. In fact, that's the main reason I use a removable glass build surface - so that I can swap plates and start printing again with the minimum delay. If you do try this, don't make the mistake of getting the glass toughened - that toughening process will distort it (as I found out).

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

            gefidalgoundefined 1 Reply Last reply Reply Quote 2
            • Phaedruxundefined Phaedrux moved this topic from General Discussion
            • gefidalgoundefined
              gefidalgo @oliof
              last edited by

              @oliof thanks a lot, I have tested and works perfect for my use case.

              1 Reply Last reply Reply Quote 0
              • gefidalgoundefined
                gefidalgo @deckingman
                last edited by

                @deckingman thanks for your time and dedication on the repply. I am planning to add some cork sheets on the underside and probably a heater for the chamber in the future for more complex materials. my mirror bed was 4mm as it was only supposed to "flatten" the bed (I was unable to find a good aluminium tooling plate on my country, ended up using a regular aluminim plate) and was actually reused from my home. this printer is only for large projects so I dont mind giving a full hour of cooling down after a 3 or 5 days print. for smaller projects I use a 200X200 printer.

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