Intermittent extruder loss and stutters. 6HC/toolboard/RRF3.2
-
Thank you both for the help.
@Phaedrux I have changed them and tested with no difference.
@dc42 I have tried with 3.3.1beta on both boards, and I now have issues with the toolboard driver in all scenarios now. I cannot get it to extrude at all with firmware anymore. I do get some response from the driver, but it only vibrates, and does not move. I have connected a separate motor to it for testing, and it will not turn the motor, just jitters. To me that says that CAN is working, and there is an issue with the driver on the toolboard, or something in the config/setup that is causing it. I have tried changing the driver current up and down with no significant change to the symptoms. I am pretty sure it is wired correctly, as it was working fine two days ago. The issue presented after a few test prints that were working fine, yet had a step loss due to high XY accel settings. After adjusting the accel settings, the extruder drive started only working in DWC, and after this latest update to RRF3.3.1beta, I have lost all torque from the driver in all scenarios. At least I get some kind of response when commanded, but only jitters.
My M122s after clearing and having the issue present itself, as you requested:
m122
=== Diagnostics ===
RepRapFirmware for Duet 3 MB6HC version 3.3beta1 running on Duet 3 MB6HC v0.6 or 1.0 (SBC mode)
Board ID: 08DJM-956L2-G43S8-6JTDL-3SD6J-1S3YF
Used output buffers: 1 of 40 (11 max)
=== RTOS ===
Static ram: 148196
Dynamic ram: 61276 of which 708 recycled
Never used RAM 140492, free system stack 126 words
Tasks: Linux(ready,143) HEAT(delaying,302) CanReceiv(notifyWait,799) CanSender(notifyWait,359) CanClock(delaying,351) TMC(notifyWait,20) MAIN(running,924) IDLE(ready,20)
Owned mutexes: HTTP(MAIN)
=== Platform ===
Last reset 00:03:40 ago, cause: power up
Last software reset at 2021-03-02 19:36, reason: User, GCodes spinning, available RAM 140492, slot 1
Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task Linu Freestk 0 n/a
Error status: 0x00
Aux0 errors 0,0,0
Aux1 errors 0,0,0
MCU temperature: min 44.1, current 45.7, max 45.8
Supply voltage: min 30.0, current 30.3, max 30.6, under voltage events: 0, over voltage events: 0, power good: yes
12V rail voltage: min 12.1, current 12.1, max 12.1, under voltage events: 0
Driver 0: position 0, standstill, reads 37576, writes 4 timeouts 0, SG min/max 0/1023
Driver 1: position 0, standstill, reads 37576, writes 4 timeouts 0, SG min/max 0/1023
Driver 2: position 2620, standstill, reads 37576, writes 4 timeouts 0, SG min/max 0/771
Driver 3: position 0, standstill, reads 37576, writes 4 timeouts 0, SG min/max 0/908
Driver 4: position 0, standstill, reads 37575, writes 4 timeouts 0, SG min/max 0/799
Driver 5: position 0, standstill, reads 37575, writes 4 timeouts 0, SG min/max 0/809
Date/time: 2021-03-02 19:55:57
Slowest loop: 84.44ms; fastest: 0.04ms
=== 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, maxWait 38383ms, bed compensation in use: none, comp offset 0.000
=== MainDDARing ===
Scheduled moves 707, completed moves 707, 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 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
Heater 0 is on, I-accum = 0.7
Heater 1 is on, I-accum = 0.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 1462, send timeouts 0, received 1276, lost 0, longest wait 5ms for reply type 6029, peak Tx sync delay 58715, free buffers 49 (min 48)
=== SBC interface ===
State: 4, failed transfers: 0
Last transfer: 2ms ago
RX/TX seq numbers: 7118/7118
SPI underruns 0, overruns 0
Number of disconnects: 0, IAP RAM available 0x2d410
Buffer RX/TX: 0/0-0
=== Duet Control Server ===
Duet Control Server v3.2.0
Code buffer space: 4096
Configured SPI speed: 8000000 Hz
Full transfers per second: 39.04
Maximum length of RX/TX data transfers: 2820/1592
File /opt/dsf/sd/gcodes/VC_test.gcode is selected, pausedm122 b121
Diagnostics for board 121:
Duet TOOL1LC firmware version 3.3beta1 (2021-02-14 16:34:04)
Bootloader ID: not available
Never used RAM 3976, free system stack 0 words
Tasks: Move(notifyWait,90) HEAT(delaying,91) CanAsync(notifyWait,63) CanRecv(notifyWait,75) CanClock(notifyWait,67) TMC(delaying,56) MAIN(running,254) AIN(delaying,63)
Last reset 00:03:36 ago, cause: power up
Last software reset data not available
Driver 0: position 43474, 426.0 steps/mm, standstill, SG min/max 0/48, read errors 0, write errors 0, ifcnt 12, reads 46552, writes 1, timeouts 0, DMA errors 0, steps req 56254 done 56254
Moves scheduled 531, completed 531, in progress 0, hiccups 0, step errors 0, maxPrep 490, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0
Peak sync jitter 8, peak Rx sync delay 206, resyncs 0, no step interrupt scheduled
VIN: 30.2V
MCU temperature: min 26.8C, current 40.4C, max 40.5C
Ticks since heat task active 17, ADC conversions started 215389, completed 215388, timed out 0
Last sensors broadcast 0x00000002 found 1 24 ticks ago, loop time 0
CAN messages queued 1162, send timeouts 0, received 1388, lost 0, free buffers 36, min 36, error reg 0
dup 0, oos 0, bm 0, wbm 0I am going to redo my SD now and test in standalone mode, although I am starting to question the toolboard's driver.
-
@hamel said in Intermittent extruder loss and stutters. 6HC/toolboard/RRF3.2:
I have connected a separate motor to it for testing, and it will not turn the motor, just jitters.
Are you sure your separate motor has the same wiring as the one you use on the extruder? I.e., phase pairs neighboring. Different motors by different manufacturers may have a different order of wires (can be fixed by changing the order of crimps in the connector).
-
@oliof Yes, the coil pairs are the same as the one that I tested with. Both act the same, and no wiring was changed since it was working properly.
-
@dc42 SD imager is giving me trouble, so I will make the SD at home tonight and test it tomorrow.
For a test I assigned the toolboard driver to the x axis, and I also get the same performance (lack of any torque to even move the motor alone).
-
Thanks @hamel, it does sound that there is a problem either with the driver or the motor connection. When you tested it with a different motor, did you use the same connector to plug into the tool board motor connector as when using the original motor, or did you use a different connector?
-
@dc42 Same connector. I have another I can test with. I was initially leading towards not being a wiring issue, as I was able to extrude with DWS earlier in a pause when it was not extruding in the print, but now with no function at all I agree that I should swap them out. I have a few here for my toolchanger that are known good. I'll report back tomorrow with a standalone SD test and a swap of the wires.
-
All, I just wanted to give an update. Standalone changed nothing. New cable changed nothing. It seems that my motor was the curprit. It must have been going bad, and something about the speed of the commands sent by DWC allowed it to work a little until it finally failed. Dead coil. New one on the way. Thanks for all of the help looking into this.
-
Thanks for the update, I'm glad you solved it.
It's rare for a motor coil to burn out, unless you have run it above its rated current for an extended period. My guess is that if you take the motor apart, you will find a bad connection between one of the windings and the connector if it has one, or the leads if it doesn't.
-
@dc42 Probably just a coincidence, but I mentioned in another thread that I've had 3 of my 6 extruder motors connected to expansion boards fail in the last 18 months. When the last one failed, I assumed that it was a bad batch so I replaced all 6 and I haven't had a failure since. Can you think of any reason other than I'm just unlucky and/or it was probably a bad batch of motors? (Motor currents always set to 85% of quoted rated current).
-
I did set to rated current during testing, but never over. I usually stick to 80% rated current, but I got desperate when troubleshooting and shot it up to 100% for a few tests. That might have done it in, as it isn't an especially nice stepper. I did tear it down, and one winding had a break about 5mm from the connection to the leads. I'll see if I can save it.
I have never had a motor burn up, so I didn't really focus on that. Thank you all for the prompt help in diagnosing this rather stupid problem.
-
@hamel said in Intermittent extruder loss and stutters. 6HC/toolboard/RRF3.2:
I did set to rated current during testing, but never over. I usually stick to 80% rated current, but I got desperate when troubleshooting and shot it up to 100% for a few tests. That might have done it in, as it isn't an especially nice stepper. I did tear it down, and one winding had a break about 5mm from the connection to the leads. I'll see if I can save it.
I have never had a motor burn up, so I didn't really focus on that. Thank you all for the prompt help in diagnosing this rather stupid problem.
Running at rated current should not cause a problem, because the rated current is normally quoted with both phases energised, whereas microstepping drivers only energise one phase at the full peak current at a time (and currents set by M906 in RRF are peak currents).
If the break was caused by excessive current, I would expect to see blackening of the wires.
-
Well, the issue has come back. Same symptoms. I get really bad motor movement with the gcode files while printing, but I can pause and extrude just fine with DWC. Any idea what I should be looking at next? I have swapped the motor to a much more powerful one that I just had lying around, and it can really crank out the extrudes in DWC, but when I go to print, it just stutters and skips steps. I have dropped the acceleration and jerk to 500, and I still have the issue. I do not think it is the settings, as I can extrude with those settings in DWC with no issue. When printing, I do not think the toolboard driver is giving good commands, but I have no idea why that would be.
; Configuration file for Duet 3 (firmware version 3)
; executed by the firmware on start-up; General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Duet 3" ; set printer name
M669 K1 ; select CoreXY modeG4 S1 ;wait for expansion boards to start
; Drives
M569 P121.0 S1 ; physical drive 121.0 goes forwards
M569 P0.0 S1 ; physical drive 0.0 goes forwards
M569 P0.1 S1 ; physical drive 0.1 goes forwards
M569 P0.2 S1 ; physical drive 0.2 goes forwards
M569 P0.3 S0 ; physical drive 0.2 goes forwards
M569 P0.4 S0 ; physical drive 0.2 goes forwards
M569 P0.5 S1 ; physical drive 0.2 goes forwardsM584 X0.1 Y0.0 Z0.2:0.3:0.5:0.4 E121.0 ; set drive mapping
M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
M92 X98.00 Y98.00 Z400.00 E426.00 ; set steps per mm
M566 X2500.00 Y2500.00 Z200.00 E200.00 ; set maximum instantaneous speed changes (mm/min)
M203 X10000.00 Y10000.00 Z8000.00 E3000.00 ; set maximum speeds (mm/min)
M201 X3000.00 Y3000.00 Z200.00 E200.00 ; set accelerations (mm/s^2)
M906 X1100 Y1100 Z1000 E1200 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout; Axis Limits
M208 X-200 Y-200 Z-1 S1 ; set axis minima
M208 X200 Y200 Z400 S0 ; set axis maxima; Leadscrew Locations
M671 X-322.5:-322.5:262.5:262.5 Y-250:300:300:-250 S20 F1.2 ; Z leadscrew positions; Endstops
M574 X2 S1 P"io0.in" ; X min active low endstop switch
M574 Y2 S1 P"io1.in" ; Y min active low endstop switch
M574 Z1 S2; Z-Probe
M558 P8 C"^!121.io0.in" H5 F300 T16000 ; set Z probe type to unfiltered switch and the dive height + speeds
M558 H15 ;*** Remove this line after delta calibration has been done and new delta parameters have been saved
G31 P500 X0 Y0 Z1 ; set Z probe trigger value, offset and trigger height
M556 S50 X0 Y0 Z0 ; set orthogonal axis compensation parameters
M557 X-200:200 Y-200:200 S100 ; define mesh grid; Heaters
M308 S0 P"temp3" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp3
M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0
M307 H0 B0 S0.50 ; disable bang-bang mode for the bed heater and set PWM limit
M140 H0 ; map heated bed to heater 0
M143 H0 S150 ; set temperature limit for heater 0 to 120C
M308 S1 P"121.temp0" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin 121.temp0
M950 H1 C"nil"
M950 H1 C"121.out0" T1 ; create nozzle heater output on 121.out0 and map it to sensor 1
M307 H1 B0 S0.5 ; disable bang-bang mode for heater and set PWM limit
M143 H1 S350 ; set temperature limit for heater 1 to 350C; Fans
M950 F0 C"nil"
M950 F0 C"121.out2" Q500 ; create fan 0 on pin 121.out1 and set its frequency
M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
M950 F1 C"121.out1" Q500 ; create fan 1 on pin 121.out2 and set its frequency
M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on; Tools
M563 P0 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
; Miscellaneous
M501 ; load saved parameters from non-volatile memory
T0 ; select first toolm122
=== Diagnostics ===
RepRapFirmware for Duet 3 MB6HC version 3.3beta1 running on Duet 3 MB6HC v0.6 or 1.0 (SBC mode)
Board ID: 08DJM-956L2-G43S8-6JTDL-3SD6J-1S3YF
Used output buffers: 1 of 40 (10 max)
=== RTOS ===
Static ram: 148196
Dynamic ram: 61484 of which 500 recycled
Never used RAM 140492, free system stack 121 words
Tasks: Linux(ready,143) HEAT(delaying,302) CanReceiv(notifyWait,799) CanSender(notifyWait,359) CanClock(delaying,349) TMC(notifyWait,18) MAIN(running,616) IDLE(ready,20)
Owned mutexes: HTTP(MAIN)
=== Platform ===
Last reset 00:13:58 ago, cause: power up
Last software reset at 2021-03-05 23:49, reason: User, none spinning, available RAM 140492, slot 0
Software reset code 0x0012 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0440f000 BFAR 0x00000000 SP 0x00000000 Task Linu Freestk 0 n/a
Error status: 0x00
Aux0 errors 0,0,0
Aux1 errors 0,0,0
MCU temperature: min 28.9, current 51.2, max 51.3
Supply voltage: min 27.9, current 30.0, max 30.2, under voltage events: 0, over voltage events: 0, power good: yes
12V rail voltage: min 12.1, current 12.1, max 12.1, under voltage events: 0
Driver 0: position 0, standstill, reads 48788, writes 31 timeouts 0, SG min/max 0/271
Driver 1: position 0, standstill, reads 48788, writes 31 timeouts 0, SG min/max 0/505
Driver 2: position 22080, standstill, reads 48784, writes 35 timeouts 0, SG min/max 0/263
Driver 3: position 0, standstill, reads 48784, writes 35 timeouts 0, SG min/max 0/277
Driver 4: position 0, standstill, reads 48785, writes 35 timeouts 0, SG min/max 0/259
Driver 5: position 0, standstill, reads 48785, writes 35 timeouts 0, SG min/max 0/201
Date/time: 2021-03-08 15:16:32
Slowest loop: 171.53ms; 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, maxWait 180288ms, bed compensation in use: none, comp offset 0.000
=== MainDDARing ===
Scheduled moves 448, completed moves 448, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 15], 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 -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 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 0, running macro
Aux2 is idle in state(s) 0
Autopause is idle in state(s) 0
Code queue is empty.
=== CAN ===
Messages queued 8761, send timeouts 26, received 9733, lost 0, longest wait 2ms for reply type 6049, peak Tx sync delay 57602, free buffers 49 (min 47)
=== SBC interface ===
State: 4, failed transfers: 0
Last transfer: 1ms ago
RX/TX seq numbers: 29686/29686
SPI underruns 0, overruns 0
Number of disconnects: 0, IAP RAM available 0x2d410
Buffer RX/TX: 0/0-0
=== Duet Control Server ===
Duet Control Server v3.2.0
Code buffer space: 4096
Configured SPI speed: 8000000 Hz
Full transfers per second: 8.35
Maximum length of RX/TX data transfers: 2588/1520m122 b121
Diagnostics for board 121:
Duet TOOL1LC firmware version 3.3beta1 (2021-02-14 16:34:04)
Bootloader ID: not available
Never used RAM 3976, free system stack 0 words
Tasks: Move(notifyWait,90) HEAT(delaying,91) CanAsync(notifyWait,67) CanRecv(notifyWait,75) CanClock(notifyWait,67) TMC(delaying,56) MAIN(running,252) AIN(delaying,63)
Last reset 00:14:41 ago, cause: power up
Last software reset data not available
Driver 0: position 34448, 426.0 steps/mm, standstill, SG min/max 0/282, read errors 0, write errors 0, ifcnt 20, reads 47135, writes 20, timeouts 0, DMA errors 0, steps req 81994 done 81994
Moves scheduled 1234, completed 1234, in progress 0, hiccups 0, step errors 0, maxPrep 532, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0
Peak sync jitter 9, peak Rx sync delay 610, resyncs 1, no step interrupt scheduled
VIN: 29.9V
MCU temperature: min 25.8C, current 37.0C, max 42.1C
Ticks since heat task active 249, ADC conversions started 878201, completed 878201, timed out 0
Last sensors broadcast 0x00000002 found 1 5 ticks ago, loop time 0
CAN messages queued 10272, send timeouts 0, received 9157, lost 0, free buffers 36, min 35, error reg 0
dup 0, oos 0, bm 0, wbm 0 -
If it's an intermittent issue, then the most likely causes are:
- Bad crimp connection in the motor cable. Are you using the same cable as before?
- Bad solder joint between the driver chip and the PCB. Axz the pads of the driver under underneath the chip, it's impossible to tell whether the soldering is good on all pads other than by X-ray; although if you can look at the edges of the chip using microscope, you might get a clue.
- Bad solder joint between the motor connector and the PCB. Unlikely, but not impossible.
-
@dc42 Thank you for the reply.
Just to recap, as I know I have been changing things around a bunch...and my symptoms changed for a bit due to the bad motor giving me a runaround:
New cable. Known good crimps. Known good pinout/coil pairs. New motor that is much larger running at 80% rated current (rated at 1.2A). Soldering on the board in general looks OK, slightly blobby, but nothing that looks like it would make me questions the soldering on the chip. Solder joints to the connector looks fine as well. Wire wiggles do not affect anything, and no driver faults reported.
When printing, it skips steps like it has a loss of torque. I can hear and see the motor try to move, but even with the motor off the extruder and no load, it skips when printing. If I pause the printer, it will extrude with DWC just fine. I can really crank the rate, and I can grab the motor gear and it will just rip past my hands. While printing and motor with no load on it, it has no torque and I can stall it easily with barely touching it, and it often skips steps with no load on the motor.
The weird intermittent side of things is that I can print, reboot, print, reboot, print, and after a totally random number of reboots and prints, it will extrude with full torque. The extruder working is definitely the exception, as it is almost always not working while printing. When it does work while printing, it only stops working again if I cancel the print and restart.
This really does not feel like wiring to me, but since I am at a loss here, I have checked it all over with back probes. All have good connections. I am at a total loss, and I am totally up for reworking all of the diagnosis that has been done, but I do not know what general area I should be going over again. Thoughts @dc42 ? Again, thank you for the help.
This is frustrating, as everything looks correct to the best of my (little) knowledge with RRF3. I am a research engineer, and can work any angle you think needs to be worked. I do have an x-ray in my building, and if you really think it is necessary, I can have someone scan it. I am hesitant, as the "intermittent"ness of this doesn't cry connection to me, but sounds more like the driver is not sending full power when reading the gcode. But I am at a loss right now, and other than removing the toolboard and going to an expansion, I am not sure what the next steps should be.
I have an 8 tool custom printer running toolboards and duet3, and it gave me no issues at all (sans the fun firmware learning curve). I am not sure how I am unable to get this simple Voron printer running with a toolboard and duet3.
-
@hamel sounds a lot like this thread
https://forum.duet3d.com/topic/21922/expansion-3hc-m906-not-working-properly -
@jay_s_uk Thank you for that. It does seem similar. I do have a G4 S1 to wait for boards to boot, but I will give it a try with an S5.
-
@jay_s_uk No change. Still extrudes fine with DWC, but when I go to print, it has no torque and just skips. When the motor is loose, same issue with no torque when printing from gcode.
-
Just as an additional note, the driver on the LC1 is loud as well. It is in idle hold now, and is singing like it was trying to hold position with great strain, but it is loose and not loaded.
-
-
Very strange. Can you post your start gcode and pause and resume files?