DRV8825 Only Likes Going in Multiples of 4 Steps

I disable/re-enable my stepper when it’s inactive.

I have one of the MS pins floating are being driven HIGH.

For some reason, the motor jumps backwards unless it’s being driven in multiples of 4 steps.

It’s a 200 step motor so the number of available angles I have is reduced to 50 like this.

Any idea how I can fix this and why this is happening?


Could you please tell me a little more about your setup? How are you disabling the driver, and what exactly are you doing with the microstepping pins? Also, could you please post the simplest code example that demonstrates the issue?


Hi Derrill,

The PCB hole that can be seen on either the 4988 or the 8825 card is a connection point to the pin that bring in the current setting voltage. I attach a wire to that hole and then I drive that pin low thru a low resistor value that winds up being in parallel with the bottom of the pot that sets the running current that you want. The insertion of the low value resistor should be controlled by an open collector transistor or IC like a 7407 OC buffer. Do not use an output directly from a microprocessor that can drive both high and low unless you are sure it will only drive low!! Buffer it as I mention above. The buffer can be controlled
by any pin you please on whatever micro you are using to generate Step and DIr signals.

Then it is simple to deal with changing the current level under program control before. Just turn the motor on to high current mode before starting step signals. When you are done with that motor, just lower the current to some low level (as long as you do not need any significant holding current in the application.

This way of controlling the power to the motor does not affect microstepping because it does not reset any of the internal micro step tables. Hope this helps

Thanks for the insight BobS - that’s some crazy stuff. I have another thread about this issue that I posted my response to here: