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

    Detect overheated driver

    Scheduled Pinned Locked Moved
    General Discussion
    6
    21
    3.2k
    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.
    • SnowCrashundefined
      SnowCrash @dc42
      last edited by SnowCrash

      @dc42 said in Detect overheated driver:

      Unless you are using very old firmware, you will get warning messages in the Console pages of DWC and PanelDue if the drivers overheat. You can also use M305 to set up a virtual heater to monitor them.

      @dc42, could you please give a couple of concrete examples of how to set up a virtual heaters for, say, Driver 0 (X-Motor) and Driver 1 (Y-Motor) using the M305 command so that they could be monitored in DWC?

      I've read and re-read the documentation on this here, but still not sure what the specific parameters ought to be, mainly the 'P' parameter.

      What I find a bit confusing is that in my config.g I have:

      M305 P1 T100000 B3950 C0 R4700 ; Set thermistor + ADC parameters for heater 1;

      But, unless I'm mistaken, that would mean P1 is mapped to the E0 driver which runs my extruder stepper, so I'm not sure how the axis drivers are mapped to the 'P' parameter.

      I'm also not entirely clear what other parameters are needed in this context (if any)?

      Edit: I hope this isn't highjacking your thread, @mperdue . My question seemed directly relevant to your query, but if needed, I'll happily start a new one).

      deckingmanundefined 1 Reply Last reply Reply Quote 1
      • Phaedruxundefined
        Phaedrux Moderator
        last edited by Phaedrux

        @snowcrash
        I'm not sure how M305 relates to the virtual heater channels for the drivers and CPU but this is how I used them to control my case fans.

        M106 P2 F10000 L0.2 B1 T35:40 H100:101:102   ; Set fan 2 Duet case fan. 
        ; Turns on when the MCU temperature (virtual heater 100) reaches 35C
        ; and reaches full speed when the MCU temperature reaches 40C 
        ; or if any TMC2660 drivers (virtual heaters 101 and 102) report that they are over-temperature
        

        Z-Bot CoreXY Build | Thingiverse Profile

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

          @snowcrash

          Unless things have changed recently, the driver chips don't actually report temperature. They just report alarms to indicate that they are close to or exceeding maximum temperature. I can't off hand remember what these temperature are but they are quite high. If it's any help, what I did is attached a bead thermistors to one of the drivers (the one that gets the most use) with small dab of epoxy, then set up virtual heater to monitor this (and control fans).

          So in my config.g I have:

          M305 P103 X2 S"Duet\Duex" T100000 B4725 R4700; Set thermistor + ADC parameters for "heater" 2 - this is used to measure stepper chip temperature on Duet

          Then I have case fans that blow air onto the underside of the chip set up thus:
          M106 P2 S255 I0 F250 H103 T40:50; Set fan 2 value (Duet and Duex fans).

          It's a bit confusing because in M305 the heater number is the "P" parameter (103 in this case) but in M106 the heater number is the "H" parameter.

          Then in DWC under "Extras" there is "MCU" (which is fixed) and under that is "Duet/Duex" (the S parameter in M305 gives it a meaningful name) so I can see what the actual temperature of the chip is.

          HTH

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

          SnowCrashundefined 1 Reply Last reply Reply Quote 1
          • SnowCrashundefined
            SnowCrash
            last edited by

            @phaedrux said in Detect overheated driver:

            Many thanks for the info, @Phaedrux! It's certainly good to know about M160 and how it can be utilized.

            Moreover, your configuration certainly look in line with the description of M106 in the Duet G-Code wiki, but for me this raises even more questions than before, specifically:

            (1) If there are 5 x MCP2660 drivers onboard the Duet, why are there only 2 x Virtual heaters mentioned as related to them (i.e. 101 & 102)? Do these 2 virtual heaters correspond to all 5 physical drivers or just to the first 2?

            (2) The existance of the M106 command suggests that on-going temp monitoring of the drivers and CPU does take place, but is it possible to create visual indicators for their temp status in DWC via M305 given that M106 is only used to internally control fan output/s?

            1 Reply Last reply Reply Quote 0
            • SnowCrashundefined
              SnowCrash @deckingman
              last edited by

              @deckingman said in Detect overheated driver:

              P103

              Thank you for the clarifications & info, @deckingman!

              It is definitly very confusing 🙂

              This helps answering my questions to @Phaedrux above to an extent, though not fully.

              A couple of follow-up questions if I may:

              (1) Where did you connect the bead-thermistor on the Duet?

              (2) How did you know you can use P103? (virtual temp channel 3, I assume?) Is this channel something that's left to the user to setup or is it already pre-configured in firmware?

              deckingmanundefined 1 Reply Last reply Reply Quote 0
              • Phaedruxundefined
                Phaedrux Moderator
                last edited by

                I believe I recall @dc42 saying previously that the drivers are monitored for a high temp and overtemp, hence the two virtual heaters. The reason for being combined being that they are intended to be used for thermostatic control of a case fan. The hottest driver would trigger the increase in cooling.

                Since the drivers can generally be run passively cooled I don't know the benefit of knowing exactly how hot they are since we can already achieve a cooling strategy with virtual heaters provided.

                As Deckingman said, adding a thermistor would get you the exact temp and associated control.

                Z-Bot CoreXY Build | Thingiverse Profile

                SnowCrashundefined 1 Reply Last reply Reply Quote 0
                • SnowCrashundefined
                  SnowCrash @Phaedrux
                  last edited by SnowCrash

                  @phaedrux said in Detect overheated driver:

                  I believe I recall @dc42 saying previously that the drivers are monitored for a high temp and overtemp, hence the two virtual heaters. The reason for being combined being that they are intended to be used for thermostatic control of a case fan. The hottest driver would trigger the increase in cooling.

                  Since the drivers can generally be run passively cooled I don't know the benefit of knowing exactly how hot they are since we can already achieve a cooling strategy with virtual heaters provided.

                  As Deckingman said, adding a thermistor would get you the exact temp and associated control.

                  Ahh, now the 2 virtual drivers vs 5 physical drivers make more sense - thanks, @Phaedrux! Shame it's not in the wiki...

                  Also, as always, you make great points here.

                  Nevertheless, I can see at least one advantage to being able to monitor the actual temps (or even just the status, i.e. high-temp and over-temp), which is it provides a way to verify that the temp-control fans are indeed operating as intended. Put a different way, atm how do you know that the fan comes on when it needs to?

                  Phaedruxundefined 1 Reply Last reply Reply Quote 1
                  • Phaedruxundefined
                    Phaedrux Moderator @SnowCrash
                    last edited by Phaedrux

                    @snowcrash It may be in the release notes from back when the virtual temps were introduced. But yes, it would belong in the wiki.

                    At the temperature set points I have set I can see and hear that the fans do engage and speed up over the course of a print, but due to the way the command is structured, I can't tell if it's due to the MCU temp ( I believe that it is ) or from the driver temps ( I doubt that they are hitting their limits given that the enclosure is already actively cooled to keep the MCU temp in check. )

                    I think you can see if there are any over temp warnings by issuing an M122 command to get diagnostic information.

                    Z-Bot CoreXY Build | Thingiverse Profile

                    deckingmanundefined 1 Reply Last reply Reply Quote 0
                    • Phaedruxundefined
                      Phaedrux Moderator
                      last edited by Phaedrux

                      @phaedrux said in Detect overheated driver:

                      H100:101:102

                      https://forum.duet3d.com/topic/5304/firmware-2-0rc2b-1-21-1-rc2b-released/27

                      There is some discussion here that might help explain the behaviour of the temp reporting from the drivers. They don't actually report temps, only the temp warning flags, which are internally set. Would need to dig up the driver documentation from TMC to see how temps are monitored.

                      But the takeaway is that it takes a lot to drive these chips to their maximums, ie running motors at the maximum driver current of 2.4. And that under most circumstances, any cooling is adequate cooling.

                      Z-Bot CoreXY Build | Thingiverse Profile

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

                        @snowcrash said in Detect overheated driver:

                        @deckingman said in Detect overheated driver:

                        P103

                        Thank you for the clarifications & info, @deckingman!

                        It is definitly very confusing 🙂

                        This helps answering my questions to @Phaedrux above to an extent, though not fully.

                        A couple of follow-up questions if I may:

                        (1) Where did you connect the bead-thermistor on the Duet?

                        (2) How did you know you can use P103? (virtual temp channel 3, I assume?) Is this channel something that's left to the user to setup or is it already pre-configured in firmware?

                        (1). The "stuck on" bead thermistor is connected to E1 thermistor channel. Actually I have 5 other thermistors stuck to stepper motor bodies and these are all connected to thermistors E2 to E6 on the Duex5 expansion board.

                        (2) The information about heater channels (virtual and otherwise) is all in the wiki related to M305
                        https://duet3d.dozuki.com/Wiki/GCode#Section_M305_Set_temperature_sensor_parameters

                        Historically, I'm one of the first adopters of the Duet Wifi and have been monitoring various temperatures since day one. Initially I had to set up dummy tools to be able to do it and wrote a post on my blog which you might find informative (although, now that we have virtual heaters it's a little out of date). https://somei3deas.wordpress.com/2017/04/18/stepper-motor-and-electronics-cooling/. I made a firmware request to have some means of monitoring "heaters" that weren't actual heaters which has been implemented and negates the need to use dummy tools.

                        HTH

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

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

                          @phaedrux said in Detect overheated driver:

                          @snowcrash It may be in the release notes from back when the virtual temps were introduced. But yes, it would belong in the wiki.....................

                          You can find it in the Wiki here https://duet3d.dozuki.com/Wiki/GCode#Section_M305_Set_temperature_sensor_parameters

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

                          SnowCrashundefined 1 Reply Last reply Reply Quote 0
                          • SnowCrashundefined
                            SnowCrash @deckingman
                            last edited by

                            @deckingman said in Detect overheated driver:

                            @snowcrash said in Detect overheated driver:

                            @deckingman said in Detect overheated driver:

                            P103

                            Thank you for the clarifications & info, @deckingman!

                            It is definitly very confusing 🙂

                            This helps answering my questions to @Phaedrux above to an extent, though not fully.

                            A couple of follow-up questions if I may:

                            (1) Where did you connect the bead-thermistor on the Duet?

                            (2) How did you know you can use P103? (virtual temp channel 3, I assume?) Is this channel something that's left to the user to setup or is it already pre-configured in firmware?

                            (1). The "stuck on" bead thermistor is connected to E1 thermistor channel. Actually I have 5 other thermistors stuck to stepper motor bodies and these are all connected to thermistors E2 to E6 on the Duex5 expansion board.

                            (2) The information about heater channels (virtual and otherwise) is all in the wiki related to M305
                            https://duet3d.dozuki.com/Wiki/GCode#Section_M305_Set_temperature_sensor_parameters

                            Historically, I'm one of the first adopters of the Duet Wifi and have been monitoring various temperatures since day one. Initially I had to set up dummy tools to be able to do it and wrote a post on my blog which you might find informative (although, now that we have virtual heaters it's a little out of date). https://somei3deas.wordpress.com/2017/04/18/stepper-motor-and-electronics-cooling/. I made a firmware request to have some means of monitoring "heaters" that weren't actual heaters which has been implemented and negates the need to use dummy tools.

                            HTH

                            Thanks, @deckingman, I'll certainly check it out 🙂

                            1 Reply Last reply Reply Quote 0
                            • T3P3Tonyundefined
                              T3P3Tony administrators
                              last edited by

                              @mperdue I think we need to do a bit more investigation, an over heating driver does not necessarily manifest itself in prints slowing down. Can you isolate the suspect driver from the system (i.e. are you using all 5 drivers or could you move whatever is connected to that driver to another spare driver and remap using M584.

                              Also worth confirming the repeat ability of the slow down. For example if it was temperature related does the slow down happen almost immediately if the printer is printing after slow down, you then cancel and restart the same print from the beginning.

                              www.duet3d.com

                              mperdueundefined 1 Reply Last reply Reply Quote 0
                              • SnowCrashundefined
                                SnowCrash @deckingman
                                last edited by SnowCrash

                                @deckingman said in Detect overheated driver:

                                @phaedrux said in Detect overheated driver:

                                @snowcrash It may be in the release notes from back when the virtual temps were introduced. But yes, it would belong in the wiki.....................

                                You can find it in the Wiki here https://duet3d.dozuki.com/Wiki/GCode#Section_M305_Set_temperature_sensor_parameters

                                Unfortunately, I'm afraid I can't...

                                To the best of my understanding, this is what the wiki has on virtual heaters:

                                Pnnn Heater number (0, 1, 2...) or virtual heater number (100, 101, 102...)

                                Channel 1000 is the on-chip microcontroller temperature sensor
                                Channel 1001 represents the temperature warning and overheat flags on the TMC2660 drivers on the Duet Wif/Ethernet. It reads 0C when there is no warning, 100C if any driver reports over-temperature warning , and 150C if any driver reports over temperature shutdown.

                                Channel 1002 is as channel 1001 but for drivers on the DueX2 or DueX5.

                                Virtual heaters 100, 101 and 102 are preconfigured to use temperature sensor channels 1000, 1001 and 1002 respectively. We suggest you use virtual heaters 102 upwards if you want to create additional virtual heaters.

                                I don't know about other members, but I find this description not only confusing, but lacking in the most important respect, namely: how to set up and use existing/new virtual channels in practice.

                                To take just 3 examples:

                                As @Phaedrux's comments' revealed, the functions of virtual channels 101 and 102 (high-temp and over-temp) for the drivers aren't mentioned in the wiki at all (they are only mentioned in relation to the CPU 100 channel.

                                I assume there's a mistake in at the end where it says '102 upward', as it seems channel 102 is reserved for flagging 'over-heating' of the drivers, no? shouldn't it be '103 upwards'?

                                Moreover, what are 'temperature sensor channels 1000, 1001 and 1002' mentioned above? where do I find them? are there additional temperature channels I can use/create? how do I utilize them? and, in case I'd like to use create new virtual channels, how to I configure them to work with other those 'other channels'?

                                Of course, I don't expect you (or anyone else) to write a whole tutorial on how to use virtual channels on the Duet within the confines of this modest thread.

                                On the other hand, from my perspective as a newbie to the Duet eco-system, the info in the wiki on this subject isn't really comprehensible nor detailed enough to be actually useful.

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

                                  @snowcrash

                                  Sorry, just trying to help.

                                  I'd say that yes you are correct in that there seems to be a typo. Yes if channel 102 is reserved for on chip temperatures of the Duex expansion board as stated so use channels 103 upwards and not 102.

                                  Not sure I understand your confusion about temperature sensor channels. At the start of your post you correctly quote from the Wiki that:

                                  "Channel 1000 is the on-chip microcontroller temperature sensor, Channel 1001 represents the temperature warning and overheat flags on the TMC2660 drivers on the Duet Wif/Ethernet. It reads 0C when there is no warning, 100C if any driver reports over-temperature warning , and 150C if any driver reports over temperature shutdown.
                                  Channel 1002 is as channel 1001 but for drivers on the DueX2 or DueX5."

                                  But then you ask " what are 'temperature sensor channels 1000, 1001 and 1002' mentioned above?".

                                  The Wiki states that "Virtual heaters 100, 101 and 102 are preconfigured to use temperature sensor channels 1000, 1001 and 1002 respectively". We also know from the Wiki that channel 1001 is for the drivers on the Duet and 1002 is for the drivers on the Dues2 or Duex 5. So virtual heater 101 is for teh drivers on the Duet main board, and virtual heater 102 is for drivers on the Duet2/5.

                                  I've given an example of how to set up and use a virtual channel including where to connect the thermistor and the relevant commands to add to config.g. Is there any other information you need?

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

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

                                    Yes there was a typo in the wiki, it should have suggested using virtual heater numbers 103 upwards for your own additional temperatures. I have corrected it.

                                    If you send the following command:

                                    M305 P101

                                    you should get the response "Heater 101 uses TMC2660 temperature warnings sensor channel 1001". But as this virtual heater has no name, it doesn't show up in DWC. You can fix that by sending:

                                    M305 P101 S"Drivers"

                                    After that, if you go to the "Extra" tab in DWC (where is says Tools/Heaters/Extra), you will see "Drivers" as an entry. The reading you will get here is as the wiki states:

                                    It reads 0C when there is no warning, 100C if any driver reports over-temperature warning , and 150C if any driver reports over temperature shutdown.

                                    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

                                    SnowCrashundefined 1 Reply Last reply Reply Quote 0
                                    • SnowCrashundefined
                                      SnowCrash @deckingman
                                      last edited by SnowCrash

                                      @deckingman said in Detect overheated driver:

                                      @snowcrash

                                      Sorry, just trying to help.... I've given an example of how to set up and use a virtual channel including where to connect the thermistor and the relevant commands to add to config.g. Is there any other information you need?

                                      Please don't apologize, @deckingman! On the contrary, your comments were very much appreciated and you've been very helpful throughout this thread. I'm sorry if my last response made it sound like anything else!

                                      I think I'm slowly getting my head around all this 🙂

                                      1 Reply Last reply Reply Quote 0
                                      • SnowCrashundefined
                                        SnowCrash @dc42
                                        last edited by

                                        @dc42 said in Detect overheated driver:

                                        Yes there was a typo in the wiki, it should have suggested using virtual heater numbers 103 upwards for your own additional temperatures. I have corrected it.

                                        If you send the following command:

                                        M305 P101

                                        you should get the response "Heater 101 uses TMC2660 temperature warnings sensor channel 1001". But as this virtual heater has no name, it doesn't show up in DWC. You can fix that by sending:

                                        M305 P101 S"Drivers"

                                        After that, if you go to the "Extra" tab in DWC (where is says Tools/Heaters/Extra), you will see "Drivers" as an entry. The reading you will get here is as the wiki states:

                                        It reads 0C when there is no warning, 100C if any driver reports over-temperature warning , and 150C if any driver reports over temperature shutdown.

                                        HTH David

                                        Thank you, @dc42, that was definitely one of the missing pieces for me.

                                        I'll sit down now and re-read everything everyone said and then try out some things 🙂

                                        1 Reply Last reply Reply Quote 0
                                        • mperdueundefined
                                          mperdue @T3P3Tony
                                          last edited by

                                          @t3p3tony

                                          I agree that a lot more investigation is required. I have gotten some spurious errors and other unexplained wonkiness. I should receive a new Duet WiFi and Duex5 today so I'll first try to isolate which board it causing the problems and then try to narrow it down from there.

                                          Unfortunately, this thread seems to have been hijacked so I'll start a new one if/when I figure anything out.

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