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

    Odd behavior of Stepper motors on Duet 3.

    Scheduled Pinned Locked Moved Solved
    Duet Hardware and wiring
    5
    17
    619
    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.
    • R3Dundefined
      R3D
      last edited by

      Duet 3 v3.1.1 w/ SBC, all up to date.

      I am building a fairly complex tool-changing large format 3D printer and I have just gotten around to doing my first full power up and initial calibration and I have noticed that my Z motors were not moving at all. I checked wiring, no shorts, no crazy resistance values. I have tried swapping to different drivers and still no movement. all I get is a small pulse at the start then small clicks (like a full step) every 1-1.5 seconds. I have changed the current settings from 1000mA all they way to 3800mA (motors are rated to 4.2A) and nothing changes. I can run M122 diagnostics and I receive that the drivers are still in standstill mode. I thought maybe I had a bad board so I swapped it out with another new Duet 3 and Same issue. Then i thought maybe motor was bad, so I pulled some known good motors out of another printer and again same thing happened. Perhaps I have an issue in my config??? hopefully you guys can see something that I am just missing.

      1 Reply Last reply Reply Quote 0
      • R3Dundefined
        R3D
        last edited by

        === Diagnostics ===
        RepRapFirmware for Duet 3 MB6HC version 3.1.1 running on Duet 3 MB6HC v1.01 or later (SBC mode)
        Board ID: 08DJM-956L2-G43S8-6J9F6-3S46P-KU2LD
        Used output buffers: 1 of 40 (16 max)
        === RTOS ===
        Static ram: 154604
        Dynamic ram: 164116 of which 20 recycled
        Exception stack ram used: 320
        Never used ram: 74156
        Tasks: NETWORK(ready,1968) HEAT(blocked,1112) CanReceiv(suspended,3436) CanSender(suspended,1488) CanClock(blocked,1436) TMC(blocked,192) MAIN(running,4544) IDLE(ready,76)
        Owned mutexes:
        === Platform ===
        Last reset 00:25:21 ago, cause: software
        Last software reset at 2020-07-25 23:33, reason: User, spinning module LinuxInterface, available RAM 74144 bytes (slot 1)
        Software reset code 0x0010 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0444a000 BFAR 0x00000000 SP 0xffffffff Task MAIN
        Error status: 0
        MCU temperature: min 33.2, current 33.5, max 33.7
        Supply voltage: min 23.9, current 24.0, max 24.0, under voltage events: 0, over voltage events: 0, power good: yes
        12V rail voltage: min 12.1, current 12.2, max 12.2, under voltage events: 0
        Driver 0: standstill, reads 61196, writes 2 timeouts 0, SG min/max 0/50
        Driver 1: standstill, reads 61198, writes 0 timeouts 0, SG min/max not available
        Driver 2: standstill, reads 61198, writes 0 timeouts 0, SG min/max not available
        Driver 3: standstill, reads 61198, writes 0 timeouts 0, SG min/max not available
        Driver 4: standstill, reads 61198, writes 0 timeouts 0, SG min/max not available
        Driver 5: standstill, reads 61196, writes 2 timeouts 0, SG min/max 0/71
        Date/time: 2020-07-25 23:58:20
        Slowest loop: 5.83ms; fastest: 0.15ms
        === 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 ===
        Hiccups: 0(0), FreeDm: 375, MinFreeDm: 374, MaxWait: 0ms
        Bed compensation in use: none, comp offset 0.000
        === MainDDARing ===
        Scheduled moves: 2, completed moves: 2, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1
        === AuxDDARing ===
        Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 CDDA state: -1
        === Heat ===
        Bed heaters = 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = 1 -1 -1 -1
        === GCodes ===
        Segments left: 0
        Movement lock held by null
        HTTP* is ready with "M122 D0 S0 F0" 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.
        === Network ===
        Slowest loop: 0.89ms; fastest: 0.01ms
        Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions
        HTTP sessions: 0 of 8

        • Ethernet -
          State: disabled
          Error counts: 0 0 0 0 0
          Socket states: 0 0 0 0 0 0 0 0
          === CAN ===
          Messages sent 1826, longest wait 0ms for type 0
          === Linux interface ===
          State: 0, failed transfers: 0
          Last transfer: 17ms ago
          RX/TX seq numbers: 49358/49360
          SPI underruns 0, overruns 0
          Number of disconnects: 0
          Buffer RX/TX: 0/0-0
          === Duet Control Server ===
          Duet Control Server v3.1.1
          Code buffer space: 4096
          Configured SPI speed: 8000000 Hz
          Full transfers per second: 32.65
        1 Reply Last reply Reply Quote 0
        • R3Dundefined
          R3D
          last edited by

          ; General Prefences
          G90 ; send absolute coordinates...
          M83 ; ...but relative extruder moves
          M550 P"Duet 3" ; set printer name

          ; Drives
          M569 P10.0 S1 R0 T2.5:2.5:50:50 ; Physical drive 10.0 goes forward (X)
          M569 P11.0 S1 R0 T2.5:2.5:50:50 ; Physical drive 11.0 goes forward (Y)
          M569 P0.4 S1 ; Physical drive 0.4 goes forward (Z1)
          M569 P0.5 S1 ; Physical drive 0.5 goes forward (Z2)
          M569 P0.1 S1 ; Physical drive 0.1 goes forward (F0)
          M569 P0.2 S1 ; Physical drive 0.2 goes forward (F1)
          M569 P0.3 S1 ; Physical drive 0.3 goes forward (F2)
          M569 P20.0 S1 ; Physical drive 20.0 goes forward (E0)
          M569 P21.0 S1 ; Physical drive 21.0 goes forward (E1)
          M569 P22.0 S1 ; Physical drive 22.0 goes forward (E2)
          M569 P0.0 S1 ; Physical drive 0.0 goes forward (C)
          M584 X10.0 Y11.0 Z0.0:0.5 C0.1 E20.0:21.0:22.0:0.4:0.2:0.3 ; Set Drive Mapping
          M350 Z8 C8 I0 ; Configure Microstepping w/o Interpolation
          M350 E16:16:16:16:16:16 I1 ; Configure Microstepping w/ Interpolation
          M92 X80.00 Y80.00 Z1600.00:1600.00 C100.00 E208.70:208.70:208.70:111.69:111.69:111.69 ; Set Steps per mm
          M566 X600.00 Y600.00 Z12.00:12.00 C120.00 E120.00:120.00:120.00:120.00:120.00:120.00 ; Set maximum instantaneous speed changes (jerk) (mm/min)
          M203 X6000.00 Y6000.00 Z300.00:300.00 C3000.00 E2500.00:2500.00:2500.00:2500.00:2500.00:2500.00 ; Set Maximum Speeds (mm/min)
          M201 X500.00 Y500.00 Z20.00:20.00 C400.00 E2500.00:2500.00:2500.00:2500.00:2500.00:2500.00 ; Set Maximum Accelerations (mm/s^2)
          M906 Z1800 C400 E1100:1100:1100:1250:1250:1250 I100 ; Set Motor Currents (mA) and Motor Idle Factor (%)
          ;M84 S30 ; Set Idle Timeout

          ; Stall Detection
          M915 C S1 F0 H200 R4700 ; Set Stall detection settings for Coupler

          ; Axis Limits
          M208 X0 Y0 Z0 C0 S1 ; Set Axis Minima
          M208 X1550 Y1350 Z995 C500 S0 ; Set Axis Maxima

          ; Endstops
          M574 X1 S1 P"io1.in" ; Configure Active-high endstop for low end on X-axis via Pin io1.in
          M574 Y1 S1 P"io2.in" ; Configure Active-high endstop for low end on Y-axis via Pin io2.in

          ; Z-Probe
          M558 P5 C"io3.in" H5 F120 T7500 ; Set Z-probe type to switch and set dive-height and speeds
          G31 P500 X0 Y0 Z2.5 ; Set Z-probe trigger value, offset, and trigger height
          M557 X25:1525 Y50:1325 S125 ; Define Mesh-Grid size

          ; Heaters
          M308 S0 P"temp0" Y"thermistor" T200000 B3241 ; Configure sensor 0 as thermistor on pin temp0
          M950 H0 C"out0" T0 ; Create bed heater output on out0 and map it to sensor 0
          M307 H0 B1 S1.00 ; Enable Bang-Bang mode for the bed heater and set the PWM limit
          M140 H0 ; Map Heated bed to heater 0
          M143 H0 P0 S150 T0 ; Set temperature limit for heater 0 to 150C
          M308 S1 P"temp1" Y"thermistor" T100000 B4725 C7.06e-8 ; Configure sensor 1 as thermistor on pin temp1
          M950 H1 C"out1" T1 ; create chamber heater output on out 1 and map it to sensor 1
          M307 H1 B1 S1.00 ; Enable Bang-Bang mode for the chamber heater and set the PWM limit
          M141 H1 ; Map Chamber heater to heater 1
          M143 H1 P0 S80 T1 ; Set temperature limit for heater 1 to 80C
          M308 S2 P"20.temp0" Y"thermistor" T100000 B4725 C7.06e-8 ; Configure sensor 2 as thermistor on pin 20.temp0
          M950 H2 C"20.out0" T2 ; Create nozzle heater output on 20.out0 and map it to sensor 2
          M307 H2 B0 S1.00 ; disable Bang-Bang mode for heater 2 and set PWM limit
          M143 H2 P0 S285 T2 ; Set temperature limit on heater 2 to 285C
          M308 S3 P"21.temp0" Y"thermistor" T100000 B4725 C7.06e-8 ; Configure sensor 3 as thermistor on pin 21.temp0
          M950 H3 C"21.out0" T3 ; Create nozzle heater output on 21.out0 and map it to sensor 3
          M307 H3 B0 S1.00 ; disable Bang-Bang mode for heater 3 and set PWM limit
          M143 H3 P0 S285 T3 ; Set temperature limit on heater 3 to 285C
          M308 S4 P"22.temp0" Y"thermistor" T100000 B4725 C7.06e-8 ; Configure sensor 4 as thermistor on pin 22.temp0
          M950 H4 C"22.out0" T4 ; Create nozzle heater output on 22.out0 and map it to sensor 4
          M307 H4 B0 S1.00 ; disable Bang-Bang mode for heater 4 and set PWM limit
          M143 H4 S285 ; Set temperature limit on heater 4 to 285C

          ; Fans
          M950 F0 C"20.out2" Q500 ; Create fan 0 on pin 20.out2 and set its frequency
          M106 P0 S1 H2 T60 ; set fan 0 value. thermostatic control on. Mapped to heater 2
          M950 F1 C"21.out2" Q500 ; Create fan 1 on pin 21.out2 and set its frequency
          M106 P1 S1 H3 T60 ; set fan 1 value. thermostatic control on. Mapped to heater 3
          M950 F2 C"22.out2" Q500 ; Create fan 2 on pin 22.out2 and set its frequency
          M106 P2 S1 H4 T60 ; set fan 2 value. thermostatic control on. Mapped to heater 4
          M950 F3 C"!out4" Q500 ; Create fan 3 on pin out4 and set its frequency
          M106 P3 S1 H-1 ; set fan 3 value. thermostatic control off.
          M950 F4 C"out5" Q500 ; Create fan 4 on pin out5 and set its frequency
          M106 P4 S1 H-1 ; set fan 4 value. thermostatic control off.
          M950 F5 C"out6" Q500 ; Create fan 5 on pin out6 and set its frequency
          M106 P5 S1 H-1 ; set fan 5 value. thermostatic control off.

          ; Tools
          M563 P0 S"Tool 0" D0:3 H2 F0 ; Define Tool 0
          G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C
          M567 P0 E0.5:0.5 ; Set Mixing ratios for Tool 0
          M563 P1 S"Tool 1" D1:4 H3 F1 ; Define Tool 1
          G10 P1 S0 R0 ; Set initial tool 1 active and standby temperatures to 0C
          M567 P1 E0.5:0.5 ; Set mixing ratios for tool 1
          M563 P2 S"Tool 2" D2:5 H4 F2 ; Define Tool 2
          G10 P2 S0 R0 ; Set initial tool 2 active and standby temperatures to 0C
          M567 P2 E0.5:0.5 ; Set mixing ratios for tool 2

          ; Tool Offsets
          G10 P0 X0 Y0 Z-5 ; Set Tool 0 Axis offsets
          G10 P1 X0 Y0 Z-5 ; Set Tool 1 Axis offsets
          G10 P2 X0 Y0 Z-5 ; Set Tool 2 Axis offsets

          ; Deselect all Tools
          T-1

          ; Miscellaneous
          M376 H15 ; Bed compensation taper height
          M575 P1 S1 B57600 ; Enables Paneldue
          M501 ; load saved parameters from non-volatile memory (config-override.g)
          M911 S20 R22.5 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss

          Phaedruxundefined JoergS5undefined 2 Replies Last reply Reply Quote 0
          • Dad003undefined
            Dad003
            last edited by

            i had some weird behavior on my Z axis not too long ago , i fixed my problem by swapping the stepper motor cable , cable was fine but for some weird reason wasn't working as intended , if you havent tried a different calbe try it it might fix your problem

            R3Dundefined 1 Reply Last reply Reply Quote 0
            • R3Dundefined
              R3D @Dad003
              last edited by

              @Dad003 we tried that. When i said i tested additional motors i meant we did some with flying leads and some with new short wires. The 4 on the printer are not an easy swap as they are coupled to the screws and under our 1500lb printer, so we just made new connectors and basically have a test bench with the new motors sitting on the ground next to the Duet 3 so we can test them.

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

                The clicking sound is usually an indication that the motor phases are wired incorrectly.

                Verify that the phases are wired correctly

                https://duet3d.dozuki.com/Wiki/Choosing_and_connecting_stepper_motors#Section_Identifying_the_stepper_motor_phases

                Z-Bot CoreXY Build | Thingiverse Profile

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

                  @R3D said in Odd behavior of Stepper motors on Duet 3.:

                  M584 X10.0 Y11.0 Z0.0:0.5 C0.1 E20.0:21.0:22.0:0.4:0.2:0.3 ; Set Drive Mapping

                  Which drivers are you actually using for Z? In the M584 command it appears you are using drivers 0 and 5, but in the comments of M569 it says 0.4 and 0.5 are for Z and 0.0 is for C.

                  Z-Bot CoreXY Build | Thingiverse Profile

                  1 Reply Last reply Reply Quote 0
                  • R3Dundefined
                    R3D
                    last edited by

                    I was using 0.4 and 0.5, but i have been switching them up to make sure it wasn't a bad driver. once the issue is fixed I will switch them all back to the original positions.

                    1 Reply Last reply Reply Quote 0
                    • R3Dundefined
                      R3D
                      last edited by

                      I have swapped the wires around to all 8 possible ways without the driver shorting to ground i.e. A+,A-,B+,B- and A-,A+,B+,B- and A-,A+,B-,B+ and A+,A-,B-,B+ and B+,B-,A+,A- and B+,B-,A-,A+ and B-,B+,A-,A+, and B-,B+,A+,A-. all combinations should work but none of them provided any rotation at all.....running out of things to test......starting to pull my hair out trying to figure this out.

                      Hytekundefined 1 Reply Last reply Reply Quote 0
                      • Hytekundefined
                        Hytek @R3D
                        last edited by

                        @R3D I can't see anything to suggest you have done this so...
                        Can you operate a stepper off the suspect drive on the bench? For clarity, that would be a different stepper motor/s with new wiring loom and no load.

                        Also, bare in mind I haven't seen your build so I don't know how feasible this suggestion is. But if you send a move command to the problem stepper/s and manipulate the wiring harness, particularly near corners, is there any change?

                        R3Dundefined 1 Reply Last reply Reply Quote 0
                        • R3Dundefined
                          R3D @Hytek
                          last edited by

                          @Hytek I have been, see picture. I have disconnected all other drives and I am testing one drive with more than one motor in every configuration I listed before, all without rotation. 20200726_210958 (1).jpg

                          Hytekundefined 1 Reply Last reply Reply Quote 0
                          • Hytekundefined
                            Hytek @R3D
                            last edited by

                            @R3D Have you tested any of the failed stepper motors back in a known good source, i.e. the other printer you mentioned. This is just a precautionary measure before the next suggestion in case the stepper has taken damage.

                            If you plug your Z stepper/s into X or Y driver do they become active?

                            Sorry I can't help on the firmware side, I'm new to Duet myself

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

                              I would try using a very stripped down config.g that only has the commands for the main X Y Z E drivers. Get a fresh test config from the web config tool just to test. With so many drives etc it can quickly get jumbled.

                              https://configtool.reprapfirmware.org/Start

                              Z-Bot CoreXY Build | Thingiverse Profile

                              1 Reply Last reply Reply Quote 0
                              • R3Dundefined
                                R3D
                                last edited by

                                So I created a bare bones config and I can now move the stepper motors...does that mean i have too much going on in my config that the Duet 3 cant handle it all?

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

                                  Not necessarily, but it does mean there is something in your drives block that isn't right. Add one drive at a time and configure all it's parameters for all of the commands and test it works. Eat an elephant one bite at a time.

                                  Z-Bot CoreXY Build | Thingiverse Profile

                                  1 Reply Last reply Reply Quote 0
                                  • R3Dundefined
                                    R3D
                                    last edited by

                                    hmmmm, alright. looks like another long night for me.

                                    1 Reply Last reply Reply Quote 0
                                    • JoergS5undefined
                                      JoergS5 @R3D
                                      last edited by JoergS5

                                      @R3D said in Odd behavior of Stepper motors on Duet 3.:

                                      M584 X10.0 Y11.0 Z0.0:0.5 C0.1 E20.0:21.0:22.0:0.4:0.2:0.3 ; Set Drive Mapping
                                      M350 Z8 C8 I0 ; Configure Microstepping w/o Interpolation
                                      M350 E16:16:16:16:16:16 I1 ; Configure Microstepping w/ Interpolation
                                      M92 X80.00 Y80.00 Z1600.00:1600.00 C100.00 E208.70:208.70:208.70:111.69:111.69:111.69 ; Set Steps per mm
                                      M566 X600.00 Y600.00 Z12.00:12.00 C120.00 E120.00:120.00:120.00:120.00:120.00:120.00 ; Set maximum instantaneous speed changes (jerk) (mm/min)
                                      M203 X6000.00 Y6000.00 Z300.00:300.00 C3000.00 E2500.00:2500.00:2500.00:2500.00:2500.00:2500.00 ; Set Maximum Speeds (mm/min)
                                      M201 X500.00 Y500.00 Z20.00:20.00 C400.00 E2500.00:2500.00:2500.00:2500.00:2500.00:2500.00 ; Set Maximum Accelerations (mm/s^2)
                                      M906 Z1800 C400 E1100:1100:1100:1250:1250:1250 I100 ; Set Motor Currents (mA) and Motor Idle Factor (%)

                                      The XYZ axes M584 is correct, but M92, M566, M203, M201 it is not possible to define multiple Z values. XYZ values are defined for those M G-Codes per axis, only one value each. Only for the extruders multiple values are allowed, because the are interpreted as if they are separate axes. deckingman explained it nicely, but I cannot find the link in the forum.
                                      Found it: https://forum.duet3d.com/topic/17153/duet3-expansion-board-3hc-no-can-connection/31?_=1592929742064

                                      Wiring stepper (stepper disconnected from the driver!): there is a simple method to find the pairs: keep all 4 wires separated, turn the shaft to find out the torque force. Then short two wires and if you cannot turn the motor any more, they belong together. You cannot find out the rotation direction with this method, however.

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