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

    Using Multiple Bed Heaters

    Scheduled Pinned Locked Moved
    General Discussion
    4
    21
    4.3k
    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.
    • justine.hauptundefined
      justine.haupt
      last edited by

      Firstly, merry Christmas.

      Sitting with family and contemplating bed heaters.

      dc42 mentioned on the RepRap forum that the Duet now supports multiple bed heaters with the new firmware. I remember seeing something about that here but the post is tangled in the chaparral of recent forum activity, and defies the search feature.

      What do I need to add to config.g to set, say, the E4 Heater and E4 Thermistor as another bed controller (to external relay)?

      Once working, does the temperature of an additional bed heater get reported as part of the normal gcode terminal stream from the Duet?

      For the curious, I have 5 bed heater zones; four square silicone heaters plus a nichrome perimeter wire. There aren't enough outputs to control each individually (there's also a 4 extruder toolhead to think about), but if I can at least get the perimeter wire on a separate output things will be shiny.

      ~Justine

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

        It looks like the process isn’t formally documented yet. A few comments on RC2 seem to describe how to set it up.

        https://www.duet3d.com/forum/thread.php?id=3715#p32657

        1 Reply Last reply Reply Quote 0
        • justine.hauptundefined
          justine.haupt
          last edited by

          Thank you. The syntax is confusing but looks like dc42 is thinking of changing it.

          For completeness, the relevant posts:

          @chrishamm:

          Please be aware that multiple bed heaters are not yet supported on DWC but in principle it is fairly easy to configure them. Assuming you want to map heaters 3-5 to heated beds leaving heater 0 as the first bed heater, you could send

          M140 P1 H3
          M140 P2 H4
          M140 P3 H5

          to the firmware to set everything up. Just make sure you don't put excessive load on the heater channels - in fact you may want to consider connecting an SSR to each of them before you continue.

          And,

          @dc42:

          @Immutef:

          So, in practice, I'd set all four heaters to my target temperature (e.g. 80°C) and the Duet takes care that each zone reaches 80°C and stays at it. I know the zones will affect each other, but in the end, the Duet will figure out which zone to heat, right?

          That's correct. Currently you will need to send M140 P0 S80, M140 P1 S80, M140 P2 S80 and M140 P3 S80. Then M116 to wait for them all to reach temperature. M140 with no P parameter defaults to P0.

          I am considering making a couple of changes:

          1. Use M140 H0:2:3:4 to configure multiple bed heaters, instead of M140 P0 H0, M140 P1 H3 etc.

          2. Make M140 Sxxx (also M190) with no P parameter set the temperature of all bed heaters. So the bed temperature commands generated by slicers would apply to all bed heaters by default.

          These changes would also apply to the M141 command to configure and control chamber heaters.

          Thoughts?

          1 Reply Last reply Reply Quote 0
          • justine.hauptundefined
            justine.haupt
            last edited by

            Having trouble.

            Recap: I want to set the E4 heater output and E4 thermistor input on the Duex5 as a bed heater in addition to the normal bed heater output and thermistor input.

            If I turn on the bed, the E4 terminal block stays at 0v while the bed terminal block goes to 24v.

            This is the relevant part of my config.g:

            [[language]]
            ; Heaters
            M143 H1 S300 ; Set maximum heater temperature for the extruder (in C). 
            M140 P2 H4;		;Tie the E4 heater (and thermistor) output (and input) to the bed heater. 
            M570 S400 ; Set maximum heating time (s)
            M305 P0 R4700 T100000 B3950   ; set bed thermistor parameters
            M305 P2 R4700 T100000 B3950   ; set bed thermistor parameters
            M305 P1 R4700 T100000 B4725 C7.06e-8   ; set E0 (extruder 0) thermistor parameters
            
            M307 H1 A421.2 C243.8 D3.9 B0				;Set the settings for the extruder heater (H1). 
            
            ; Define Tool 0 (Mono-Extruder)
            M563 P0 D0 H1 ; Define tool 0 (P0) to use drive 0 (D0) and heater 1
            G10 P0 S0 R0 X0 Y0    ; set tool 0 temperatures and offsets
            T0			; Select tool 0
            
            

            The Pnnn designations are confusing and I'll bet I have it wrong. I've confirmed the thermistor connection is good.

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

              I don't know of any slicers that support multiple bed heaters, so if you want to use more than just bed heater 0 you will need to set the temperatures of any additional bed heater up manually in your clicer start script, and turn them off in your slicer end script. Use the M140 P# S# command to set the temperature individually for each heater, and M116 to wait for all heaters to come up to temperature..

              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
              • justine.hauptundefined
                justine.haupt
                last edited by

                Ahhhhhhhhhhh. Thank you dc42.

                1 Reply Last reply Reply Quote 0
                • justine.hauptundefined
                  justine.haupt
                  last edited by

                  If I send M140 P2 S50 I get,

                  [[language]]
                  READ: Error: Temperature reading fault on heater 4: unknown temperature sensor channel
                  
                  
                  1 Reply Last reply Reply Quote 0
                  • elmoretundefined
                    elmoret
                    last edited by

                    Looks like you don't have a M305 set up for that thermistor yet.

                    1 Reply Last reply Reply Quote 0
                    • justine.hauptundefined
                      justine.haupt
                      last edited by

                      I thought I did:

                      [[language]]
                      M305 P2 R4700 T100000 B3950   ; set bed thermistor parameters
                      
                      

                      Should that be

                      [[language]]
                      M305 P4 R4700 T100000 B3950   ; set bed thermistor parameters
                      
                      

                      ?

                      1 Reply Last reply Reply Quote 0
                      • justine.hauptundefined
                        justine.haupt
                        last edited by

                        I think it should indeed be P4 in the M305 command, as in

                        [[language]]
                        M305 P4 R4700 T100000 B3950   
                        
                        

                        But it's still not working. When sending M140 P2 S50 it returns:

                        [[language]]
                        READ: Error: Temperature reading fault on heater 4: sensor open circuit
                        
                        

                        So it goes from complaining that the temperature sensor channel is unknown to complaining that it's not connected, but it is connected. I have the thermistor plugged into the E4:ESSA/THERMISTOR5 and it reads ~100k at ambient, probed right at the Molex connector.

                        Also tried setting M305 P5 R4700 T100000 B3950 just to be sure, but the error goes back to unknown temperature sensor channel.

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

                          The E4 thermistor channel is channel 5. You have configured the second bed heater to use channel 4, which is the one labeled E3. They are offset by one because the bed thermistor is channel 0, therefore the E0 thermistor is channel 1, and so on.

                          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
                          • justine.hauptundefined
                            justine.haupt
                            last edited by

                            Tried that too (see end of comment above), but that also gives me [c]READ: Error: Temperature reading fault on heater 4: sensor open circuit[/c].

                            Just tried it again to be sure. Same.

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

                              Did you remember to change your M140 command from M140 P2 H4 to M140 P2 H5 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

                              1 Reply Last reply Reply Quote 0
                              • justine.hauptundefined
                                justine.haupt
                                last edited by

                                I did not! Thank you David(?).

                                1 Reply Last reply Reply Quote 0
                                • justine.hauptundefined
                                  justine.haupt
                                  last edited by

                                  Closer by the day.

                                  My understanding is I can use M140 Hn Snn to turn on specific heater channels (H0, H5, H6, and H7 in my case), but the way the config file is set up, M140 P2 Snn should turn on ALL of the linked heaters. Is that right?

                                  The current primary problem is that I get the ""temperature rising much more slowly than the expected 0.7C/sec" error very quickly after turning on a heater, but if I try to autotune H5 (for example) with M303 H5 S60, I get

                                  [[language]]
                                  READ: Heater is not ready to perform PID auto-tuning
                                  
                                  

                                  What's going on here?

                                  1 Reply Last reply Reply Quote 0
                                  • justine.hauptundefined
                                    justine.haupt
                                    last edited by

                                    ALSO,

                                    I can't use M140 Hn Snn to turn on more than one heater at a time. For example, if I send M140 H5 S50, that heater goes on, but if I then send M140 H6 S50, it switches to H6 instead of keeping both H5 and H6 on.

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

                                      I have condensed your reports into the following:

                                      1. Unable to autotune a heater that is assigned as an additional bed heater because of "not ready" message. Did you clear the heater fault before you sent the M303 command?

                                      2. M140 H6 S50, it switches to H6 instead of keeping both H5 and H6 on. This is the correct behaviour, because that command both assigns heater 6 to bed heaster 0 (because the P parameter defaults to 0) and switches it on. To control a bed heater, use M140 P# Snn where # is the bed heater number you want to control.

                                      3. "My understanding is I can use M140 Hn Snn to turn on specific heater channels (H0, H5, H6, and H7 in my case), but the way the config file is set up, M140 P2 Snn should turn on ALL of the linked heaters. Is that right?"

                                      No. You should not normally use both H and S in the same command. The H parameter assigns that heater number to the bed heater number that you specify in the P parameter. You would normally use M140 with an H parameter only in config.g because you will use a fixed assignment of bed heater numbers to heater channels. Subsequently, to control a bed heater, use M140 P# Snn.

                                      HTH David

                                      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
                                      • justine.hauptundefined
                                        justine.haupt
                                        last edited by

                                        Thank you for the attentiveness David.

                                        You know, the default H0 heater model settings work fine. Could you possibly report those settings so I can apply them to the other bed heaters as a starting point?

                                        I think tuning these heaters will be a bit of a pain since they will behave differently when turned on individually versus all at once.

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

                                          Just send M307 H0 to get the current settings for heater 0.

                                          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
                                          • justine.hauptundefined
                                            justine.haupt
                                            last edited by

                                            ::facepalm::

                                            Thanks.

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