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

    Dead driver or dying board?

    Scheduled Pinned Locked Moved
    Duet Hardware and wiring
    4
    30
    620
    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.
    • kazolarundefined
      kazolar @kazolar
      last edited by

      @dc42 I figured it out -- the current sent to the stepper falls DRASTICALLY. This is reproducible even on drivers which are acting normally. I am running ldo nema 17s on X carriage steppers. I noticed all of a sudden one of the carriages can't home. It's trying, but it feels like it's basically running with a fraction of the current -- same behavior if I were to set the current to 0.5 or less. I tried M569 commands nothing is printed. I notice driver 2 is working fine, but when given 2 amps, the carriage is rather easy to move. So I gave it 2.5 these LDOs max is 2.8, I've run them at 2.5 on my voron. Even at 2.5 the stepper can be moved by hand with a bit more force. I then powercycled the machine, and 2.5 is now stepper is rock solid. This feels like the board driver current reg is failing? or Something of that ilk.

      1 Reply Last reply Reply Quote 0
      • kazolarundefined
        kazolar
        last edited by

        Lots of timeouts.
        Driver 0: standstill, SG min 0, mspos 216, reads 51266, writes 3696 timeouts 364
        Driver 1: standstill, SG min 0, mspos 72, reads 51266, writes 3696 timeouts 364
        Driver 2: ok, SG min 0, mspos 600, reads 51266, writes 3696 timeouts 364
        Driver 3: standstill, SG min n/a, mspos 8, reads 51277, writes 3685 timeouts 364
        Driver 4: standstill, SG min 0, mspos 936, reads 51266, writes 3696 timeouts 364
        Driver 5: standstill, SG min n/a, mspos 8, reads 51277, writes 3685 timeouts 364
        Phase step loop runtime (us): min=0, max=192, frequency (Hz): min=492, max=46875

        And this is when the issue isn't happening
        Updated the firmware to latest rc3, didn't help.

        Reproduced the problem on 2 drivers now and other drivers show reduced current when the problem occurs. The drivers which are faulty drop current down 1 amp -- and the steppers I'm using need more than that to move.

        Ordered a new board, clearly this one is not long for this world. Gonna get this print done, and will replace it over the weekend. Considering moving to SBC mode as well during the swap.
        Will also be switching to 40-48v (need to do the math which is best for my steppers)

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

          @kazolar this doesn't sound like a hardware fault to me. What M906 idle current setting do you use? If motor current is reducing on all drivers when this happens, perhaps the firmware is setting all motors to idle current incorrectly.

          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

          kazolarundefined 1 Reply Last reply Reply Quote 0
          • kazolarundefined
            kazolar @dc42
            last edited by

            @dc42 idle is 50% hasn't changed in 7 years I've had this printer. When the issue occurs. Restart cant even fix the current. Manually sending m906 isn't reflected in actual current. It seemed like now 2 drivers are pulling all current down. I was checking during the print yesterday and left over current was holding correctly. I ran 100s of hours with this config and Firmware. Only recent change was addition of szp. Nothing changed in drive config (until I had to stop using 2 of the drivers on the main board) Firmware reboot + reinstall would expect to restore any current settings, all the timeouts don't inspire confidence. Problems are only on the main board all expansions and toolboards are fine. Timeouts and current issues are main board only. Certainly looks like it's dying one driver at a time.

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

              @kazolar if the idle current percentage is 50% then that would explain a drop in current from 2A to 1A. Have you really run 100s of hours using 3.6.0-rc.3 firmware before this issue started occurring?

              You might like to change the idle current percentage to 100% to make sure that the issue isn't that the firmware is incorrectly changing drivers to idle current setting.

              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

              kazolarundefined 1 Reply Last reply Reply Quote 0
              • kazolarundefined
                kazolar @dc42
                last edited by kazolar

                @dc42 I had run 100s of hours on rc1. I had zero issues, i.e only thing i changed was add szp and that is connected to a toolboard, and basically proceeded to print another set of long prints and the issues started. Also issues started gradually. First it could go 15 hrs before there was a problem, then 5, then 3, then 1. Rc3 was updated just yesterday. Also when the problem occurs, it says it's 2 amps, but I can move the carriage by hand and the stepper skips, if I power cycle, it reports 2 amps again, and now the carriage would have belts slip before the stepper skips. Also the current problem on the main board only and expansion boards go in an out of idle and maintain current. I.e 2 amps is 2 amps. I reproduced it, i have 1 carriage on main board, one on expansion, both say 2 amps, 1 i can move by hand, one i cant. Hence why the main board seemed sus. I guess if the problem re-occurs with the 1.02 version of hardware (i am switching all to 48v capable) then we can hunt for idle or current issue as it connect to firmware. I have a big project coming up, we'll see. Board is of warranty, seems something not isolated to 1 driver is malfunctioning.

                PS. If for whatever reason you want to investigate the main board, I won't be re-selling it, so it would go to e-waste, so if you want to cover shipping to UK, you can have it. All my expansion boards are perfectly functional, so I will try to sell them - since I'm switching to 1.02 versions to use 40-48v everywhere.

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

                  @kazolar M906 reports the configured current. The actual current may be lower than reported by M906 when the motors are not moving, either because of driver standstill current reduction, or because of RRF idle detection.

                  Did you ever run the test i described in this post https://forum.duet3d.com/post/355556 ? That checks for an unlikely error condition that the firmware doesn't check for.

                  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

                  kazolarundefined 1 Reply Last reply Reply Quote 0
                  • kazolarundefined
                    kazolar @dc42
                    last edited by

                    @dc42 yes M569 P5 R1 or in my case M569 P0.5 R1 shows no response -- I had the same issue reproduced on driver 3 also, I tried M569 P3 R1 and M569 P0.3 R1 -- no response. Tried on rc1 and rc3, no response.

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

                      @kazolar why are you using the R1 parameter with M569? That parameter is for use with external drivers, and should not produce a response.

                      OK, my bad, I made a mistake in my post. The command to use is M569.2 not M569.

                      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

                      kazolarundefined 1 Reply Last reply Reply Quote 0
                      • kazolarundefined
                        kazolar @dc42
                        last edited by kazolar

                        @dc42 ok, I plugged the 2nd carriage into driver 3 -- it's set for 2 amps, but I can move it by hand easily
                        This is what I have in config
                        M906 Y1600:1600 U1600:1600 X2000 V2000 W2000 A2000 Z2000:2000:2000:2000 E750:750:750:750 I50 ; set motor currents (mA) and motor idle factor in per cent
                        5/23/2025, 1:18:38 PM M569 P0.3

                        Drive 3 runs forwards, active low enable, timing fast, mode spreadCycle, ccr 0x10024, toff 4, tblank 2, thigh 200 (375.0 mm/sec), gs=39, iRun=31, iHold=21, current=990.234, hstart/hend/hdec 2/0/0, pos 232
                        It didn't apply -- it was ignored. When I had V mapped to driver 0, it was reporting 2 amps.

                        5/23/2025, 1:19:19 PM M906 V2000
                        5/23/2025, 1:19:26 PM M906 P0.3
                        Drive 3 runs forwards, active low enable, timing fast, mode spreadCycle, ccr 0x10024, toff 4, tblank 2, thigh 200 (375.0 mm/sec), gs=79, iRun=31, iHold=21, current=2005.859, hstart/hend/hdec 2/0/0, pos 232

                        5/23/2025, 2:06:08 PM M569.2 P0.3 R1
                        Register 0x01 value 0x00000005

                        M569.2 P0.3 R1 V7

                        M569.2 P0.3 R1
                        Register 0x01 value 0x00000000

                        I'll try to reproduce it, but it requires a print of some sort, I'll try doing a number of test cycles with V axis mapped to driver 3

                        dc42undefined jay_s_ukundefined 4 Replies Last reply Reply Quote 0
                        • dc42undefined
                          dc42 administrators @kazolar
                          last edited by

                          @kazolar thanks. This really doesn't sound like an issue with the stepper driver chip to me, which is why I'd prefer to identify the cause and rule out (or otherwise) a firmware issue.

                          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
                          • dc42undefined
                            dc42 administrators @kazolar
                            last edited by

                            @kazolar motors are not powered initially when you power up the system. if you enable the Y driver using M17 Y does the motor become hard to turn?

                            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
                            • jay_s_ukundefined
                              jay_s_uk @kazolar
                              last edited by jay_s_uk

                              @kazolar said in Dead driver or dying board?:

                              M906 Y1600:1600 U1600:1600 X2000 V2000 W2000 A2000 Z2000:2000:2000:2000 E750:750:750:750 I50 ; set motor currents (mA) and motor idle factor in per cent

                              This line is wrong. You can't set a drive current per motor on an axis, only on extruders.

                              This would be the correct line to use

                              M906 Y1600 U1600 X2000 V2000 W2000 A2000 Z2000 E750:750:750:750 I50 ; set motor currents (mA) and motor idle factor in per cent
                              

                              Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

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

                                @kazolar it's as @jay_s_uk says; however the extra values you provided in the M906 command should be ignored and the first value provided should be used for all motors on that axis.

                                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

                                kazolarundefined 2 Replies Last reply Reply Quote 0
                                • kazolarundefined
                                  kazolar @dc42
                                  last edited by

                                  @dc42 ok, all being the same -- Z wasn't ever the problem, and extra prams are ignored -- the issue was easier reproduce on my secondary X carriage (V axis) in this case there is no risk of damage to the machine -- carriage just doesn't home properly -- but as per usual it doesn't want to reproduce now. I'll keep trying today -- but gonna run out of time. New boards are coming tomorrow, so if the problem re-appears, I'll update the post.

                                  1 Reply Last reply Reply Quote 0
                                  • kazolarundefined
                                    kazolar @dc42
                                    last edited by

                                    @dc42 just wondering. Is it possible that M906 implementation has changed and the impact is only on the main board, not the expansion boards, so my extra params are screwing up current assignments? Hence setting current on the expansion boards is working fine, but main board -- it's not, or at least not correctly (timeouts in triple digits on the main board are still unexplained though)

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