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

    problems with setting current for step motor

    Scheduled Pinned Locked Moved
    General Discussion
    5
    18
    550
    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.
    • Kirylundefined
      Kiryl
      last edited by

      Hello

      We are facing a problem with settings the motor current.
      When the motor shaft is going to lift the lead, it starts messing steps and going down with a snap, then we measured the current and concluded that it was not enough

      The max value for our type of motor is 5 amps, so we set the current by M906 Z5000.
      Снимок экрана 2022-11-16 172415.png

      and when we started to measure current by multimeter, we saw something about 1 amp.
      photo_2022-11-16_17-22-51.jpg
      Can you help out with our problem?

      Best regards

      jay_s_ukundefined 1 Reply Last reply Reply Quote 0
      • jay_s_ukundefined
        jay_s_uk @Kiryl
        last edited by

        @Kiryl what board are you using? what firmware? what stepper motor is connected to Z?

        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

        Kirylundefined 1 Reply Last reply Reply Quote 0
        • Kirylundefined
          Kiryl @jay_s_uk
          last edited by

          @jay_s_uk we are using MB6HC and motor drivers 1HCL, firmfire version is 3.3, and motor is CS-M22323B

          dc42undefined jay_s_ukundefined 2 Replies Last reply Reply Quote 0
          • jens55undefined
            jens55
            last edited by

            Motor current is an AC value, you are measuring DC. Even if you were measuring AC current, chances are that you would not get a correct reading. I would also suggest you look at the maximum output current on the stepper board you are using. A Duet 6HC can drive a peak current of 6.3A but a Duet 2 maxes out at 2.4A peak.

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

              @Kiryl to measure the peak motor current you need to move the motor in very tiny steps with the driver in open loop mode. The current will change as the microstepping phase changes. Look for the peak value.

              The current is reduced when the motor is standing still or moving very slowly. By default the standstill current is 70% of the normal current.

              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

              Kirylundefined 1 Reply Last reply Reply Quote 0
              • jay_s_ukundefined
                jay_s_uk @Kiryl
                last edited by

                @Kiryl i didn't think the 1HCL was supported by 3.3? release notes indicate it wasn't supported until RRF 3.4.
                I suggest upgrading the 3.4.4 and making sure all boards run the same version of the firmware (which they probably aren't).
                And yes, you can't easily measure the stepper current with a multimeter. I use one of Zapta's fantastic stepper motor analyzers

                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
                • Kirylundefined
                  Kiryl @jens55
                  last edited by

                  @jens55 Our step driver can provide up to 6.3A, but why we can't change the output current?

                  jens55undefined 1 Reply Last reply Reply Quote 0
                  • Kirylundefined
                    Kiryl @dc42
                    last edited by

                    @dc42 Before that we measured the current consumption of the driver itself as DC, after your advice we measured the current of one phase of the motor in AC mode, and it turned out that there are about 4 amps. This means that the driver works properly and delivers the right current.

                    However we would like to increase duration time of ON state. We checked this with an oscilloscope and it turned out that the phase voltage is always the same and it does not increase even if the motor runs out of phase.
                    WhatsApp Image 2022-11-17 at 10.25.08 AM.jpeg
                    Is there any solution to this problem?

                    jens55undefined 1 Reply Last reply Reply Quote 0
                    • jens55undefined
                      jens55 @Kiryl
                      last edited by

                      @Kiryl, as I explained, you do not know what the driver output current is. You can not claim to know that you can't change the driver current unless you have valid data .... and you do not have that.

                      1 Reply Last reply Reply Quote 0
                      • jens55undefined
                        jens55 @Kiryl
                        last edited by

                        @Kiryl said in problems with setting current for step motor:

                        @dc42 Before that we measured the current consumption of the driver itself as DC, after your advice we measured the current of one phase of the motor in AC mode, and it turned out that there are about 4 amps. This means that the driver works properly and delivers the right current.

                        However we would like to increase duration time of ON state. We checked this with an oscilloscope and it turned out that the phase voltage is always the same and it does not increase even if the motor runs out of phase.
                        WhatsApp Image 2022-11-17 at 10.25.08 AM.jpeg
                        Is there any solution to this problem?

                        Ahhh, now there is data you can work with ....
                        Next you need to understand how a stepper driver works. I myself am fuzzy on the concept but to my understanding you will never see a change in voltage. A stepper driver is a current source and not a voltage source. Current is controlled (I think) by switching the drive on a phase on and off. If you increase drive current then the 'on' time increases. I do not fully understand how the stepping algorithms work and exactly how the driver gets the motor to do a micro step but I believe it too is a function of the amount of current supplied to a given phase. In other words, the amount of current that a particular coil gets is dependant on exactly where in the micro step sequence you are. If you set up to use only full steps than what you see on the oscilloscope will likely make more sense.
                        Anyway, I will step back as I am not the right person to comment on this subject.
                        Good luck .... (it would appear to me that you are very likely getting the right amount of drive current)

                        1 Reply Last reply Reply Quote 0
                        • jens55undefined
                          jens55
                          last edited by

                          An interesting experiment would be to change the supply voltage and watch how the 'on' time changes.

                          I also want to point out that while the picture of the oscilloscope is 'pretty', it doesn't really tell you much until you trigger a sweep at a precise and repeatable point, look at an entire full step or similarly longer stretch of time and then use the time delay to move a magnified view along the captured sweep. You should see that the current varies with each micro step and you will be able to find the point of maximum current, presumably on a full step boundary.
                          You would need to attach the probe to the current feedback resistor that the driver uses to determine how much current is flowing. If you simply look at the voltage supplied to the individual coil of the stepper motor, I would expect to see the 'on' time to vary with the micro step you are looking at with the longest 'on' time happening at a full step point.

                          To repeat myself - I haven't got a clue so take all of this with a good heaping of salt ...

                          Kirylundefined 1 Reply Last reply Reply Quote 0
                          • Kirylundefined
                            Kiryl @jens55
                            last edited by

                            @jens55 Thank you for your help. We will fight it further

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

                              Can you send M122 and M122 B# (where # is the canbus address of your expansion boards) in the gcode console in DWC and copy and paste the results here?

                              Have you updated the firmware yet?

                              Z-Bot CoreXY Build | Thingiverse Profile

                              Kirylundefined 1 Reply Last reply Reply Quote 0
                              • Kirylundefined
                                Kiryl @Phaedrux
                                last edited by

                                @Phaedrux this is what I get after sending M115 B51
                                "Duet EXP1HCL firmware version 3.4.0beta7+8 (2022-01-25 10:33:00)"
                                The M112 command is an emergency stop.

                                jay_s_ukundefined 1 Reply Last reply Reply Quote 0
                                • jay_s_ukundefined
                                  jay_s_uk @Kiryl
                                  last edited by jay_s_uk

                                  @Kiryl M122 not M112
                                  and as i've already commented, upgrade the firmware on all of them to 3.4.4 so they're all the same. You should not be mixing and matching firmware versions

                                  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

                                  Kirylundefined 1 Reply Last reply Reply Quote 0
                                  • Kirylundefined
                                    Kiryl @jay_s_uk
                                    last edited by

                                    @jay_s_uk oh yes, sorry.

                                    M122 B51 - "Diagnostics for board 51:
                                    Duet EXP1HCL firmware version 3.4.0beta7+8 (2022-01-25 10:33:00)
                                    Bootloader ID: SAME5x bootloader version 2.4 (2021-12-10)
                                    All averaging filters OK
                                    Never used RAM 52296, free system stack 2592 words
                                    Tasks: Move(notifyWait,0.0%,160) HEAT(notifyWait,0.0%,95) CanAsync(notifyWait,0.0%,69) CanRecv(notifyWait,0.0%,82) CanClock(notifyWait,0.0%,71) TMC(notifyWait,31.4%,360) CLSend(notifyWait,0.0%,152) MAIN(running,66.8%,400) IDLE(ready,0.0%,39) AIN(notifyWait,1.8%,265), total 100.0%
                                    Last reset 00:22:34 ago, cause: software
                                    Last software reset data not available
                                    Closed loop enabled: no, pre-error threshold: 0.00, error threshold: 0.00, encoder type none
                                    Driver 0: pos 0, 40.0 steps/mm,standstill, SG min 0, mspos 696, reads 15671, writes 19 timeouts 0, steps req 0 done 0
                                    Moves scheduled 0, completed 0, in progress 0, hiccups 0, step errors 0, maxPrep 0, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0
                                    Peak sync jitter -5/8, peak Rx sync delay 183, resyncs 0/0, no step interrupt scheduled
                                    VIN voltage: min 24.1, current 24.2, max 24.2
                                    V12 voltage: min 18.0, current 18.0, max 18.0
                                    MCU temperature: min 31.2C, current 31.2C, max 38.1C
                                    Last sensors broadcast 0x00000000 found 0 124 ticks ago, 0 ordering errs, loop time 0
                                    CAN messages queued 10869, send timeouts 0, received 6690, lost 0, free buffers 37, min 37, error reg 0
                                    dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 0"

                                    M122 - "=== Diagnostics ===
                                    RepRapFirmware for Duet 3 MB6HC version 3.4.1 (2022-06-01 21:09:01) running on Duet 3 MB6HC v1.01 or later (SBC mode)
                                    Board ID: 0JD2M-999AL-D2PS0-6JTDA-3SD6J-1NJ30
                                    Used output buffers: 1 of 40 (12 max)
                                    === RTOS ===
                                    Static ram: 151000
                                    Dynamic ram: 64632 of which 0 recycled
                                    Never used RAM 135040, free system stack 200 words
                                    Tasks: SBC(resourceWait:,0.5%,482) HEAT(notifyWait,0.0%,371) Move(notifyWait,0.0%,352) CanReceiv(notifyWait,0.0%,772) CanSender(notifyWait,0.0%,374) CanClock(delaying,0.0%,339) TMC(notifyWait,7.5%,92) MAIN(running,91.9%,1254) IDLE(ready,0.0%,30), total 100.0%
                                    Owned mutexes: HTTP(MAIN)
                                    === Platform ===
                                    Last reset 00:23:07 ago, cause: software
                                    Last software reset at 2022-09-17 06:26, reason: User, GCodes spinning, available RAM 134696, slot 0
                                    Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0044a000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a
                                    Error status: 0x00
                                    Step timer max interval 136
                                    MCU temperature: min 37.5, current 39.2, max 39.4
                                    Supply voltage: min 23.9, current 23.9, max 24.0, under voltage events: 0, over voltage events: 0, power good: yes
                                    12V rail voltage: min 12.2, current 12.2, max 12.2, under voltage events: 0
                                    Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0
                                    Events: 0 queued, 0 completed
                                    Driver 0: standstill, SG min 0, mspos 8, reads 53352, writes 11 timeouts 0
                                    Driver 1: standstill, SG min 0, mspos 8, reads 53352, writes 11 timeouts 0
                                    Driver 2: standstill, SG min 0, mspos 8, reads 53352, writes 11 timeouts 0
                                    Driver 3: standstill, SG min 0, mspos 8, reads 53352, writes 11 timeouts 0
                                    Driver 4: standstill, SG min 0, mspos 8, reads 53352, writes 11 timeouts 0
                                    Driver 5: standstill, SG min 0, mspos 8, reads 53353, writes 11 timeouts 0
                                    Date/time: 2022-09-17 06:49:26
                                    Slowest loop: 21.28ms; fastest: 0.03ms
                                    === Storage ===
                                    Free file entries: 10
                                    SD card 0 not detected, interface speed: 37.5MBytes/sec
                                    SD card longest read time 0.0ms, write time 0.0ms, max retries 0
                                    === Move ===
                                    DMs created 125, segments created 0, maxWait 0ms, bed compensation in use: none, comp offset 0.000
                                    === MainDDARing ===
                                    Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
                                    === AuxDDARing ===
                                    Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
                                    === Heat ===
                                    Bed heaters -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
                                    === GCodes ===
                                    Segments left: 0
                                    Movement lock held by null
                                    HTTP* is doing "M122" in state(s) 0
                                    Telnet is idle in state(s) 0
                                    File is idle in state(s) 0
                                    USB is idle in state(s) 0
                                    Aux is idle in state(s) 0
                                    Trigger* is idle in state(s) 0
                                    Queue is idle in state(s) 0
                                    LCD is idle in state(s) 0
                                    SBC is idle in state(s) 0
                                    Daemon is idle in state(s) 0
                                    Aux2 is idle in state(s) 0
                                    Autopause is idle in state(s) 0
                                    Code queue is empty
                                    === CAN ===
                                    Messages queued 6980, received 44466, lost 0, boc 0
                                    Longest wait 3ms for reply type 6024, peak Tx sync delay 382, free buffers 50 (min 49), ts 6940/6939/0
                                    Tx timeouts 0,0,0,0,0,0
                                    === SBC interface ===
                                    Transfer state: 5, failed transfers: 0, checksum errors: 0
                                    RX/TX seq numbers: 55494/55494
                                    SPI underruns 0, overruns 0
                                    State: 5, disconnects: 0, timeouts: 0 total, 0 by SBC, IAP RAM available 0x2b880
                                    Buffer RX/TX: 0/0-0, open files: 0
                                    === Duet Control Server ===
                                    Duet Control Server v3.4.1
                                    Code buffer space: 4096
                                    Configured SPI speed: 8000000Hz, TfrRdy pin glitches: 1
                                    Full transfers per second: 40.03, max time between full transfers: 57.9ms, max pin wait times: 55.8ms/14.7ms
                                    Codes per second: 0.02
                                    Maximum length of RX/TX data transfers: 3084/728"

                                    jay_s_ukundefined 1 Reply Last reply Reply Quote 0
                                    • jay_s_ukundefined
                                      jay_s_uk @Kiryl
                                      last edited by

                                      @Kiryl said in problems with setting current for step motor:

                                      firmware version 3.4.0beta7+8

                                      there have been a number of fixes specific to the 1HCL board since the above beta release. please upgrade

                                      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
                                      • Phaedruxundefined
                                        Phaedrux Moderator
                                        last edited by

                                        Update your firmware with the Pi terminal.

                                        https://docs.duet3d.com/en/User_manual/Machine_configuration/SBC_setup#h-6-update-firmware

                                        Then check the firmware versions for the boards again afterwards to see if they have been udpated.

                                        Z-Bot CoreXY Build | Thingiverse Profile

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