Overview
The benefits of microstepping are fairly straightforward. As the step size of a stepper motor is divided into smaller increments the positional resolution of the motor shaft increases. For example, a 1.8 degree stepper motor running at its full-step size is not capable of moving its rotor any less than 1.8 degrees per step. For typical 3D printing transmission setups, 1.8 degrees is not sufficient for printing small features and curves. Special gearing or more intricate transmissions can compensate for large step sizes, but these solutions increase the complexity of the 3D printer, which introduces more costs and points of failure. Microstepping is accomplished through the stepper driver gradually transferring current between the two phases instead of simply switching the phases on and off (Figure 1).
“Electronic” Gearboxes
Nearly all stepper drivers marketed for 3D printing are capable of some amount of microstepping, and therefore, no extra hardware is required to activate this feature. Stepper drivers are digital devices, and the gradual transfer of current between the motor phases occurs in discrete amounts that approximate a sine/cosine wave (Figure 1). Typically, more expensive drivers will be able to perform more microsteps per full step. In theory, a full step can be divided into any integer or even non-integer amount of microsteps, but usually stepper drivers feature 8, 16, and/or 32 microsteps per full step. Later in this section we will talk about the diminishing returns for drivers that offer more than 32 microsteps per full step. The most commonly used microstepping increment for 3D printing is 1/16th (16 micro-steps per 1 full step). The A4988 stepper driver readily supports 1/16th microstepping
Microstepping, in some instances, can be used to replace mechanical gearboxes and has earned the name "electronic gearbox.” Similar to a gearbox, increasing the resolution of the stepper by increasing the number of microsteps per full step can decrease the maximum speed of the stepper motor. This speed bottleneck can be overcome by using a more powerful microcontroller. In a future update to this section I will go into more detail as to why this is.
Ringing
When running a stepper motor at low speeds in full-step mode the movement becomes discontinuous and as a result oscillatory (Figure 2). The oscillations occur because the rotor will overshoot the step size before being drawn back in the opposite direction. This is known as overshoot or ringing and will occur multiple times before the rotor comes to a rest. These oscillations generate noise and vibrations. At the average 3D print speed ringing is not present, but when a carriage switches directions, which occurs very often in 3D printing, ringing will be present in the deacceleration and subsequent acceleration of the carriage. In my experience, the audible noise that results from stepper motor ringing can easily travel through the walls of a house making it difficult to fall asleep if a 3D printer is running in a closet adjacent to your bedroom. In microstepping, where small step increments do not produce high torque, ringing is less prevalent at lower speeds. Vibration and noise free movement can be achieved at 32 or greater microsteps per full steps. This does mean that a 3D printer with A4988 stepper drivers operating at 1/16th microsteps would run louder than a 3D printer with Trinamic stepper drivers operating at 1/128th microsteps.
This introduction has, in some ways, oversimplified ringing. It should be noted that ringing can still occur during microstepping if the load conditions are extreme (e.g. the carriage is very heavy) or if the stepper motor is ordered to deaccelerate too quickly. Microstepping is a valuable technology for 3D printing because it increases resoltion while decreasing noise, but can you have too many microsteps?
Very Small Micro-Steps
Very small microstepping increments exist, such as dividing 1 full step into 128 or even 256 microsteps, but there are diminishing returns for using smaller and smaller microsteps. While resolution increases with decreasing step size the motor’s accuracy remains unchanged. This is kind of a complicated topic and I will provide further resources but to oversimplify, all stepper motors have some amount of error in their full step size let’s say 0.05 degrees. Therefore, the step angle of a 1.8 degree stepper motor is somewhere between 1.75 and 1.85 degrees. As you break down a full step size into smaller and smaller increments eventually you will approach this error. This may be a little confusing because many of the Trinamic stepper drivers operate at very high microstep counts (>128). However, these drivers are not seeking increased resolution with these high step counts but instead are using these very small microstep intervals for smoother operation of the stepper motor. I highly recommend reading about microstep interpolation to learn more about the microstepping magic behind the Trinamic stepper drivers.
External Resources
There are a lot of different ways to successfully build a 3D printer, many of which are not covered on this website. If you want to learn more about microstepping, then click through some of the links below to external websites and forums.