G320X P.I.D. Tuning

The G320X can be tuned with either an oscilloscope or by ear to ensure that it is maintaining position while under load. The guide below is the quickest way to tune the drive without an oscilloscope and will result in a rigid motor shaft that will maintain position under any load.

1) Set the G320X following error limit switches to 1/2 of your encoder line count. If you use a 500-line encoder, set the following error switches to +/- 256.

2) Turn the “I” trimpot fully off (CCW).

3) The “D” term setting HAS to lead the “P” term. Turn “D” up first, then “P”, turn “P” down first before turning “D” down. You can get violent motor oscillations if you don’t follow this rule.

4) Set “P” and “D” to 1/4 full scale. The “D” term is what causes all the noise. Turning it down decreases motor humming, turning it up increases motor humming.

5) Turning “P” increases servo stiffness, turning “P” down decreases it.

6) Adjust “D” and “P” until you have OK servo stiffness. Try to turn the motor using your thumb and index finger. A stiff servo will resist a lot, a loose servo will resist very little.

7) Make the settings where the servo is reasonably stiff while making little or no noise.

8) Now adjust the “I” term CW. It will greatly increase servo stiffness. Once it’s adequate, let it be. You are done. The motor will be very quiet and it will be very stiff (resist being moved).

If you have any questions, please contact our friendly technical support team at [email protected] or at (714) 832-8874.

Sub-Microstepping on the GM215

Hey, we just published a new application note about one of the features on the upcoming GM215 – Sub-Microstepping. You can read about it here or on our website under the “Application Notes” section. 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.