X Axis Stopped funtioning

  • I'm new to the duet, but have been in 3D printing for about 4-5 years now. I moved from RAMPs and similar controllers running Marlin FW. I love the board and, while different, it was quite easy to get up and running. I did all the normal calibrations and such and have been printing for over a week now, with great results, but then all the sudden, in the middle of a print, the X axis skips several steps (usually in the negative direction).

    I re-homed the axis and it functioned fine, so I considered that maybe it caught a blurb on the print and skipped. So I started a new print and it didn't even finish the first layer before skipping a lot. I cleared the area and tried to move the X axis on its own from the web interface and it was very loud and choppy. I verified the belt is not loose and that it is just the motor humming like it is missing the steps. I shut off the idle hold to the printer and moved the axis by hand and it moved easily as it always has. So then I tried homing it and the axis just made the grinding noise I had been hearing and barely moved. At this point, I am thinking that the motor burnt or had an issue, so I swapped it with a new one. I made sure the coils are correctly wired and connected and tried again but got the same result. I double checked all wires were good and coils connected correctly again but can't seem to find the issue. Is it possible the driver has gone out? As I said, it had been printing fine for over a week straight (at least 10 hours a day on 1.75 hr prints), and now I can't do simple 10mm movements or home the axis. Any help would be appreciated.

  • administrators

    @enix can you post M122 results please, while the X axis is causing issues.

  • 6:04:11 PMM122
    === Diagnostics ===
    Used output buffers: 3 of 32 (9 max)
    === Platform ===
    RepRapFirmware for Duet 2 WiFi/Ethernet version 1.21 running on Duet WiFi 1.02 or later
    Board ID: 08DGM-956GU-DJ3SN-6J1FA-3SJ6Q-KAN3F
    Static ram used: 16152
    Dynamic ram used: 100408
    Recycled dynamic ram: 2224
    Stack ram used: 1224 current, 4400 maximum
    Never used ram: 7888
    Last reset 00:04:31 ago, cause: power up
    Last software reset at 2018-06-07 21:00, reason: User, spinning module GCodes, available RAM 7888 bytes (slot 1)
    Software reset code 0x0003 HFSR 0x00000000, CFSR 0x00000000, ICSR 0x0441f000, BFAR 0xe000ed38, SP 0xffffffff
    Error status: 0
    Free file entries: 10
    SD card 0 detected, interface speed: 20.0MBytes/sec
    SD card longest block write time: 0.0ms
    MCU temperature: min 29.7, current 35.7, max 36.0
    Supply voltage: min 12.2, current 12.3, max 12.4, under voltage events: 0, over voltage events: 0
    Driver 0: standstill, SG min/max not available
    Driver 1: standstill, SG min/max not available
    Driver 2: standstill, SG min/max not available
    Driver 3: standstill, SG min/max not available
    Driver 4: standstill, SG min/max not available
    Date/time: 2018-06-08 18:04:10
    Slowest main loop (seconds): 0.014005; fastest: 0.000046
    === Move ===
    MaxReps: 1, StepErrors: 0, LaErrors: 0, FreeDm: 240, MinFreeDm 239, MaxWait: 3670778439ms, Underruns: 0, 0
    Scheduled moves: 2, completed moves: 2
    Bed compensation in use: none
    Bed probe heights: 0.000 0.000 0.000 0.000 0.000
    === Heat ===
    Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1
    Heater 1 is on, I-accum = 0.0
    === GCodes ===
    Segments left: 0
    Stack records: 1 allocated, 0 in use
    Movement lock held by null
    http is idle in state(s) 0
    telnet is idle in state(s) 0
    file is idle in state(s) 0
    serial is idle in state(s) 0
    aux is idle in state(s) 0
    daemon is idle in state(s) 0
    queue is idle in state(s) 0
    autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Responder states: HTTP(1) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0)
    HTTP sessions: 1 of 8

    • WiFi -
      Network state is running
      WiFi module is connected to access point
      Failed messages: pending 0, notready 0, noresp 0
      WiFi firmware version 1.21RC4(08b3)
      WiFi MAC address 5c:cf:7f:76:69:b6
      WiFi Vcc 3.33, reset reason Turned on by main processor
      WiFi flash size 4194304, free heap 16064
      WiFi IP address
      WiFi signal strength -38dBm, reconnections 0, sleep mode modem
      Socket states: 2 0 0 0 0 0 0 0
      === Expansion ===

  • I got that just after trying to home the X axis only. A window popped up with "Error: G0/G1: insufficient axes homed" after it stopped making the grinding noise.

  • And here is my config.g file. In case it helps...

    ; Configuration file for Duet WiFi (firmware version 1.20 or newer)
    ; executed by the firmware on start-up
    ; generated by RepRapFirmware Configuration Tool on Sun Jun 03 2018 15:43:28 GMT-0400 (Eastern Daylight Time)

    ; General preferences
    G90 ; Send absolute coordinates...
    M83 ; ...but relative extruder moves

    ; Network
    M550 PBob ; Set machine name
    M551 Preprap ; Set password
    M552 S1 ; Enable network

    M586 P0 S1 ; Enable HTTP
    M586 P1 S0 ; Disable FTP
    M586 P2 S0 ; Disable Telnet

    ; Drives
    M569 P0 S0 ; Drive 0 goes backwards
    M569 P1 S1 ; Drive 1 goes forwards
    M569 P2 S0 ; Drive 2 goes backwards
    M569 P3 S0 ; Drive 3 goes backwards
    M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation
    M92 X100 Y100 Z405.887 E150.96 ; Set steps per mm
    M566 X720 Y720 Z12 E120 ; Set maximum instantaneous speed changes (mm/min)
    M203 X6000 Y6000 Z180 E1200 ; Set maximum speeds (mm/min)
    M201 X1000 Y1000 Z250 E250 ; Set accelerations (mm/s^2)
    M906 X1000 Y1000 Z1000 E1000 I30 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Axis Limits
    M208 X0 Y0 Z0 S1 ; Set axis minima
    M208 X250 Y250 Z320 S0 ; Set axis maxima

    ; Endstops
    M574 X1 Y1 S1 ; Set active high endstops

    ; Z-Probe
    M574 Z1 S2 ; Set endstops controlled by probe
    M558 P1 H4 F120 T6000 ; Set Z probe type to unmodulated and the dive height + speeds
    G31 P500 X-2 Y-19 Z0.35 ; Set Z probe trigger value, offset and trigger height
    M557 X15:235 Y15:235 S20 ; Define mesh grid

    ; Heaters
    M305 P0 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 0
    M143 H0 S85 ; Set temperature limit for heater 0 to 85C
    M305 P1 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 1
    M143 H1 S260 ; Set temperature limit for heater 1 to 260C

    ; Fans
    M106 P0 S0.5 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P2 S1 I0 F500 H1 T80 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on

    ; Tools
    M563 P0 D0 H1 ; Define tool 0
    G10 P0 X0 Y0 Z0 ; Set tool 0 axis offsets
    G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C

    ; Automatic saving after power loss is not enabled

    ; Custom settings are not configured

    ; Miscellaneous
    T0 ; Select first tool

  • administrators

    The most like causes are a bad crimp connection in the motor cable, or a faulty driver. It's rare for stepper motors to develop electrical issues, although occasionally they seize up due to swarf.

    To test this, with power off swap the X and Y motor connectors over where they plug into the Duet. Power up and send M564 H0 to allow jogging before homing. Then try jogging the X and Y motors:

    • When you ask to jog X, it will jog the Y motor, which is plugged into the X output. If that works, the problem is the X motor cable. If it shows the same problem, then the problem is most likely with the driver.
    • When you ask to jog Y, it will jog the X motor. If that doesn't work, the problem is the cable.

    If it looks like a driver problem, you can use M564 X4 Y1 Z2 E3 in config.g (before any M906 or M350 commands) to map the X motor to the E1 driver, and plug the X motor cable into the E1 output.

    If these tests confirm that the X driver is faulty, please ask your supplier to repair or replace the Duet under warranty.

  • Thank you very much for the reply. I don't know why I didn't think to try that, probably the frustration of the issue. Either way, that helped me solve it. Turns out it was a wire issue. I couldn't get any sort of continuity variance, but changing it out for a new one fixed the issue. Thanks again.