A4988 home state and home position

I am using a NEMA17/A4988 combination and it works fine with no problems. Out of interest I have some questions concerning the terms “home state” and “home position” as given on the Allegro A4988 DMOS Microstepping Driver data sheet. On many web sites these terms are used very loosely and seem to be interchangeable.

My interpretation of these terms is:

“home state” are the conditions, i.e. the current requirements, that need to be met in order to move the rotor to a “home position”.

A “home position” is a stable point and starting point for a 4 step cycle which will end at another stable point. The 50 toothed structure around the rotor leads to 50 of these stable points. Turning the shaft of an unpowered stepper motor will have a notched feel as the stable points are met and passed.

Question 1. For brevity I have greatly simplified things but in general is my understanding of the two terms correct?

Question 2. Does home state vary with microstep resolution?

Many web sites dealing with using the A4988 are cut and paste jobs of one another. One paragraph common to them says “Home state is basically the initial position from which the motor starts, and it varies based on microstep resolution.”

My understanding based on other sites and the A4988 data sheet is that the device starts at the same point regardless of the microstep setting, a home position reached by the home state setting of a 45 degree electrical angle.

Question 3.

The A4988 data sheet says “the home position which is by default common to all step modes” and also talks about driving the motor to the “Home microstep position”. So there is a common home position and a home microstep position. Are these the same thing or is there something I am missing?

Thanks for any help anyone can give.


I am not sure how other websites use those terms, but if your concern is the A4988, then I suggest focusing only on what the A4988 datasheet says. In the A4988 datasheet, home position, home microstep position, and home state, all seem to refer to the same thing; the driver being at a 45° step angle. That definition is most clearly stated at the top of Table 2 on page 17, and it does not vary with the microstepping mode.

- Patrick

Thanks for your reply Patrick.
Looking again at the data sheet it mentions the RESET input setting the translator to a predefined home state with no mention of moving the rotor. This re-enforces my interpretation that the home state is an address or set of instructions that when acted upon will move the rotor to a physical home position.
Again thanks for replying. The information is not essential to what I am doing but it is nice to have some clarity when sorting through some of the guff on the web.

It sounds like you might be expecting the driver to move the stepper motor rotor to a specific location based off of some knowledge of its current position, but that is not the case. The stepper driver has no knowledge of where the rotor is or even that a stepper motor is connected. When the driver goes to it’s home microstep position, that means it will start applying a forward voltage across both pairs of output pins corresponding to 70.71% of the current limit (as indicated by the table I mentioned in my previous post), regardless of its previous position. So, whenever that happens (on start-up, after reset, etc.), the maximum distance the rotor moves should only ever be a few full steps, and the rotor is not guaranteed to go in a specific direction to get to its resting state.

One thing that might potentially be causing some of the confusion is that encoders that are often used with stepper motors will often have a Z-channel that triggers once per rotation, and the point where that triggers is often called a home position. However, the encoder and how that feedback is handled is completely separate from the driver’s internal circuitry (at least in the case of the A4988 and the other stepper motor drivers we offer).

- Patrick

1 Like

I know the motor has no knowledge of its current position and that on startup or reset it will go to the nearest of one of 50 home positions. No problem with any of that I just was just looking to get the terms clearly defined.

Thanks again for you time.