Driver 0 only moves in one direction
-
Hello, during an overnight print my print failed. Upon homing to restart the print I noticed my right Z axis was grinding. I rechecked my config and everything looked correct. In an attempt to troubleshoot I attached driver 0 to a spare stepper I have and noticed it only goes in one direction whether or not I try to move it + or -. I mean to say it moves as if I pressed + whether I press + or -.
I've performed all the troubleshooting I can think of and I cannot identify or resolve the issue.
I've reinstalled firmware, done a full power cycle, upgraded to beta, and checked for loose/damaged/corroded wiring.Here is the result of M122:
=== Diagnostics === RepRapFirmware for Duet 3 Mini 5+ version 3.3 (2021-06-15 21:46:11) running on Duet 3 Mini5plus WiFi (standalone mode) Board ID: WW6R1-M096U-D65J0-40KM8-KN03Z-HP1XJ Used output buffers: 3 of 40 (11 max) === RTOS === Static ram: 102724 Dynamic ram: 106168 of which 28 recycled Never used RAM 34784, free system stack 206 words Tasks: NETWORK(ready,11.2%,246) HEAT(delaying,0.0%,366) Move(notifyWait,0.1%,362) CanReceiv(notifyWait,0.0%,941) CanSender(notifyWait,0.0%,371) CanClock(delaying,0.0%,340) TMC(notifyWait,0.6%,116) MAIN(running,85.3%,426) IDLE(ready,1.9%,29) AIN(delaying,0.8%,274), total 100.0% Owned mutexes: WiFi(NETWORK) === Platform === Last reset 00:00:11 ago, cause: power up Last software reset at 2022-01-11 17:36, reason: User, GCodes spinning, available RAM 34784, slot 2 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00000000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 MCU revision 3, ADC conversions started 11976, completed 11976, timed out 0, errs 0 Step timer max interval 737 MCU temperature: min 31.4, current 33.1, max 33.4 Supply voltage: min 23.8, current 23.8, max 23.9, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0 Driver 0: position 0, standstill, SG min/max 0/0, read errors 0, write errors 0, ifcnt 9, reads 605, writes 9, timeouts 0, DMA errors 0 Driver 1: position 0, standstill, SG min/max 0/0, read errors 0, write errors 0, ifcnt 9, reads 605, writes 9, timeouts 0, DMA errors 0 Driver 2: position 0, standstill, SG min/max 0/0, read errors 0, write errors 0, ifcnt 9, reads 604, writes 9, timeouts 0, DMA errors 0 Driver 3: position 0, standstill, SG min/max 0/0, read errors 0, write errors 0, ifcnt 9, reads 604, writes 9, timeouts 0, DMA errors 0 Driver 4: position 0, standstill, SG min/max 0/0, read errors 0, write errors 0, ifcnt 9, reads 605, writes 9, timeouts 0, DMA errors 0 Driver 5: position 0, assumed not present Driver 6: position 0, assumed not present Date/time: 2022-01-11 17:36:47 Cache data hit count 23208718 Slowest loop: 1.37ms; fastest: 0.12ms === Storage === Free file entries: 10 SD card 0 detected, interface speed: 22.5MBytes/sec SD card longest read time 11.5ms, write time 0.0ms, max retries 0 === Move === DMs created 83, maxWait 0ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === AuxDDARing === Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters = 0 -1, chamberHeaters = -1 -1 === GCodes === Segments left: 0 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 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 106, received 0, lost 0, longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 17 (min 17), ts 60/0/0 Tx timeouts 0,0,59,0,0,45 last cancelled message type 4514 dest 127 === Network === Slowest loop: 10.35ms; fastest: 0.00ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions HTTP sessions: 1 of 8 - WiFi - Network state is active WiFi module is connected to access point Failed messages: pending 0, notready 0, noresp 0 WiFi firmware version 1.26 WiFi MAC address d8:bf:c0:14:e6:0c WiFi Vcc 3.38, reset reason Power up WiFi flash size 2097152, free heap 25864 WiFi IP address 192.168.1.151 WiFi signal strength -35dBm, mode 802.11n, reconnections 0, sleep mode modem Clock register 00002002 Socket states: 0 0 0 0 0 0 0 0
My config.g (Not set up for dual z since I was troubleshooting.)
; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Nick's Duet" ; set printer name ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0.0 S0 ; physical drive 0.0 goes backwards Y+ M569 P0.1 S0 ; physical drive 0.1 goes backwards Y M569 P0.2 S1 ; physical drive 0.2 goes backwards Z M569 P0.3 S0 ; physical drive 0.3 goes backwards E M569 P0.4 S0 ; physical drive 0.4 goes backwards X- M584 X0.4 Y0.1 Z0.2 E0.0 ; set drive mapping (Extruder mapped to driver 0 so I may use extrude/retract to test driver functionality.) M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z400.00 E130.00 ; set steps per mm M566 X900.00 Y900.00 Z60.00 E120.00 ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min) M201 X1000.00 Y1000.00 Z20.00 E500.00 ; set accelerations (mm/s^2) M906 X1000 Y1000 Z1000 E1000 ; set motor currents (mA) M84 S0 ; Disable motor idle current reduction ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minimum M208 X300 Y300 Z350 S0 ; set axis maximum ; Endstops M574 Y1 S1 P"io5.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin !io5.in M574 X1 S1 P"io6.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin !io6.in M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Z-Probe (BL Touch) M950 S0 C"io3.out" ; create servo pin 0 for BLTouch M558 P9 C"io3.in" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X48 Y-2 Z1.5 ; set Z probe trigger value, offset and trigger height M557 X40:260 Y40:260 S20 ; define mesh grid ; Heaters M308 S0 P"temp1" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp1 M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0 M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M308 S1 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin temp0 M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S280 ; set temperature limit for heater 1 to 280C ; Fans M950 F0 C"out5" Q500 ; create fan 0 on pin out5 and set its frequency M106 P0 C"Part Fan" S0 H-1 ; set fan 0 name and value. Thermostatic control is turned off M950 F1 C"out6" Q500 ; create fan 1 on pin out6 and set its frequency M106 P1 C"Hotend Fan" S1 H1 T45 ; set fan 1 name and value. Thermostatic control is turned on M950 F2 C"!out3+out3.tach" Q25000 ; create fan 2 on pin out3 and set its frequency M106 P2 C"MCU Fan" S0 H-1 ; set fan 2 name and value. Thermostatic control is turned off ; Tools M563 P0 S"Extruder Juan" D0 H1 F0 ; 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 ; Custom settings are not defined
-
How did you have driver 0 configured when you were testing? As an extruder?
How were you commanding movement? -
@phaedrux
I'm using the DWC dashboard to command movement. I've also tried G1, stepper still moves in one direction even if I tell it to go in the other direction; it's very strange.Yes, I had it mapped as the extruder, just so I could use Extrude/Retract to easily move the stepper to test the functionality of driver 0.
I'll also mention that I've been using this same dual-z setup for a few days now with no problems whatsoever.
Also, sorry, I don't know why I didn't think to include my original config. Here it is:
G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Nick's Duet" ; set printer name ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0.0 S0 ; physical drive 0.0 X+ M569 P0.1 S0 ; physical drive 0.1 Y M569 P0.2 S1 ; physical drive 0.2 Z M569 P0.3 S0 ; physical drive 0.3 E M569 P0.4 S0 ; physical drive 0.4 X- M584 X0.4 Y0.1 Z0.0:0.2 E0.3 ; set drive mapping M671 X0:300 Y0:0 S0.75 ; leadscrews at left and right of X axis M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z400.00 E130.00 ; set steps per mm M566 X900.00 Y900.00 Z60.00 E120.00 ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min) M201 X1000.00 Y1000.00 Z20.00 E500.00 ; set accelerations (mm/s^2) M906 X1000 Y1000 Z1000 E1000 ; set motor currents (mA) M84 S0 ; Disable motor idle current reduction M572 D0 S0.1 ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minimum M208 X300 Y300 Z350 S0 ; set axis maximum ; Endstops M574 Y1 S1 P"io5.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin !io5.in M574 X1 S1 P"io6.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin !io6.in M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Z-Probe (BL Touch) M950 S0 C"io3.out" ; create servo pin 0 for BLTouch M558 P9 C"io3.in" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X48 Y-2 Z1.59 ; set Z probe trigger value, offset and trigger height M557 X40:260 Y40:260 S20 ; define mesh grid ; Heaters M308 S0 P"temp1" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp1 M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0 M307 H0 B0 R0.493 C949.0 D12.60 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M308 S1 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin temp0 M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1 M307 H1 B0 R2.970 C183.5 D6.24 S1.00 V23.7 ; disable bang-bang mode for heater and set PWM limit M143 H1 S280 ; set temperature limit for heater 1 to 280C ; Fans M950 F0 C"out5" Q500 ; create fan 0 on pin out5 and set its frequency M106 P0 C"Part Fan" S0 H-1 ; set fan 0 name and value. Thermostatic control is turned off M950 F1 C"out6" Q500 ; create fan 1 on pin out6 and set its frequency M106 P1 C"Hotend Fan" S1 H1 T45 ; set fan 1 name and value. Thermostatic control is turned on M950 F2 C"!out3+out3.tach" Q25000 ; create fan 2 on pin out3 and set its frequency M106 P2 C"MCU Fan" S0 H-1 ; set fan 2 name and value. Thermostatic control is turned off ; Tools M563 P0 S"Extruder Juan" D0 H1 F0 ; 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 ; Custom settings are not defined
-
After further testing and troubleshooting, I am still unable to fix the issue.
I am currently back to using a single z axiz motor, but I'd like to be able to use both. -
@exquisite said in Driver 0 only moves in one direction:
After further testing and troubleshooting, I am still unable to fix the issue.
I am currently back to using a single z axiz motor, but I'd like to be able to use both.Did you try swapping the Z stepper connections to see if it was a wiring or driver issue?
Frederick
-
@fcwilt Yes, I used an entirely different spare stepper I have attached to driver 0 and I'm still getting the same problem.
-
@exquisite said in Driver 0 only moves in one direction:
@fcwilt Yes, I used an entirely different spare stepper I have attached to driver 0 and I'm still getting the same problem.
Then I would guess that the driver chip has failed.
You could as a test swap the assignment of X+ and E in your config file and swap the connections on the board. You could then test for correct X axis operation.
Frederick
-
@exquisite Do you have any way of checking voltages on the board?
It would be at least INTERESTING to check the driver 0 DIRection pin and see if it switches between forwards and backwards.
A volt meter would work.
The SCHEMATIC says there's a testpoint TP12 that is the Dirver #0 DIRection signal. Try moving forwards and backwarsd and see what voltages you get (with the other probe on ground)
-
@alankilian For sure, I'll gladly check that when I get home Tuesday. That would be fairly interesting to me too, I didn't even think to check that.
-
Alright so I cannot find my multimeter, so I am unable to check the output of the dir pin.
My issue still stands though, driver 0 seems to have developed a fault that I cannot resolve.
May I request a warranty replacement? -
when and where did you purchase the Duet?
-
@phaedrux
I bought it from Filastruder on Dec 13 2021. -
Have you tested with a motor with the shaft completely disconnected from any resistance?
-
I tested Driver 0 with a spare stepper I have that's not attached to anything, completely resistance-free. I still get the same result. If I tell the stepper to go right, it goes right. If it tell it to go left, it still goes right.
I know my spare stepper is good because I tested it with my old MKS Gen L.
-
Thanks. Please send an email to warranty@duet3d.com and CC your reseller. Include a link to this forum thread and the details of your original purchase. You'll receive a reply with a form to fill out.