Solved Extruder stopping intermittently
I have a custom built coreXY running a Mini 5+ Running RRF 3.3 since it came out. I was running the same part for about a week when I started getting what I thought was under extrusion at certain places. After some trouble shooting of the hotend I ended up completely removing the motor from the extruder so I verify that the issue was not the motor intermittently stopping because the hotend was fine, but that was the issue. As a result I pulled out a spare motor and connected it directly to the spare driver on the Mini but it still had the same issue.
I know the issue is not contained with the g-code because I've tried multiple programs all which were ran in the past without issues along with new g-code. Cant be the motor, wiring, or stepper because I connected a spare motor directly to the extra stepper. I dont think heat is the issue because there is a fan blowing on the drivers and it happens pretty quickly after starting the print. Its a Orbiter extruder which I am running at 600ma.
Here is a clip of it printing a bottom layer were you can see the pinion gear pause when it should be continuously extruding.
@3dprintingworld are you seeing any errors reported in M122? Has anyting else changed, or been added (e.g. a deamon.g file that's suddenly very busy etc)
Below is the result of the M122.
I've had been getting hotend heater faults upon startup. I've tuned it but it seems very touchy and I get a fault at startup if the environment or the location of the hotend is not centered. I was going to look into tuning this next. Do you think the issues could be related? I dont get heater faults once the program is running though.
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: GBTYV-Q196U-D65J0-40KM8-LR03Z-HA2WB Used output buffers: 3 of 40 (28 max) === RTOS === Static ram: 102724 Dynamic ram: 113068 of which 200 recycled Never used RAM 24856, free system stack 144 words Tasks: NETWORK(ready,14.8%,240) HEAT(notifyWait,0.0%,366) Move(notifyWait,0.1%,276) CanReceiv(notifyWait,0.0%,941) CanSender(notifyWait,0.0%,357) CanClock(delaying,0.0%,340) TMC(notifyWait,0.7%,114) MAIN(running,83.6%,408) IDLE(ready,0.0%,29) AIN(delaying,0.8%,273), total 100.0% Owned mutexes: WiFi(NETWORK) === Platform === Last reset 00:50:21 ago, cause: software Last software reset at 2021-10-30 11:22, reason: User, GCodes spinning, available RAM 27920, slot 1 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 3021554, completed 3021554, timed out 0, errs 0 Step timer max interval 1268 MCU temperature: min 25.2, current 25.2, max 25.6 Supply voltage: min 24.0, current 24.0, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 99/0, heap memory allocated/used/recyclable 2048/18/18, gc cycles 0 Driver 0: position 39200, standstill, SG min/max 2/2, read errors 0, write errors 0, ifcnt 38, reads 40937, writes 0, timeouts 0, DMA errors 0 Driver 1: position -40800, standstill, SG min/max 0/0, read errors 0, write errors 0, ifcnt 36, reads 40937, writes 0, timeouts 0, DMA errors 0 Driver 2: position 5797, standstill, SG min/max 4/4, read errors 0, write errors 0, ifcnt 36, reads 40937, writes 0, timeouts 0, DMA errors 0 Driver 3: position 0, standstill, SG min/max 302/302, read errors 0, write errors 0, ifcnt 33, reads 40937, writes 0, timeouts 0, DMA errors 0 Driver 4: position 0, standstill, SG min/max 0/0, read errors 0, write errors 0, ifcnt 32, reads 40937, writes 0, timeouts 0, DMA errors 0 Driver 5: position 0, assumed not present Driver 6: position 0, assumed not present Date/time: 2021-10-30 12:12:56 Cache data hit count 4294967295 Slowest loop: 6.97ms; fastest: 0.13ms === Storage === Free file entries: 10 SD card 0 detected, interface speed: 22.5MBytes/sec SD card longest read time 3.8ms, write time 0.0ms, max retries 0 === Move === DMs created 83, maxWait 0ms, bed compensation in use: mesh, comp offset 0.000 === MainDDARing === Scheduled moves 1051, completed moves 1051, 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 Heater 0 is on, I-accum = 0.0 Heater 1 is on, I-accum = 0.4 === 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 7000, received 0, lost 0, longest wait 0ms for reply type 0, peak Tx sync delay 0, free buffers 17 (min 17), ts 3889/0/0 Tx timeouts 0,0,3889,0,0,3111 last cancelled message type 30 dest 127
@3dprintingworld nothing jumps out for me from that error report.
The video looked like it could be happening at a specific point in a file.
Are you able to do the following:
- temporarily setup a tool with two extruder motors (the orbiter motor and the spare on the spare driver). Preferably the motors should be configured as similarity as possible so they can be compared.
- run a print file (without extruding through the hotend of course) that shows these issues.
- see of the stop/starts are in sync with each other.
Basically I am trying to work out if the issue is hardware, and if hardware, where in the hardware.
Also post your config.g here please.
I think you are right, and I resliced the file and both seem to happen at the same place and it seems repeatable.
I setup both motors on the tool like you requested and I can confirm that they stop in sync. Below is the modified config.
M552 S1 ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Mulcore" ; set printer name M669 K1 ; select CoreXY mode M918 P2 E4 F2000000 ; configure direct-connect display ; Drives M569 P0.1 S1 ; physical drive 0.0 goes forwards M569 P0.0 S0 ; physical drive 0.1 goes forwards M569 P0.2 S1 ; physical drive 0.2 goes forwards M569 P0.4 S1 ; physical drive 0.3 goes forwards M569 P0.3 S1 ; physical drive 0.3 goes forwards M584 X0.1 Y0.0 Z0.2 E0.4:0.3 ; set drive mapping M350 X16 Y16 Z16 E16:16 I1 ; configure microstepping with interpolation M92 X200.00 Y200.00 Z1096.00 E655.00:655.00 ; set steps per mm M566 X900.00 Y900.00 Z100.00 E300.00:300.00 ; set maximum instantaneous speed changes (mm/min) M203 X12000.00 Y12000.00 Z2000.00 E4200.00:4200.00 ; set maximum speeds (mm/min) M201 X2000.00 Y1800.00 Z500.00 E600.00:600.00 ; set accelerations (mm/s^2) M906 X600 Y600 Z300 E600:600 I30 ; set motor currents (mA) and motor idle factor in per cent X-Y WAS 700 M84 S30 ; Set idle timeout ; Axis Limits M208 X-4 Y-10 Z0 S1 ; set axis minima M208 X200 Y200 Z200 S0 ; set axis maxima ; Endstops M574 X1 S1 P"!io0.in" ; configure active-high endstop for low end on X via pin io0.in M574 Y2 S1 P"!io1.in" ; configure active-high endstop for high end on Y via pin io1.in M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Z-Probe M950 S0 C"io2.out" ; create servo pin 0 for BLTouch M558 P9 C"^io2.in" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X0 Y23 Z2.385 ; set Z probe trigger value, offset and trigger height M557 X15:195 Y15:195 S20 ; define mesh grid ; Heaters M308 S0 P"temp0" Y"thermistor" T100000 B4534 C9.565227e-8 ; configure sensor 0 as PT1000 on pin temp0 M950 H0 C"out1" 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"temp1" Y"thermistor" T100000 B4376 ; configure sensor 1 as thermistor on pin e0temp M950 H1 C"out2" 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"out3" Q500 ; create fan 1 on pin out4 and set its frequency M106 P0 S0 H-1 ; set fan 1 value. Thermostatic control is turned off M950 F1 C"out6" Q500 ; create fan 0 on pin out3 and set its frequency M106 P1 T45 S1 H1 M950 F2 C"out5" Q500 ; create fan 2 on pin out5 and set its frequency M106 P2 S0 H-1 ; set fan 2 value. Thermostatic control is turned off M950 F3 C"out4" Q500 ; create fan 2 on pin out5 and set its frequency M106 P3 S0 H-1 ; set fan 2 value. Thermostatic control is turned off ; LED M950 F4 C"out0" ; create LED 4 on pin duex.fan7 and set its frequency - TOP LEFT M106 P4 S1 ; set LED 4 value. Thermostatic control is turned OFF ; Tools M563 P0 D0:1 H1 F0:2 ; define tool 0 M567 P0 E1:1 M568 P0 S1 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C
@3dprintingworld thanks. can you send a M122. (to clear any historical stuff). then start a print where its happening and send M122 again after both motors have paused and started again, then post the whole M122 report here.
I don't this is a temperature issue however its worth checking so can you add this command to config.g
M308 S10 Y"drivers" A"Drivers"
This will show up in the extras tab of the Tools/Heating panel in DWC:
Initially it will be "0" but if one or more drivers get hot enough to generate a temp warning it will switch to 100. (I had to use my heatshink hot air tool to get this to trigger on my test board just now).
@t3p3tony I sent the M122, added the M308 to the config, started the gcode but shortly after I got real fast dips in the hotend temp and heater faults. The program stays running and only the extruder stops when the temperature dips too low. Where the extruder stops for a long period match's up with the dip in temp. I ran the same program twice and the places where the dips happen match up.
Is the issue then caused by a bad conductor or thermistor?
I got real fast dips in the hotend temp and heater faults
heater faults should pause the print, so that is definitely not expected behaviour. How much was the temperature dropping by and did the heater actually say "fault" in DWC?
It could be the heater or thermistor with an intermittent fault, possibly just in certain positions on the bed if its repeatable with the same print, with the hotend at temperature, but not printing, can you move the hotend around to similar positions to see if you get the dips? Depending on how much its dipping I suppose it could also be a very aggressive fan cooling the hotend but you did not mention a change to the fan setup you were using.
I am now getting a heater fault message in the console at the first dip and a bunch near the end before I stop it. I didn't think I was getting these previously, I don't know how I could have missed them. The graph is similar when I run the same first layer in the g-code multiple times, the print does not stop automatically after receiving the fault. Is it because the dip is so quick?
I only see a couple degree temperature swing when I move the carriage around by hand. I tried moving the wiring around by hand as much as I can but everything is well constrained in wire chain. It was all new wire and I haven't have tons of hours on this printer yet.
No change in fan setup. This g-code is on the first layer so the part cooling fan is not on, if you think it may be cooling the hotend.
deckingman last edited by
@3dprintingworld My twopence worth.....The temperature excursions are much too fast for it to be a faulty heater cartridge. I've seen that behaviour with both a temperature sensor wiring issue (bad crimp) and with faulty thermistor cartridge. The amplitude of the temperature excursion and the time it needs to have exceeded that limit before a heater fault is triggered are configured using M570. I didn't notice an M570 command in the config.g that is posted so I guess default values would apply. These are 15 deg C and 5 seconds so the heater excursion will need to exceed 15 deg C for 5 seconds before a fault is flagged. hence the reason why some excursions trigger the fault but not others.
@3dprintingworld yes, definitely not cooling fan related. As @deckingman has pointed out, this is this is a temperature sensing issue. I would investigate wires/connectors/crimps breaking contact intermittently because all the spikes are going down we know its a break in connection not a short between thermistor wires. Also as @decking man has mentioned it could be a intermittent fault inside the thermistor cartridge itself.
zapta last edited by zapta
Does M122 report extrusion-skipped-due-to-cold-nozzle events? That could be useful.
@zapta no i don't think M122 reports that but it will be reported in the console in normal use, unless M302 P1 is in use.
I've been busy printing and designing too much cool shit so didn't have the time to look into this until just now. @T3P3Tony is going to say I got what I deserve for not going CAN and he's probably right... It turned out to be a defect in the stock thermistor wire. There was a small internal bulge in the wire with a short that was located in the middle of the x-axis wire chain, I don't think it could have been caused by the wire management. Fixed now, thanks for the help!
zapta last edited by zapta
3DPrintingWorld last edited by 3DPrintingWorld
@zapta In the beginning I started to get heater faults only when preheating when starting g-code, maybe every 20 prints. I was not sure, I thought maybe it was from environmental conditions. Over time I started to see under extrusion in my prints but no error. During the troubleshooting in this thread I started to finally get heater faults while printing. I think its because previously the dips were not long enough and over time the short in the wire got worse causing their duration to increase.
@3dprintingworld thanks for reporting back what the issue was. Glad you pinned it down.