Stallgaurd Duet 3 Mini5+

  • I'm having trouble getting stallgaurd to work for sensorless homing on my 3 mini. I read through this thread and tried the 3.3 unofficial beta, but I'm not having any luck. I'm not getting it to trigger at all no matter what sensitivity I have it set to. I have checked and rechecked my config, which was working on a Duet 2 WiFi. I realize sensitivity might need to be different since the drivers are different.

    Has anyone with a mini gotten sensorless homing working? Is there any changed behavior other than the aforementioned sensitivity scale that could be affecting my config?

  • Moderator

    Verify that the firmware actually applied with M115

  • Says I'm running 3.3beta after sending M115

  • Moderator

    Post your config and homing files.

  • deleted

  • administrators

    The most likely reason that stall detection is not working for you is that you haven't adjusted the tpwmthrs value to keep the driver running in stealthChop mode at the speed you are using. On the TMC2209, stall detection only works in stealthChop mode. See the M569 command.

  • @dc42 said in Stallgaurd Duet 3 Mini5+:


    Okay, that seems to have been the issue. I'm getting stallgaurd to trigger now. I'll have to dial in the values, but I think I'm on the right track now. Thank you!

  • @dc42 Quick follow-up question do you have a sense of the max speed I should be running in stealthchop? What are the negative effects of using stealthchop at high speed?

  • administrators

    Although steathChop is quiet, the main problem with it in my experience is that it is unable to handle a sudden increase in load, such as when the printer is doing a fast travel move and the nozzle hits a blob or curl-up. This can result in lost steps.

    My preference is to use stealthChop only at very low speeds, in order to silence the printer when it is idle. On the TMC2209, this is of course not compatible with stall detection, which requires reasonably high speeds in order to detect the stall. So the safe option may be to set the maximum stealthChop speed sufficiently high during stall homing, but low during normal use.

    Prusa printers have two modes: a "fast" mode and a "silent" mode. I suspect (but I don't know for sure) that in silent mode, the maximum travel speed is greatly reduced in order to keep it below the transition speed between stealthChop and spreadCycle. At low travel speeds the likelihood of a curl-up or blob causing a missed step is reduced, because there is a greater chance that the nozzle will melt its way through the obstruction.

  • @dc42 Thanks for the extra info. Just to make sure we're on the same page, what do you consider low/high speed?

  • i print at 60mm/sec with stealthchop2 on the mini 5.
    travel moves are at 100mm/sec.

    though the noise reduction is not a good at those speeds.

    be aware that you can not use the automatic switch over to stealthchop at those speeds. it will result in missed steps.

    if your printer is tuned well and the cooling is good this will work.

  • @dc42 I have my mini configured in spreadcycle and only have stealthchop2 enabled during homing since I'm using sensorless homing. However, during printing, I'm getting a lot of skipped steps, and it seems like the motors are cooler running at the same current I was running them at on Duet 2. It seems to be skipping steps on rather small slow moves. I've tried some very large fast moves to test it, but don't get any skipped steps when I do that.

    I have tried increasing motor current to 90% of their rated current up from about 75% to try and increase torque and reduce skipped steps, but it doesn't seem to be having much of an effect. Acceleration, jerk, speeds, etc are all the same as what I was using when I had the printer connected to a Duet 2.

    Any ideas?

  • administrators

    One difference from Duet 2 is that by default the drivers reduce current to 75% when the motor is at standstill or running very slowly. Perhaps this is the reason. Unless you are running close to maximum 2A current, you can use the M917 command to increase the standstill current to 100%.

  • @dc42 I have low speed/standstill current set to 100%.

    There seems to be a little bit of "stutter/vibration" in the movement that periodically results in layer shift. It happens regularly throughout the print, but I can't seem to isolate exactly what is causing it. Nothing hardware wise has changed since I switched from the Duet 2 to the Mini5+. I copied my config below in case there might be something I messed up in there that I'm not seeing. Running firmware version 3.2

    I'm using slicer controlled acceleration and jerk, so I will try some gcode without that. However, I'm still noticing some "stutter" in the movement when not printing.

    ; Configuration file for Duet 3 Mini 5+ (firmware version 3.2)
    ; Executed by the firmware on start-up
    ; Created by Hydra Research LLC specifically for the Minnow 3D Printer
    G90                                                     ; Send absolute coordinates...
    M83                                                     ; ...but relative extruder moves
    M918 P2                                                 ; Enable/Config 12864 display
    M550 PMinnow - Hydra Research                           ; Set machine name
    M552 S1                                                 ; Enable network
    M586 P0 S1                                              ; Enable HTTP
    M586 P1 S0                                              ; Disable FTP
    M586 P2 S0                                              ; Disable Telnet
    ; DRIVES
    M584 X0 Y1 Z2:3 E4                                      ; Assign axis to drivers
    M569 P0 S1 D3 V2000                                     ; Configure X axis drive
    M569 P1 S0 D3 V2000                                     ; Configure Y axis drive
    M569 P2 S1                                              ; Configure Z1 axis drive
    M569 P3 S1                                              ; Configure Z2 axis drive
    M569 P4 S1                                              ; Configure E axis drive
    M350 X16 Y16 Z16 E16 I1                                 ; Configure microstepping without interpolation
    M92 X200 Y200 Z1600 E388                                ; Set steps per mm (E: rec 409/actual 388)
    M566 X480 Y480 Z25 E800                                 ; Set maximum instantaneous speed changes (mm/min), Cura will override this
    M203 X15000 Y15000 Z1000 E12000                         ; Set maximum speeds (mm/min)
    M201 X1250 Y1250 Z250 E1250                             ; Set accelerations (mm/s^2)
    M204 P800 T1250                                         ; Set printing and travel accelerations, Cura will override this
    M906 X1000 Y1000 Z1100 E1000 I100                       ; Set motor currents (mA) and motor idle factor in per cent
    M917 X100 Y100 Z100 E100                                ; Set standstill/low speed motor current as percent
    M84 S30                                                 ; Set idle timeout
    M208 X-20 Y-15 Z0 S1                                    ; Set axis minima
    M208 X256 Y240 Z205 S0                                  ; Set axis maxima
    M564 H1 S1                                              ; disallow movement without homing
    M574 X1 Y1 S3                                           ; Configure X-min and Y-min endstops
    M915 X S62 F0 H400 R0                                   ; Configure Stall Guard for X
    M915 Y S62 F0 H400 R0                                   ; Configure Stall Guard for Y
    ;M591 D0 P1 C"e0stop" S1                                ; Configure simple filament sensor pause print on runout
    ; Z-PROBE
    M950 S0 C"io3.out"                                      ; create servo pin 0 for BLTouch
    M558 P9 C"^" H2 R0.25 F500 T12000 A5 S0.012       ; set Z probe type to bltouch and the dive height + speeds
    G31 X60 Y-4 Z2 P25                                      ; BLT Set Z-probe trigger value, offset, and trigger height
    M557 X42:245 Y5:201 P4:4                                ; BLT Define mesh grid
    M140 H0                                                 ; Assign default bed heater
    M308 S0 P"temp0" Y"thermistor" T100000 B3950            ; Set thermistor + ADC parameters for heater 0
    M950 H0 C"out0" T0 Q10                                  ; Create bed heater
    M308 S1 P"temp1" Y"thermistor" T100000 B4725 C7.06e-8   ; Configure PT1000 for heater 1
    M950 H1 C"out1" T1
    M307 H0 B0 S1.00                                        ; disable bang-bang mode for the nozzle heater and set PWM limit
    M143 H0 S123                                            ; Set temperature limit for heater 0 to 123C
    M143 H1 S295                                            ; Set temperature limit for heater 1 to 295C
    M570 H0 P10 T10 S.1                                     ; Heater 0 fault detection
    M570 H1 P10 T10 S.1                                     ; Heater 1 fault detection
    ; FANS
    M950 F0 C"out5" Q500
    M106 P0 I0 F250 L25 B0.1 H-1 C"Part Fan"                ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control off
    M950 F1 C"out6" Q500
    M106 P1 S255 H1 T50 C"Tool Fan"                         ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
    ; TOOLS
    M563 P0 D0 H1                                           ; 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
    M572 D0 S0.02                                           ; Set default pressure advance value
    M911 S22.0 R23.0 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000"  ; Set voltage thresholds and actions to run on power loss
    M501                                                    ; Read stored parameters from sys/config-override

  • administrators

    @jckray, the stutter you are seeing may be the "jerk" that occurs when the drivers switch from stealthChop to spreadCycle mode at the speed determined by the M569 V parameter. The TMC2209 datasheet section 6.5 describes this jerk.

  • @dc42 I've been testing for about a week with the printer is configured in spreadcycle during printing and I'm still getting that stutter I described earlier and skipped steps somewhat regularly. Is it possible that the switch between stealthchop and spreadcycle is still happening somehow, even though the configuration is for spreadcycle only?

  • Moderator

    Do you notice any hiccups in M122?

    Do you have mesh compensation active? I notice your Z jerk is rather low.

    M566 X480 Y480 Z25 E800

    That can sometimes cause stuttering when it's trying to adjust Z for mesh compensation. M566 Z60 is usually enough to solve that.

  • @Phaedrux What do you mean by hiccups in M122?

    Yes, compensation is active. I have a difference of 0.2mm between the min and max points. I wouldn't think that would be enough to cause issues with the z-axis not being able to adjust fast enough to keep up. I was not having these issues with the same config on a Duet 2.

    I will try increasing the z jerk to see if that has an effect.

    Thanks for your suggestions.

  • Moderator

    In the M122 report there will be a entry for hiccups. These are pauses that happen when it can't keep up with the commanded movement. It should be 0. Anything more than 100 would be a problem.

  • @Phaedrux Gotcha didn't know that existed. Just checked and I have zero hiccups on the current print I'm running, but there haven't been any issues with the current print thus far. I will make sure to check that next time there is an issue.

Log in to reply