Sub-Microstepping on the GM215

Hey, we just published a new application note about one of the features on the upcoming GM215 - Sub-Microstepping. The GM215 has many new features that can get the most out of your stepper motor and we will be posting about it here and on our website. As always, if you have any questions please feel free to leave a comment or shoot us a message using our "Contact" page!



A standard stepper drive has a fixed set of resolutions where each full step location of the motor is chopped to a smaller set of steps, known as microsteps. This means that a motor with a step angle of 1.8 degrees will have 2000 stopping locations with most ten microstep drives and will have noticeable pulsing at low speed. If a motor is being run at high speed this will not make a difference, but it can make or break a design at low speed.

The GM215 is different; every microstep is further broken up into an additional 32 Sub-Microsteps. This gives a step motor the smoothness of a servo with a 16,000 line encoder on it while operating off of the same frequency as a normal 10 microstep drive. Low speed jittering is nonexistent with the GM215 which, combined with high speed full step morphing, will result in the smoothest motor movement possible without sacrificing motor torque.

Figure 1 shows a normal 10-microstep motor current waveform set at 3.6 Amps per phase at a motor speed of 400 microsteps per second (12 RPM). Distinct changes in current (steps) can be seen for every input microstep pulse; this step change in phase current will cause motor vibration at very low speeds.


Figure 2 shows a linearly interpolated 10-microstep waveform. The space between each step change in current is now linearly “filled in” with 32 sub-microsteps to give the motor an effective 320 microstep smoothness. A normal 320-microstep drive requires a 3.2 MHz step pulse frequency to get 3,000 RPM from the motor. The GM215 requires only a 0.1 MHz step pulse frequency to get the same speed.


Figure 3 shows the individual sub-microsteps over a small range of the Figure 4 waveform. Each cycle of the yellow trace is the 10-microstep input step pulse. There are 16 sub-microsteps seen per input period; the other phase winding's sub-microsteps are interleaved for a total of 32 sub-microsteps.


The GM215's FPGA measures every step input period and then divides the measured time period by 16. The result goes to a timing circuit that produces exactly 16 evenly spaced pulses over the span of every input pulse period.

Categories: Application Notes Step Drives