Stepper motor drops steps

Hi All, I am trying to control a stepper motor, Motor2 (Yaxis). I used a4988 driver with help of CNC shield and Arduino uno. I am using AccelStepper library to mange the steps. However, the Motor2 seems drop steps and does not getting to right position, it looks like it pull back time to times (i run the motor freely did not plug fro any system) i tried different setups but did not help.

Any help, idea


Hello.

I am not very familiar with the AccelStepper library and you did not mention which particular CNC shield you are using, but there are several factors that could contribute to why your motor might be missing steps. One immediate red flag is that the stepper motor you linked to has a rated current of 1.7A per phase while our A4988 carrier can only continuously deliver approximately 1A per phase without additional cooling. If you have not already, you might check that your board’s current limit is set to the maximum that it can handle (VREF = 540mV corresponds to a 1A limit on our A4988 boards made since 2017) so it supplies your motor with as much power as it can without overheating. You might also consider testing your motor with a higher supply voltage, a lower load, and at a lower stepping rate to see if those measures improve your results at all.

Ultimately though, I suspect the A4988 will just not be appropriate for that motor, so I you might consider testing your motor with a higher power driver. We have several stepper motor drivers that can handle higher currents than the A4988, so you might consider one of those:

https://www.pololu.com/category/120/stepper-motor-drivers

Specifically, our DRV8825 and our compact TB67S249­FTG carriers are the most powerful drivers we have available in the same form factor as the A4988.

If you want to post some pictures of your setup that show your board and all of your connections, I would be happy to take a look and let you know if I notice any problems. Please also indicate what power supply you are using.

By the way, I noticed in your code that you set X_MAX_SPEED to 600 just before setting X_SPEED to 1000, so I suspect there is a mistake there.

- Patrick

You may get better result if you use DRV8825 instead of A4988 as per Mr. PatrickM suggested. There are many differences between these two including the output current, step pulse period and many more. DRV8825 is more appropriate for high current motors. Here is an article that outlines the difference between these two.

Many Thanks!!!
In general i am using black A4988 + cooling…
I will try the DRV8825
Regarding params, yes, mistake, i had play with the param to troubleshoot the system