Intermittent extruder loss and stutters. 6HC/toolboard/RRF3.2
-
@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?
-
@Phaedrux Yes, this is a first for me, and I use Duet for most things here, not just FFF printers. This was just a "let's build a printer with the spares that we have", and we chose Voron. Seems like this should be quite simple to get running, but this issue has been plaguing me for almost a month since the machine was built and wired. I don't know what else to try.
Start:
T0
G28Pause:
M83 ; relative extruder moves
G1 E-2 F3600 ; retract 2mm of filament
G91 ; relative positioning
G1 Z20 F360 ; lift Z by 20mm
G90 ; absolute positioning
G1 X0 Y0 F6000 ; go to X=0 Y=0Resume:
G1 R1 X0 Y0 Z5 F6000 ; go to 5mm above position of the last print move
G1 R1 X0 Y0 ; go back to the last print move
M83 ; relative extruder moves
G1 E2 F3600 ; extrude 2mm of filament -
Can you post your gcode file you are trying to print? Is there perhaps a difference in extrusion rate between the manual extrude and the print extrude commands? Maybe the print is trying to push too much filament and it simply can't?
-
@Phaedrux Gcode is in the first post. I have changed a few settings in the slicer, but nothing big. I've turned off retracts etc. to reduce the variables, but it really just seems that I get very low torque when printing. Maybe it has something to do with microstepping? I have tried setting the extruder to all of the microsteps, but there was no real change on either. Doesn't look like the gcode is changing the extrusion rates to anything large, they are all very small values. I can manually extrude with all of the presets except for the 60mm/s one, as that will overrun my melt rate pretty quick.
-
Let's replace the board. Please contact your vendor and initiate a warranty exchange. Include a link to this thread as authorization.
-
@Phaedrux Thank you. Just to clarify, as I Filastruder is asking, which board are you recommending replacing, just the LC1, correct?