Extruder motor stops during print…

  • Hi All -

    We have a printer where the extruder motor stops after an hour or so of printing. What are some methods to troubleshoot this?

    After M999 or a power cycle the extruder works again.

    Thanks - Brad

  • administrators

    When the fault occurs, does the tool heater still show Active, or does it show a heater fault?

    Are there any error messages displayed in the GCode Console page of DWC, for example a Heater Fault message, or a "no tool selected" message?

  • The heater still shows active, with no error messages in the GCode Console.

    Going to swap extruders and test.

  • OP here. d300vs with firmware RepRapFirmware for Duet Ethernet version 1.19.2 (2017-09-01), Duet Ethernet 1.0.

    repeated failures of the following kind:

    the extruder stops responding to moves, with no error message. only way to get it responsive is to M999 or power cycle.

    d300vs thread here: http://forum.ultibots.com/viewtopic.php?f=59&t=297

  • administrators

    I suggest you start by upgrading the firmware to 1.20. It provides better monitoring of the stepper drivers, so it may warn you if the driver is reporting an unusual status.

    If the issue recurs, after it has happened and before rebooting, please send M122 to get a diagnostic report. Also send M906 without any parameters and confirm that the current is still set correctly.

  • ok, thanks. will report back in a few days.

  • another failure

    Motor current (mA) - X:1000, Y:1000, Z:1000, E:400:400:400:400:400:400:400:400:400, idle factor 30%
    === Diagnostics ===
    Used output buffers: 3 of 32 (9 max)
    === Platform ===
    RepRapFirmware for Duet Ethernet version 1.20 running on Duet Ethernet 1.0
    Board ID: 08DDM-9FAMU-JW4S4-6JKD8-3SD6L-TMXMS
    Static ram used: 11992
    Dynamic ram used: 98816
    Recycled dynamic ram: 3880
    Stack ram used: 1216 current, 8448 maximum
    Never used ram: 7936
    Last reset 27:23:06 ago, cause: power up
    Last software reset at 2018-01-26 12:31, reason: User, spinning module GCodes, available RAM 10464 bytes (slot 0)
    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 41.0, current 41.2, max 60.2
    Supply voltage: min 23.8, current 24.4, max 24.9, under voltage events: 0, over voltage events: 0
    Driver 0: standstill, SG min/max 0/1023
    Driver 1: standstill, SG min/max 0/1023
    Driver 2: standstill, SG min/max 0/1023
    Driver 3: standstill, SG min/max 0/1023
    Driver 4: standstill, SG min/max not available
    Date/time: 2018-01-27 15:56:14
    Cache data hit count 4294967295
    Slowest main loop (seconds): 0.607014; fastest: 0.000045
    === Move ===
    MaxReps: 5856, StepErrors: 0, FreeDm: 240, MinFreeDm 120, MaxWait: 2357420531ms, Underruns: 0, 1
    Scheduled moves: 0, completed moves: 0
    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 0 is on, I-accum = 0.0
    Heater 1 is on, I-accum = 0.5
    === GCodes ===
    Segments left: 0
    Stack records: 2 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 ===
    State: 5
    HTTP sessions: 1 of 8
    Responder states: HTTP(1) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)

    what should i try next? i have not yet tried the other extruder pins on my board. i also have a wifi i can try, but that's pretty invasive, and it makes connecting a PITA.

  • ok, so i tried something. with the machine in its errored state, i swapped the extruder motor pins to E1, instead of E0. then, i made a new tool in the web interface.

    switching to the new tool on the other pins allowed me to extrude! then, as a sanity check, i swapped the pins back to E0, changed back to the original tool, and was unable to extrude. ok, i am not insane. switch to new tool on E1, extruding is ok.

    i think i will try printing on E1.

  • i printed on E1 last night, to no avail. still failed. i am unable to connect to the printer, "due to the duet firmware". wish i had a screencap of the page – did a refresh, and now get nothing. i am unable to connect to the printer through any other means. my normal fallback of repetier host, simplify3d, and all other programs fail to connect.

    i have now wasted about two kg of plastic due to this problem...

  • so, i swapped boards to my wifi board, with firmware 1.19.2. another failure.

    i updated on the wifi to 1.20, and am reprinting now.

  • another failure, on my wifi, 1.20. we can safely say:

    • either neither of my duet boards are defective, or both are

    • if this is a firmware problem, it exists in 1.19.2 and 1.20

    i additionally believe that

    • we can rule out my wiring as a problem. otherwise, when i switched E0 to E1, the extruder would not have moved without a restart. however, if my wiring is causing this fault, it should be firmware detectable… ideally

    one problem i have observed is that the firmware is unable to detect if the extruder motor comes disconnected. you can unplug, and replug, no errors. should this not be observable?

  • it seemed so at first, but no, my fans work fine. that post was about heat creep, not the motor stopping.

  • administrators

    Does extrusion stop at the same point in the print each time?

    The stepper drivers on the Duet can in theory detect when a motor wire is disconnected, but in practice we found it gave false positives, so I disabled that facility. If I can find a way to filter out the false positives, I will enable it again.

  • another thought i had – maybe i should put a fan on the duet? is the board overheating?


  • no, it is not the same point every time.

  • here's a snippet of what my gcode looks like:

    G1 X-9.773 Y20.202 E0.0240
    G1 X-8.049 Y19.083 E0.0845
    G1 X-7.228 Y18.592 E0.0393
    G1 X-5.829 Y17.806 E0.0660
    G1 X-2.005 Y15.805 E0.1774
    G1 X-1.749 Y15.664 E0.0120
    G1 X-0.741 Y15.031 E0.0489
    G1 X-0.182 Y14.575 E0.0297
    G1 X0.225 Y14.087 E0.0261
    G1 X0.746 Y12.742 E0.0593
    G1 X0.847 Y12.526 E0.0098
    G1 X0.864 Y12.365 E0.0066
    G1 X0.745 Y10.941 E0.0588
    G1 X0.342 Y9.133 E0.0761
    G1 X-0.212 Y7.194 E0.0829
    G1 X-1.216 Y3.878 E0.1424
    G1 X-1.686 Y2.198 E0.0717
    G1 X-1.997 Y1.061 E0.0484
    G1 X-2.338 Y-0.306 E0.0579
    G1 X-2.657 Y-1.687 E0.0582
    G1 X-3.138 Y-4.143 E0.1029
    G1 X-3.300 Y-5.092 E0.0396
    G1 X-3.519 Y-6.570 E0.0614
    G1 X-3.767 Y-8.725 E0.0892
    G1 X-3.921 Y-10.510 E0.0736
    G1 X-4.038 Y-12.900 E0.0984
    G1 X-4.060 Y-14.016 E0.0459
    G1 X-4.047 Y-16.295 E0.0937
    G1 X-3.986 Y-17.935 E0.0674
    G1 X-3.894 Y-19.398 E0.0602
    G1 X-3.771 Y-20.858 E0.0602

    so it is a sequence of short extrusion moves the whole file. no long linear extrudes, just this.

  • here are my four attempts at 'seepferdchen'

  • another thought: should i prefer absolute or relative extrusions? i have only been using relative through this whole process.

  • i am starting to think there is a bug in the reprap firmware, in the part that processes relative extrusion distances. i printed the same model, same supports and all settings, last night. only change was that in simplify3d, i switched to absolute extrusion.

    ok, there was another difference that i should have not let happen, and that was that i printed this one without the https://www.thingiverse.com/thing:2567240 bottom corner plates.

    i am re-printing the same file now. if it fails again, then we know that the relative / absolute distances had nothing to do with my problem. if it succeeds, we have stronger evidence that it is a firmware bug.

  • i am now convinced that there is a bug in the firmware dealing with relative extruder distances

    another success with absolute extruder distances, print time was 36h 21m



    a little problem at the top. caused due to top layers being set to 0 for that process in simplify3d. (6 processes used total, to reduce the amount of plastic used by varying the infill %)

  • administrators

    Most Duet users - including me - only ever use relative extrusion distances.

    Did you turn off "Allow zeroing of extrusion distance" in S3D? You should do that when using relative extrusion, although AFAIK it doesn't matter if you leave it enabled.

  • zeroing was indeed allowed in s3d, both in my relative and absolute prints.

    brad at ultibots indicated that he thinks people mostly use absolute, where you think it is relative…

    i have > 70 hours of absolute distance printing with no errors now, so am growing in confidence that i was experiencing something problematic with relative. i think some stress-test kinds of gcode files are merited. i was thinking that cylindrical circles or ellipses with ever-smaller faces might be useful, and mix in the zeroing.

    are there known smallest distances that the extruder should be asked to perform? i read the code in the reprap firmware, and nothing immediately jumped out at me as risking underflow or rounding error. i was however concerned in GCodes.cpp at lines 2044 or so,

    const float moveArg = eMovement[0] * distanceScale;
    float requestedExtrusionAmount;
    if (gb.MachineState().drivesRelative)
      requestedExtrusionAmount = moveArg;
      requestedExtrusionAmount = moveArg - virtualExtruderPosition;
      virtualExtruderPosition = moveArg;

    that in one case, the value of virtualExtruderPosition is adjusted, and not in the other. is it assumed to be always 0 if relative? where is it adjusted?

    i just want to know exactly how to manifest this problem, as i am not content with absolute distances as a workaround.

  • Taking a WAG based solely on the code you posted:

    If doing relative extrusion, the "virtualExtruderPosition" variable is meaningless (simply because it's not needed: It's a variable only used to calculate requestedExtrusionAmount if and only if absolute extrusions.)

    If relative, then the value of "E" is the amount that is extruded in this step.

    If absolute, then the value of "E" (moveArg) is the amount that is extruded in this step and all the previous steps combined. So, in order to know how much THIS step extrudes (requestedExtrusionAmount), you have to subtract "all the previous steps combined" (virtualExtruderPosition) from moveArg. At that point, "all the previous steps combined" (virtualExtruderPosition) needs to be updated to reflect the added amount THIS step extrudes (requestedExtrusionAmount.)

    That could be written any of the following ways, and all would be accurate:

    virtualExtruderPosition = virtualExtruderPosition + requestedExtrusionAmount;

    virtualExtruderPosition += requestedExtrusionAmount;

    virtualExtruderPosition = moveArg; // because moveArg == (virtualExtruderPosition + requestedExtrusionAmount)

  • gotcha.

    do you have references to any other places people have had problems with relative extrusion and zeroing on?

Log in to reply