Nema 8 Stalls at high speeds

Hello Everyone,
I'm experimenting with an extruder that I made that has a 40:1 reduction ratio; This is necessary since the motor moving the extruder is a tiny Nema 8. In order to make the extruder push the filament at a desired rate, I had to set the Steps per mm of the extruder motor at 5841 and that bring the stalling Problem:
With those steps per mm, I can't move the extruder with feed rates above 220mm/min because it starts Stalling. 
I tried a couple of things to fix it, First I change the current from the board but the problem remains. Then I tried to place a Nema 17 instead of the Nema 8 and it still has the same issue, at the same feedrate.

How can I fix this? Is there any setup that I'm missing that could let me move the motor faster?
I have seen plenty of NEMA 8 and 17 running really fast so I don't think the problem is on the motor itself.



  • What processor does your board have? Your limit seems 21KHz and for AVR based boards 21KHz is already much and they need double stepping to reach it. For higher speeds you need even quad stepping. If you are using microsteps reduce the microstep level. Precision is not your problem anyway. The other issue is that a faster stepper motor looses torque adding to the problem. You normally get a datasheet with rpm versus max. torque, so check if you are leaving the good area at that speed already. Last thing you can try is move motor without load to see if it would run at lower speed without extra forces or if the stepping timing is the problem.
  • Thanks for the quick answer!

    The board that I'm using is a very shitty MKS Base V1.4 which is base in an arduino Mega 2560, It doesn't have any jumper to change the microstepping of the motor. All the tests that I mention above were done with no load, so the load is not a problem (yet...). I will try the same extruder on another printer that actually has jumpers and see if I can make it work.
    I already search everywhere and I'm pretty sure is not possible, but is there any way to reduce the microstep level from the firmware? or, do you know if there is any method to reduce the microsteps on this shitty boards?

    (the drivers of the board are A4982 and are integrated)

  • Microsteps are set by pins MS1,MS2,MS3 and most like then high to get highest microsteps. You can cut the pins to prevent them going high but then you have floating input which is also not good I guess. So you additionally need to add a bridge to GND. That is just what the jumpers do - switch between gnd and 5V.
  • Hello again, 
    After some time I purchase a propper Arduino Mega 2560 + Ramps 1.6 and DRV8825 for my printer. I'm going over this idea again and I found some issues:

    I set the driver to run on full steps (withoud any jumper), then I enter the correct step/mm on the firmware (200 steps/Revolution, 40:1 reduction, 7mm diameter pusher gear so -> 364 step/mm) and the extruder keeps stalling. I tried lowering the frequence when double and quad stepping kicks in to 10000hz and changing the DOUBLE_STEP_DELAY from 0 to 1ms, but it didn't chage anything. Then I Tried disabling quad stepping and the results where the same, what leads me to believe that the quadstepping wasn't kicking in in my previous test

    Just to give a little more information:
    I tried the same test with Marlin and the results were promising but not entirely, in that case the extruder run Perfectly ok at any RPM when the Steps/mm where 200, but as soon as I put 364, the extruder couldn't go above 5.5mm/s. This is VERY weird since with 200 the extruder could easily go to up to 150mm/s.

    Thanks in advance for your help,

  • I ran another test similar to the one on marlin on repetier, and the following thing happened:

    With 100 steps/mm, can literallty run at any speed, I tested even with G1 E200 F48000 and it spined like a propeller. But as soon as I change the steps/mm to 200 or 400, it can not go above F1800. All this test were done with the quadstepping turned off and on with the same result.

    Why is this happenning? In my mind, if the extruder is able to run at 200mm/s with 100step/mm, it SHOULD be able to run 100mm/s with 200 step/mm, since the signals send to the stepper are technically the same. I want to clarify that I don't know anything on how the firmware internally works so I could be saying really dumb things.


  • 2 things happen when you increase steps per mm. The jerk and acceleration increase with same factor. So if this works with low acceleration/jerk you should half the values if you double steps per mm. That it is same ratio again. With double step at 10000Hz in avr and 384step/mm your limit is somewhere at 50mm/s when 20000hz is reached. With quadstepping you might reach 40000hz, but then you need to have no delays. With delays the limits go down massively as they eat a lot of cpu - during delays nothing gets done. So 1us delay at 40000hz is 2us (up,down) per step = 40000 *2 = 80000 us/s = 80ms/s = 8% cpu waste for a cpu working at it's limit. For faster speeds you need a 32 bit board and drivers without required stepper delay. Then you can do 100000Hz and more.
Sign In or Register to comment.