Mysterious reverse actions of motor, using pololu drivers

Dear all,
I have been getting strange actions from my stepper motors using Pololu A4988 and DRV8825 drivers for a while, and which I failed to find solution on the internet so far. The motor could run smoothly most of the time, but on some incidents(high loading probably?), it would sudden run at a reversed direction with high speed when a move command issued (both the direction and speed are different than the command issued). I’ve checked the input PULSE/DIR signal with oscilloscope but find no error in it. Multiple driver, stepper motors were tested and all exhibits the same behavior.
This is the stepper motor that I’m using at the moment, and driving it with DRV8825. The current limit is set to 2.1A(1.05V at the tuning resistor), the motor driven with 24V, and the input signals are in 3.3V. Full-stepping mode is used throughout most of the time, with half-stepping mode for deceleration. I have perused over the driver descriptions and the chip datasheet, but unable to find any information that might related to the cause. The phenomenon usually occur when the loading is high, so I’m suspecting that it is the result of missing steps, or it triggered a fault/fail-safe mode on the driver.
I hope some experts on stepper motor or this driver can enlighten me in this problem. It has been haunting me for a while :neutral_face:
Best regards,
Thomas Lin

Hi, Thomas.

I am sorry you are having trouble with your stepper motor system. It is hard to tell what might be going on without knowing more about your whole setup. Does the issue happen at a specific time or during a specific condition (i.e. always after 3 minutes). Could you post some pictures of your setup and the connections to your driver? Also, could you describe how you are using the stepper motor?


Hi, Claire, thanks for replying.

Here are the actual picture of the driver board and the schematic. The motor is connected to the driver through the left connector, and the right connectors are power wires and signal wires exiting from the breakout board of frdm-kl25z (mbed based). Note that the Pololu driver board is used up-side-down as I apply heat sink onto the bottom of the board. Overheating possibility can be ruled out as presently the driver only reach about 30-40 deg C.

I’m afraid I cannot provide the actual image of the setup of the stepper motor as I’m developing a [automatic label peeling & applying machine] product (the image might not help much anyway). The stepper motor is used to direct drive a shaft that retrieves a roll of label carrier paper [i.e. plastic-ish surface paper that holds labels on top for sticking] after the labels had been peeled and applied.

Unfortunately I cannot reproduce the scenario willfully. All I can say is that the problem seemed to occur when there is a moderate loading exist, and it is rather random. (We took the machine to exhibition and allow it to run in low duty cycle, and the phenomenon will occur 1-3 times a day). I’ve checked the behavior of the motor when it is over-torqued, but ruled out the possibility as the behavior differ and the phenomenon happens far from its torque limitation (If over-torqued, it will start to stutter and missing steps, but no reversing and high speed rotating happens). Other possibilities like noise and signal problem were also investigated with no avail at the moment.

According to my memory, the high speed reversing would persist about 2 second before it shutdown by itself (to be checked). In the case of A4988 in another model of stepper motor, the phenomenon will occur much longer. We have tried industrial grade IPC controller as signal input and the problem persist.

Still investigating,

From your description and the fact that the problem seems to get worse with more load, my first suspicion is that the driver is overheating, though I don’t think that would cause the driver to go backward unless there is some force in your system that is constantly pushing back on the motor. You mentioned that the driver is only getting to 30 or 40 degrees C, but that seems unbelievably low considering that our DRV8825 carriers are only rated for 1.5A. Even with a heatsink, 2.1A seems like more current than the driver would probably be able to handle without overheating. How are you measuring the temperature of the driver chip? Have you measured the current through one coil of the motor to confirm it is 2.1A? Also, in your picture there is a silver tab sticking off the right side of your heatsink; what is that for?

If the problem only ever happens after extended periods of running, then another possibility is that there is some kind of overflow happening in your code that causes it to output the wrong signals. However, it sounds like you have already looked at the outputs of your controller with an oscilloscope while the problem was occurring and it still output the right signals, so that seems unlikely. Do you have a common ground between the driver and your controller?


Hi Claire,

I’m not sure if I’ve been mistaken, but the driver description page on your website suggest it can be rated up to 2.2A per coil with sufficient cooling, and the datasheet of DRV8825 suggest it is rated up to 2.5A. I don’t think it is an overheating issue since both the motor and the driver are rather cool(I can feel that they’re both cooler than my hand). The reason of the device generate little heat is because we kept the motor running about 20~40% duty cycle only. Since our application does not require a holding torque, we disable the motor during intervals between actions. We did try enabling the motor full time and the driver could get up to 60+ deg C. Also we installed a 6cm fan above the heatsink. The silver tab you mentioned is where we put our temperature sensor, in case of breakdown of some sort (We also put one on the side of the motor). I haven’t measure the current directly before, but I’ll do it later.

The problem seemed to be happening randomly, definitely not only after extended periods of running. I’ll recheck on all the signals since I’m out of clues. And yes the controller and the driver did share a common ground.

Thanks for trying to help,

Thanks for the additional information. I agree that given that, it doesn’t sound like the problem is overheating or an overflow. Unfortunately, I am not sure what else might be going on. If you are able to take some video of the issue or collect some more data on it when it happens again though, I would be happy to look at it.