What is a stepper motor driver?

A stepper motor driver is an electronic device that is used to drive the stepper motor. By itself it usually does nothing and must be used together with a controller like PoKeys57CNC.

There are a lot of different types of stepper motor drivers but in general all do the same thing – move stepper motors.

Why do I need one?

Stepper motors require voltages and/or currents that the controller simply can’t produce. Therefor we need to use a stepper motor driver. This electronic device will transform our movement instructions from a controller in to a sequence where the winding in stepper motor will be turned on or off while still providing enough power to it.

All of this can of course be produced by a microcontroller driving a few FETs but the design and the programming would take time. Thankfully there are already made solutions.

Types of drivers

In general there are two types of drivers. The constant voltage drivers (L/R drivers) and constant current drivers (chopper drivers).

  • constant voltage drivers (L/R drivers):
    • they are cheaper than constant current drivers
    • use voltage to produce torque
    • usually not efficient
    • worse performance than chopper drivers
  • constant current drivers (chopper drivers):
    • more expensive
    • more complex circuits
    • use constant current to produce torque
    • much better performance than the L/R drivers

The constant current drivers are almost always used since there are many ICs available and offer much better performance. You can find integrated circuits which already have integrated FETs, these are usually meant for lower currents (up to a couple of A) since they are small and heat dissipation could be a problem. Another type uses external FETs and the maximum current is only limited by the external FETs used.

For example the PoStep25-32 uses an integrated circuit which has integrated FETs and can provide up to 2.5A unlike the PoStep60-256 which uses external FETs and can provide up to 6 Amps.

stepper motor driver postep25-32stepper motor driver PoStep60-256

Microstepping

Stepper motors move in steps which is usually 1.8°,that is 200 steps per revolution. This can be a problem when we need small movements. One option would be to use some kind of transmission but there is also another way – microstepping. Microstepping means that we can have more than 200 steps per revolution and in turn have smaller movements. This option is already integrated in most ICs and can be configured by simply moving a jumper like on PoStep25-32.

When driving stepper motors with full steps the output of the stepper motor driver looks like a square signal and produces rough movements. The bigger the microstepping the more the output signal looks like a sine wave and the stepper motor moves more smoothly. But there is a downside to this. With increasing microstepping value the torque drops a quite lot and if the value is too great it could happen that the motor can’t produce enough torque to even turn. Usually 1/4, 1/8 or even 1/16 can produce satisfactory smooth movements while still producing enough torque.

The following image shows how the output changes when selecting different microstepping values. You can see that the output looks increasingly more like a sine wave.

stepper motor driver microstepping

So what do these values even mean?

Microstepping tells us how many micro steps should a stepper make to produce one full step. The 1/1 value tells us that the stepper must make one microstep to produce one full step (so there is no microstepping). Value of 1/2 is called a half step and tells us that the stepper motor must make 2 microsteps for one full step. This means that the stepper motor should make 400 steps for one full revolution. A value of 1/8 will tell us that the motor should make 8 microsteps for one full step and 1600 steps for one full revolution. The same principle applies for all of the microstepping values.

How to drive the stepper motor driver

Most stepper motor drivers have a step/dir input. This means there are only two signals needed for each driver. The step signal is used for making steps and looks like a PWM signal. Each pulse means that the stepper will move for one step (or microstep). The dir signal means direction and is used to signal in which direction (CW or CCW) will the stepper turn.

Conclusion

We have found out that the stepper motor driver is a must have if our design requires the use of a stepper motor since the controller can’t produce enough current and enough high voltage. There are different types but the chopper drivers offer the best performance. Also the microstepping offers a great solution at first sight but produces a problem of decreased torque. It is still extremely useful but must be used properly. There are a lot of different ICs available for driving the stepper motor and many already made solutions like PoStep25-32 and PoStep60-256 which provide plug and play solution and are easy to use.

And if you would like to learn more here is a great starting point.