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
      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