Layer shift not detected by stall detection



  • Printing with PLA a "Rude Gnome" from Thingiverse (for my wife) and I had my first layer shift with the Duet. Have done some reconfiguration but nothing that I can think of should do the layer shift.
    I got 3 stall detections on extruder stepper but nothing on XY. I use eventlog and nothing there about an X shift.

    Did print once more with M915 X Y S5 and layer shift happened at same height. Had at least 100 XY stall detections, so not reliable at S5. Trying to isolate why layer shift happened now but I'm worried about why it didn't report it.

    I use loging on stall detection and higher values gave me false detections earlier:

    M915 X Y S6 R1 F1  ; S6 works. S5 gives flase warnings
    M906 X1000 Y1000 ; Set motor currents (mA) and motor idle factor in per cent 
    M203 X24000 Y24000 ; 400MM/S on XY
    M201 X2000         ; Acceleration
    M566 X800 Y800     ; 800 funkar bra tror jag. 480 fungerat hittils.
    

    Using Duet2 wifi

    • Duet WiFi 1.02 or later + DueX5
    • Firmware Version: 2.02(RTOS) (2018-12-24b1)
    • 24V CoreXY
    • e3d High Torque Motor: 0.9° Step Angle, 2.8V Rated Voltage, 1.68A Phase, 4.4kg/cm (61oz/in) Holding Torque.
    • Misumi linear rods and bearings.
    • e3d kevlar belts
    • BMG extruder
    • Sliced with Cura 3.6 80mm/s with 40mm/s outer wall and 200mm/s travel.


  • I have isolated the layer that caused the issue so I have a 15 layer file with gives me the layer shifts.
    I raised the stepper current to 1300. It gave me false stall detections up to S8 and when I finaly managed to get it to stall again it didn't detect it either.

    It works fine with following settings and I had to raise the speed factor to 200% to get a layer shift now. But it doesn't report a stall detection.

    M915 X Y S8 R1 F1  ; S6 works. S5 gives flase warnings
    M906 X1300 Y1300 ; Set motor currents (mA) and motor idle factor in per cent 
    M203 X24000 Y24000 ; 400MM/S on XY
    M201 X10000 Y10000         ; Acceleration 10 times higher
    M566 X1200 Y1200     ;  at 20mm/sJerk 
    

  • administrators

    I think one reason you can't get it to detect stalls reliably is that you have the X and Y accelerations set to 10000 which is very high. So you are demanding high torque from the motors, which means that if you set the S parameter low enough to detect stalls, will get false stall stall indications during acceleration.



  • The entire industry is discovering that stall detect is NOT a reliable way to detect layer shift. Several reasons:

    Many possible causes of layer shift have absolutely nothing to do with a motor stalling and/or skipping steps. Belts, pulleys... all the most common causes are not detectable "from the motor". And... most of all... "motor stall" and "motor skip step" are two VERY different things. The driver can detect a true stall, sometimes on the step it occurs, sometimes on the next (or even the next). The driver CANNOT detect all possible "missed step" scenarios.

    So... if you expectation was that Triaminic "stall detect" = "never another missed step"... that's just not how those chips/motors work.

    There's a much deeper topic here: "Open Loop" (95%+ of all hobbyist 3D printers) vs "closed loop". Only closed loop can detect any/all motor misses (and, even closed loop may not be able to detect a loose grubscrew on a pulley, or a belt jumping teeth). "Stall Detect" is nowhere near "closed loop", and even "closed loop" at the motor is not a panacea.


Log in to reply