Stepper Motors Strange Behaviour

Hello everyone,

I am working in a project in which I need to control at the same time three NEMA17 stepper motors. In order to do so, I am using three DRV8825 drivers working at 12V connected to an Arduino MEGA.

This Arduino is generating the pulses in velocity ramps so that we have an accelerated movement to reach the goal.

The schematic I am using for connecting the drivers is the one that the manufacturer recommends: enter image description here

With a digital analyzer, I can see that my velocity ramp is being generated properly:

enter image description here

In this picture below you can see how steps (ST) are generated once the direction (DR) is set for each of the motors. The time waiting after the direction change is bigger than the necessary established by the manufacturer and also does the duration of the step pulses.

Following this, the motors are supposed to make an accelerated movement until reaching a certain position and then, decelerate and stop.

Although, I am facing the problem that, in some cases, one of the motors (not always the same one) makes a few steps in the opposite direction of the movement and, after that, it executes the expected movement. This leads to, even of making the three motors perform the same movement, one of them finishes differently.

I tried to change the drivers but the same happens. Also, as I said before, I have checked that the pulses are correctly generated.

I would like to know if anyone has faced a similar problem or knows any reason that could lead to this strange behavior.


Please post the motor specifications, or a link to the data sheet.

To what value did you set the current limit on the driver?

I am using NEMA 17 motors with 1A/phase current by datasheet. In order to use them, I have set the VREF to 0.55V to reach 1.1A as current limit since, as I am using fullstep mode, my motors are only receiving 70% of the current.

Is the motor power supply capable of delivering the required current?

Are you using the Pololu DRV8825? Pololu’s instructions for setting the current limit may not apply to clones.

Do the motors work as expected alone, or in pairs?

Yes, the power supply is capable of delivering 50A, way enough. The drivers I am using are official ones. Motors seem to work as expected in pairs.

So, apparently the motors I am using have a optimal work range that doesn’t start at 0 but 200PPS. Though, even generating properly the velocity ramps, when using a low acceleration, my motors would be running for some steps outside this optimal range, causing strange movements at the beginning of the movement.

In order to solve it, these non-optimal low velocities are avoided while accelerating so that motors enter directly to the optimal work area.

I’ve never had a problem causing motors to step slowly, even as slow as once per hour. I wonder what the real problem was.

Jim, maybe I didn’t explain myself properly. I mean that, due to my motors’ characteristics, at some low frequencies they start doing strange movements since the vibrations at those frequencies produce resonance. Basically, this is produced as the frequency of the vibrations match the motors’ natural frequencies, producing undesirable performances at those frequencies. In this link there’s a brief explanation on what this is how and how it can be reduced: What is stepper motor resonance and how can it be avoided?.

For now, I have modified my velocity ramps generation in order to avoid those resonance frequencies and my motors now behave as expected.

Thanks anyway for your time and your help!

That makes sense. Most people use vibration-dampening mounts and/or microstepping to avoid resonance.

1 Like