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

    "heater timing" or "heater phasing" feature request

    Scheduled Pinned Locked Moved
    Firmware wishlist
    4
    8
    817
    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.
    • JRDMundefined
      JRDM
      last edited by JRDM

      I have a number of heaters on my larger 3D printer and I would like a way to manage their power consumption so 1) so they're not exceeding the power supply circuit in any given instant and 2) make the power consumption steadier

      I have a bed heater and an enclosure heater that are have similar power demands. If they're both on at the same time, they would exceed the load rating for the supply circuit. Once the machine is at temperature, each heater is on 50% or less of the time.

      I also would like to define which heater gets priority. In my case, the bed should get priority over the enclosure heater, so when the bed is warming up, maybe the enclosure heater isn't running much but that's not a big deal, the enclosure will be at temperature by the time the ambient heat matters, when the print is building further away from the bed.

      Similarly, I have four heaters on my extruder, they're much lower power and less likely to be a problem, but it would still be nice to have a similar "phasing" so no two of these heaters are on at the same instant. Also with these, the duty cycle is pretty low once the extruder has been preheated.

      Is this something that can be accommodated within the firmware?

      A Former User? deckingmanundefined 2 Replies Last reply Reply Quote 0
      • A Former User?
        A Former User @JRDM
        last edited by

        @jrdm

        actually a choreographed PWM-mix you are asking for? But that would not become handy if your supply is too weak when starting up, because all current demand would have to be split over 1 time-unit x very difficultly across the amount of "members" of pwm-doable current... this would not be easy to code I guess and would considerably make things slower for people with a strong PSU that itself can throttle down if demand is lower...?

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

          @jrdm A couple of random thoughts based on what might be possible with things as they are now.

          I'd say the best ting to do might be to wrap the commands in a macro - call it "PrePrint" for the sake of argument. So it would be reasonably easy to set the bed temperature and wait for that to be reached, then do the same for the chamber temperature. So M190 Snn followed by M191 Snn will turn them on in stages.

          The multiple extruder heaters might be a bit more of a challenge but assuming you have them assigned to a tool, then in theory it should be possible to set different active and standby temperatures for each heater assigned to that tool. If that is the case, then it should also be possible to stage that heating sequence similar to above.

          So something like G10 Pn Snn:0:0:0 should set the active temperature for the first heater with the other 3 heaters set to zero. This could then be followed by M116 Pn H0 which would wait for that heater to attain the active temperature. Then set the active temperature for the second heater using G10 Pn Snn:nn:0:0 which would set the active temperatures for the first two heaters, followed again by M116 Pn but with H1 instead of H0 to wait for the second heater. Then G10 Snn:nn:nn:0 followed by M116 Pn H2 and so on for the other two heaters.

          Not very elegant I admit but it might achieve what you want.

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

          1 Reply Last reply Reply Quote 0
          • JRDMundefined
            JRDM @A Former User
            last edited by

            @lb It's not the PSU, I'm mostly using AC heaters. I don't want the current draw from heaters adding up to more than what should be drawn from the outlet.

            A Former User? 1 Reply Last reply Reply Quote 0
            • dc42undefined
              dc42 administrators
              last edited by

              That's possible to do, but far from trivial. To do it properly, the PWM algorithm would have to be modified so that the PWM of the bed and chamber heaters are out of phase. Normally they will be in-phase. This means that if you run both heaters at 50% PWM, half the time they will be taking no current and the other half they will take double the current of a single heater. The RMS current averaged over one cycle will be sqrt(2) times the current draw of 1 heater, so you are still likely to exceed the fuse rating.

              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

              JRDMundefined 1 Reply Last reply Reply Quote 0
              • A Former User?
                A Former User @JRDM
                last edited by

                @jrdm
                Ah - now I understand...

                -> guess what dekingman just posted as idea with a macro with subsequent timing seems to be doable and the most reasonable thing for now...(?)

                JRDMundefined 1 Reply Last reply Reply Quote 0
                • JRDMundefined
                  JRDM @dc42
                  last edited by JRDM

                  @dc42 This means that if you run both heaters at 50% PWM, half the time they will be taking no current and the other half they will take double the current of a single heater

                  I guess I don't understand this. I was trying to ask that they be out of phase, probably opposite phase. Half the time it would be running one heater, half the time it would be running the other heater. In my situation, both heaters have the same current draw.

                  1 Reply Last reply Reply Quote 0
                  • JRDMundefined
                    JRDM @A Former User
                    last edited by JRDM

                    @lb said in "heater timing" or "heater phasing" feature request:

                    @jrdm
                    Ah - now I understand...

                    -> guess what dekingman just posted as idea with a macro with subsequent timing seems to be doable and the most reasonable thing for now...(?)

                    I'm thinking about programming a separate microcontroller board that would suppress the secondary heater when the primary is on. This wouldn't be a problem as the secondary is an enclosure heater that's on thermostat control. I did this with a standalone FET once then I moved the circuit and it didn't work anymore. Not sure if I ESD'd the FET or broke a connection somewhere. A fet or simple logic board would do the first iteration design, but second iteration program would count the time it's been suppressed and make up for it when the primary heater is off.

                    That said my needs have since changed and I probably just need to switch my machine from 120V to 240V, which gives me some power head room.

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