My favorite motor has always been the stepper motor. It does not matter if it is bipolar or unipolar. It does not matter if it is permanent magnet, variable reluctance or hybrid. Either way, I find the stepper to be the most appealing motor out there. Why? Because it steps! This is an excellent outcome from such a brilliant topology, as now I can control both position and speed, quite accurately, without the need of cumbersome feedback mechanisms or hard to tune PID loops. All I need is a set of very simple algorithms to take my motor from position zero into position Theta at whatever speed the application deems necessary.

But as satisfying as this motor topology sounds, there is one little problem with steppers. And what would that be? They step! What seemed to be the advantage is also the main disadvantage. Once they are constructed, the shaft movement on a per step basis is set in stone by the electromechanical design. And to make matters worse, increased step resolution usually costs you – literally! If you want a 200 steps per revolution motor, your actuator will cost more than a 48 steps per revolution motor of the same size and power output.

As one of my college professors used to say, whoever comes up with the law also comes up with the hammer to break it. Luckily, steppers are no different. Even with a stepper mechanically built to achieve any given angular resolution, there is a fairly common technique called microstepping, where you can modulate the winding current to induce finer pitch steps or motion in fractions of a full step. Hence, for a 200 steps per revolution stepper, one could achieve 400, 800, 1,600 or even up to 51,200 steps per revolution. And all of this without having to invest a single extra cent on the motor!

If that sounds too good to be true, it’s because it is. The reality is that microstepping works, but only to a point. Let’s take for example one of the motors I use the most, the PK266A from Oriental Motor. A quick glance at its datasheet shows this 200 steps per revolution (or 1.8 degrees per step) motor has a step accuracy of about +/- 0.05 degrees. In other words, if I were to start from exactly 0 degrees, issuing a single step should take me to exactly 1.8 degrees. However, due to the accuracy uncertainty, the shaft’s final position can be found to be anywhere in between 1.75 to 1.85 degrees.

To better visualize the implications, let’s imagine the stepper is being used as a linear actuator to drive an ACME lead screw with a thread pitch of 10 threads per inch. In this case, one stepper shaft revolution would be equal to a tenth of an inch or 100 mils. A single full step would then imply a linear motion of 0.0005 inch (50E-5 inches). This accuracy is fairly common in typical CNC machines like the one I use at home, and I can assure you, 50E-5 inches resolution is more than enough for me. This is because the uncertainty introduced by the step accuracy makes each 50E-5 inches transition between 48.6E-5 and 51.4E-5 inches. The stuff that I build is so large, this error is completely negligible.

Let’s assume, however, that I DO care about smaller features, with 50E-5 inches being too large. Like any machinist enthusiast, I want to increase my resolution! By employing microstepping, I can decrease the step size of my lead screw. For example, I should be able to move 25E-5 inches with half stepping, 12.5E-5 inches with quarter stepping, 6.25E-5 inches with eighth stepping, and so on until I reach 0.19E-5 inches with 256 degrees of microstepping. What an awesome machine! By just adding microstepping, I have taken my CNC equipment to space age technology, without having to invest in new hardware.

But have I?

The step accuracy of +/- 0.05 degrees translates into a linear error of +/-1.39E-5 inches. As I try to move in smaller and smaller microstep increments, the ratio of this error to the respective microstep angular motion grows larger, because increasing resolution decreases microstep accuracy. For example, at eight degrees of microstepping, potential error could be as large as +/-22.4% for each microstep position or a whopping 88.88% error with 32 degrees of microstepping. And this is only considering the inaccuracies as imposed by the motor, not the errors associated with the current regulation engine, which must also be considered.

It’s easy to conclude that microstepping is a useless technique, but don’t rush to this conclusion. While the error percentage can increase with higher resolution, this only applies to absolute positioning. Benefits can be achieved from relative positioning accuracy with increased microstepping resolution, as long as the stepper motor can react to small changes in current. But that is a completely different discussion.

The most important point to realize is that microstepping can not increase resolution to infinite levels, while at the same time, maintaining the uttermost accuracy in both absolute and relative positioning. Steppers are not 100% accurate, and the current regulation engines aren’t either. On the other hand, microstepping provides the ability to overcome resonance at low-stepping rates. Resonance is the main culprit behind unwanted vibration and torque loss, which can be successfully overcome by reducing the amount of shaft angular travel.

Texas Instruments offers a series of highly capable motor drivers that deliver high-quality and high-resolution microstepping to your bipolar-stepper motor. Examples include the:

  • DRV8811, DRV8821, DRV8824 and DRV8825, which contain an internal indexer with all the logic needed to properly articulate bipolar steppers with up to 32 degrees of microstepping.
  • DRV8412, DRV8432, DRV8802, DRV8812, DRV8828 and DRV8829, which allow the user to control the current regulation engine with a microcontroller or DSP while achieving more than 32 degrees of microstepping for applications needing the best motion quality at very slow speeds.