Stallguard not working

  • I have a lot of problems with line skipping after i changed the board of my ridigdbot to the duet. with the rigdigbot that was a common error because the stepper driver overheated and then turned off. I think that should not be a problem with the duet and the little current i am pulling? I also tried to get the stall detection to work but I am unable to get it to trigger (not even with M915 P0:1 S-10 F1 R3)
    Is there a trick? Can sombody post a working config.g example code for a carthesian printer? ( I am not trying them as home switches mind you, I just want it to trigger the rehoming file when printing and skipping).

    I have mostly skipping in the X-axis. and am using two zmotors(just to make my settings understandable)
    My motor settings are :

    M584 X0 Y1 Z2:4 E3 ; set drive mapping
    ;M350 Y8 I0 ; configure microstepping without interpolation
    M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
    M92 X44.31 Y44.30 Z1590.98 E409.0 ; set steps per mm Y22.15
    M566 X300.00 Y300.00 Z24.00 E20.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X30000.00 Y30000.00 Z240.00 E3600.00 ; set maximum speeds (mm/min)
    M201 X800.00 Y600.00 Z100.00 E1000.00 ; set accelerations (mm/s^2)
    M906 X900 Y1200 Z1100 E900 I30 ; set motor currents (mA) and motor idle factor in per cent
    M84 S30

    M915 P0:1 S5 F1 R3 ;Stalldetection

    And the rehome.g contains:

    G91 ; relative positioning
    ;G1 H2 Z5 F6000 ; lift Z relative to current position
    G1 H1 X-259 Y-250 F1800 ; move quickly to X and Y axis endstops and stop there (first pass)
    G1 H2 X5 Y5 F6000 ; go back a few mm
    G1 H1 X-259 Y-250 F360 ; move slowly to X and Y axis endstops once more (second pass)
    G90 ; absolute positioning
    ;G1 H2 Z-5 F6000 ; lower Z again
    G90 ; absolute positioning

    I tried different motor settings (more and less current) and also to stall the motor while printing ( as I read stall detection might not be active in manual mode). And also with the diferent R settings. But no luck, no message, no homing, nothing. is mikrostepping not allowed for the stallguard? Am I running the wrong firmware? (mine is 2.1 beta, if i remember correctly)
    Thanks for any helpful tips 🙂

  • Moderator

    You don't mention which board you're actually using. If it's the Maestro, it does not support stall detection with the 2224 drivers. If it's a wifi/ethernet then it does.

    Have you seen this?

    For firmware you should use this one:

    you'll need Duet2CombinedFirmware.bin, Duet2CombinedFirmware.bin, and DuetWiFiServer-1.23.bin.

    For motor current you should target 70 to 85% of the rated max of the motor.

  • Ah, thanks. Sorry I forgot to mention: I am using a Duet Wifi.
    My firmware is this one:

    Firmware Name: RepRapFirmware for Duet 2 WiFi/Ethernet
    Firmware Electronics: Duet WiFi 1.02 or later
    Firmware Version: 2.03beta1 (2019-02-03b3)
    So maybe it does not work with my version? I will try to update the Frimware next then

  • Moderator

    It should work, but yes, would be best to update.

    Also re-read the stall detection page and see if you are running into any of the limitations noted there.

  • Still not working after the update. I also reread the webpage how to set the stall detection up several times aready but it just won't activate. but maybe I have to increase the current of the motors a bit more ( I was just running at 70%). is there something else which could be wrong? Having the M915 command at the end of config.g is ok, or does it need a special place to be?

  • Moderator

    Having M915 in config.g should be fine.

    Can you send M915 in the console by itself and see what it reports back just to confirm it's settings are actually being applied?

  • Moderator

    How fast are you moving when you're trying to trigger it?

  • Moderator

    @xorlosch said in Stallguard not working:

    M92 X44.31 Y44.30

    I wonder if the low steps per mm on X and Y would have something to do with it? @dc42

  • The command is applied. I now try M915 X Y S-50 F1 R2. That should trigger on anything hopefully and then stop the print. how fast I a going is a loaded question. As far as I understood this only works while printing, so I set it u to print something. max speed should be 50 I think. lowest speed?

  • Moderator

    Ok, so just to confirm, you are testing it during an actual print? As far as I recall that's really the only way it will work.

    Have you experimented with the H parameter yet?

    Hnnn (optional) Minimum motor full steps per second for stall detection to be considered reliable, default 200 (try 400 for 0.9deg motors)

    I think this may be where your low steps per mm on X and Y may be coming into play.

  • the low settings for M92 X and Y should be quite typically for a belt driven carthesian printer. but maybe that is the problem. I just tried again and it still won't register. maybe also my current reduction to 30% is at fault. Or my jerk and acceleartion settings. I give up for now. maybe i can get it to stopp skipping layers by crancking up the current(which my last board did). Or I have to stop using mikrostepping, as that also seem to loose some torque for the single steps

  • As I understood the H settings are to prevent too many wrong triggers. Of course I could try to reduce it but 200 (which is also the dfault) should be the correct settings for my motors. And Yes: I started a print ech time I tested if the stal detection was working

  • but now that I think about it , that might be what stops me here, as the direct driven belts have the low steps per mm values, I might have been slightly below that vaue of 200 steps /s

  • Moderator

    @xorlosch said in Stallguard not working:

    I might have been slightly below that vaue of 200 steps /s

    That's what I mean. Try setting it lower. 100 or even 50 just to see if you can even get a trigger.

    @xorlosch said in Stallguard not working:

    maybe also my current reduction to 30% is at fault

    You're only using 30% current?

  • Ok that worked. I went to an agressive S-50 H10 and it instantly triggered. So now I have a at least a starting point for finetuning. I will post my settings when i am done (in the next days).
    30% I had as reduced power for my stepper motors :M906 X1050 Y1250 Z1100 E900 I30
    would that be too low?

  • Moderator

    @xorlosch said in Stallguard not working:

    30% I had as reduced power for my stepper motors :M906 X1050 Y1250 Z1100 E900 I30
    would that be too low?

    Do you mean the I30? That's for idle hold, not normal operation.

    The current for X Y and Z look reasonable, but as I said earlier. Target 70-85% of the max for the motor.

  • yes those values I had both set to 70%. now i increased to 82%

  • I tried setting up the stall detection but the axis is just too slow for stallguard to work. seems to be better suited for delta printers or core xy than carthesian printers :(. I had to go lower than H50 to detect stalls and then acutally all o them were false and it did not trigger on any real stalls. I will try installing smaller toothed gears for te belts (so that the motor neeeds more stes per mm) but i don't have high hopes. Has anybody got the Stall detection to work with carthesian printer with ow steps per turn?

  • Moderator

    @xorlosch said in Stallguard not working:

    I had to go lower than H50 to detect stalls

    What was the S value?

  • @Phaedrux with an S value of 7 or lower i detect a lot of false stalls. with a higher vslue i detect no stalls. but eitherway with both higher and lower s values (as low as 3) i could not detect real stalls.

  • Moderator

    @xorlosch Bearing in mind the limitations of stall detection

    • What motors do you have? Are they high inductance?
    • What speeds are you trying to measure? What is your standard printing/travel speeds?

    With you X and Y steps of 44.3 steps per mm (which is pretty low, nowadays), and 16x microstepping, this means you get 2.769 FULL steps per mm. If you're printing/moving at 50mm/s, that's 138 full steps per second, which is under the default H parameter of 200 full steps per second. You would need to move at 73mm/s to hit this. An H value of 50 is 18mm/s, which seems very slow, and is unlikely to produce good results. Are you really moving the axes this slow? Try reducing your accelerations (M201) to see if that helps.

    You could increase the full steps per mm by changing pulleys, as you've suggested, changing motors to 0.9º step angle motors, or use a gearbox on the motors. It just depends how important Stallguard is to you, and how much you're willing to spend to get it working!


  • @droftarts : not quite sure what the inductance of the motors is, but it really seems like the low speed is the problem here. As I mentioned the frame and motors of my printer are still the original Ridgidbot, which had some... let's say interesting design choices ;). The X and Y axis were using huge 36 tooth gears (with 2mm width gives about full 2,78 steps/mm). I acutally had bought allready smaller belt gears with 16 tooth but with the old ridgidbot overheating was the bigger problem so i skipped installing those.
    But now I will for sure install those! That should bring me then up to 6.25 steps/mm which would corespond to 32mm/s for a reasonable H value of 200. Am I correct? I hope that will work better then. (Which it should as then the motors have more torque at the same time also with the smaller bet gears)
    Just for interest: how many full steps does your cartesian printer use per mm?

  • Moderator

    @xorlosch said in Stallguard not working:

    Just for interest: how many full steps does your cartesian printer use per mm?

    The ender 3 for instance uses 80 steps per mm on X and Y. And that's 200 steps per rev motors, x16 microstepping, 20 tooth pulleys, and 2mm belt pitch. If you used 400 steps per rev motors or 16 tooth pulleys it's up to 200.

  • Moderator

    @xorlosch my Cartesian machine uses T2.5 belt with 16 tooth pulleys, 16x microstepping, 1.8 degree motors, for 80 steps per mm, or 5 full steps per mm. I usually print at 50mm/s max, and a lot of moves are half that speed. 40mm/s would be the target speed with this setup and H=200, but I’d probably have to drop H to 100. But I also haven’t set up stallgaurd to try it out! Perhaps tomorrow...


  • Thanks. Then it sound as if we are in the same ballpark at least. I also could find an old datasheet in the net for my motor: it has 2.5mH per phase.
    I actually like to print as fast as i can ;). In the past with the original setup i pushed up to 100 mm/s. But right after switching over to the Duet wifi I never quite got it back to work again as good as before ( I think the motors were runing near their current limit before). Still some tuning to do. Small prints are fine now, but with even midsize prints I get now all those layer shifts and that is why i was trying to get the Stall guard activated. And more torque will help me too 😉

Log in to reply