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

    Volumetric temp change

    Scheduled Pinned Locked Moved
    General Discussion
    5
    11
    537
    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.
    • dc42undefined
      dc42 administrators @yoshimitsuspeed
      last edited by

      @yoshimitsuspeed I think the problem with what you are suggesting is that the thermal mass of the nozzle and the heater block or heater assembly is to great to make fast change sin temperature possible. When switching between fast and slow extrusion, there would be several seconds during which the nozzle would be at the wrong temperature.

      RRF does already support heater feedforward, so you may find that helps. See https://docs.duet3d.com/User_manual/Reference/Gcodes#m309-set-or-report-heater-feedforward.

      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

      yoshimitsuspeedundefined 2 Replies Last reply Reply Quote 0
      • yoshimitsuspeedundefined
        yoshimitsuspeed @dc42
        last edited by

        @dc42
        It has been so long since I ran normal heaters I don't remember how they compare but I run Maxiwatt cylindrical heaters and I am confident they change temp fast enough to make this work.
        One thing to recognize is that there is a decent bit of give to most the parameters. The acceptable temp window is pretty big so moving to stay within that window gives a lot of range to float. But being able to move that window could allow faster printing with better low speed quality.
        Also things take a bit of time to cause a problem. For example if I'm running TPU at 250 and it gets really slow it will print fine for 10 more seconds or more before it starts popping or bubbling. So if there is a spot that slowed down for less than 10 seconds it could just not do a temp change, or signal a temp change but would be fine if the temp didn't change much.
        Similarly if it then went back to max volumetric flow rate and was at say 215 it would take a few seconds before it started under extruding. Even if it under extruded for a couple seconds it wouldn't be the end of the world. Especially since my external perimeters are at a slightly lower volumetric flow rate so any under extrusion would be momentary on internal paths.

        Doing a quick test changing temp from 200C to 210 my setup took about 5 seconds to get to 205 and 8-9 to get to 210. And then 210-200 about 8 seconds to get to 205 and 15 to get to 200. Filament going through it should cool and drop faster.
        If we could add a 10 or even 5 second look ahead I think the temp could easily stay within an acceptable window over a wide range of speeds pretty much all the time. Any potential deviation unacceptably outside that window probably at most for a couple seconds and only in places with more extreme rapid volumetric changes which would likely be something like infill.

        1 Reply Last reply Reply Quote 0
        • yoshimitsuspeedundefined
          yoshimitsuspeed @dc42
          last edited by

          @dc42
          I am a little unclear on how the feed forward functions. It is designed to predict temp drop or rise when rapid flow changes happen but will ultimately aim for the target temp ultimately correct?
          Or is it or could it be used to add an adjustment real time to heat more at higher flow rates and less at lower?

          droftartsundefined 1 Reply Last reply Reply Quote 0
          • droftartsundefined
            droftarts administrators @yoshimitsuspeed
            last edited by

            @yoshimitsuspeed See this post for a description of how feedforward works https://forum.duet3d.com/post/191577
            The link to the Gcode dictionary explains how to set it:

            Heat the nozzle and let the temperature stabilise. Then commence extrusion at a fast rate (as fast as the extruder can reasonable manage without skipping) and watch the temperature. If there is an initial drop, then increase the feedforward. What you are looking for is either the temperature remaining steady, or rising by a small amount followed by a drop below target of a similar amount. When extrusion stops the reverse will happen, i.e. with no feedforward the temperature will rise and then gradually return to target.

            https://docs.duet3d.com/User_manual/Reference/Gcodes#m309-set-or-report-heater-feedforward

            So no, it doesn't allow you to set a different temperature when printing slow or fast; it better maintains the current set temperature.

            I'd think the best way to do what you want is to write a slicer post processing script to identify fast and slow printing, and change the temperature accordingly. You can even write it with look ahead to change temperature in advance; RRF is unlikely to be able to look far enough ahead to do this.

            Ian

            Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

            yoshimitsuspeedundefined 1 Reply Last reply Reply Quote 0
            • yoshimitsuspeedundefined
              yoshimitsuspeed @droftarts
              last edited by yoshimitsuspeed

              @droftarts I would love to do or be involved with something like that.
              I am at the level of coding where I can oftentimes do what I want to do with instructions. I am a little more advanced when it comes to things like firmware code, gcode, Linux, and a couple other things but still not advanced. I feel like it would take more time than I feel like I could afford to spend trying to work that out completely on my own.
              Do you know of any resources that might point me in the right direction and make it relatively easy for me to do?

              I have wondered the same thing about trying to code something straight into Prusa Slicer but again I am a little too unfamiliar with the territory to try to dig into it on my own. I feel like it would probably be pretty easy to do but I have yet to find any interest in doing it. I also feel like within Prusa most of the code is probably already there considering it already monitors and controls volumetric speed. It seems like you could probably almost steal something like the Dynamic overhang speed code and just change overlap to volumetric flow and the enterable parameters to desired change in temp. Or something like that.
              But again I feel like I'd be getting in a little over my head on my own. I guess if I got bored I could at least get the PS or Super Slicer source code and start poking around. Hasn't made it that high up the priority list though.

              zaptaundefined 1 Reply Last reply Reply Quote 0
              • zaptaundefined
                zapta @yoshimitsuspeed
                last edited by zapta

                @yoshimitsuspeed, I think that what @droftarts suggested is to write a program that reads the gcode file (e,g, line by line), look for the movement commands and insert temperature setting commands at the right places. Logistically this is easier to do than modifying the the slicer or RRF, for example with a python script, or any other programming languages that you prefer.

                If you go with this approach, I would suggest to first create a simple gcode file, and insert temperature commands manually with an editor. This will provide you insight and will act as a proof of concept.

                As for extracting the flow rate from the gcode file, I believe that this is a simple function of the extruder speed, which you can find in the extruder gcode commands.

                yoshimitsuspeedundefined 1 Reply Last reply Reply Quote 1
                • yoshimitsuspeedundefined
                  yoshimitsuspeed @zapta
                  last edited by

                  @zapta

                  It's kind of mind boggling to me that people keep talking about trying to prove the concept.
                  Like am I really the only one who changes temp manually during printing to maximize performance? I mean not on a regular basis but in special situations.
                  Like if you have a big model that you want to print fast you can set it to print nice and hot and fast.
                  Then if there are a couple detail areas that are getting too hot you just turn the temp and if needed feed down in those areas.

                  It works really well. It would just be nice to be able to automate it and if it was then it would add a lot of capability to printing. It's weird to me this concept seems so foreign or unheard of.

                  zaptaundefined deckingmanundefined 2 Replies Last reply Reply Quote 0
                  • zaptaundefined
                    zapta @yoshimitsuspeed
                    last edited by

                    @yoshimitsuspeed, in my mind there is a difference between changing the temperature a few times during a print and changing hundreds or thousands times during the print. Temperature changes are slow in nature.

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

                      @yoshimitsuspeed if you build the firmware yourself, you could adapt the code that implements heater feedforward to adjust the target temperature as well as the heater power.

                      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
                      • deckingmanundefined
                        deckingman @yoshimitsuspeed
                        last edited by

                        @yoshimitsuspeed I think a bigger problem than feed forward heating, is feed forward cooling. What I mean by that is, assuming you have a large print area that you want to print fast (and for which your hot end has a limited melt rate capability thus requiring elevated temperatures) and you then change to smaller detail that you have to print slower and cooler, then you have to rapidly cool the hot end which realistically would require a fan blowing cold air over the heater block. Even so, thermal inertia will always limit how fast you can switch between high and low filament temperatures, whether heating or cooling and regardless of how powerful the heating element.

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

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