Stepper Motors (Part 2)

Part 12, 3, 4, 5, 6, 7, 8, 9

Stepper motor drivers

These electronic devices are the interface between the stepper motor and the controller (e.g. Micro-controller, computer, etc.). Here is a short recap of the expected requirements for such an interface:

  • Drive Unipolar and/or Bipolar motors
  • Convert step commands into appropriate waveforms applied to the motor coils
  • Set direction (cw / ccw)
  • Use separate voltages for digital command and motor supply

In addition to these mandatory requirements, we may enumerate (highly) desirable requirements:

  • Over current protection
  • Over temperature protection
  • Open circuit or short circuit protection
  • Microstepping
  • Low power dissipation

Unipolar or bipolar?

The first decision to be made depends upon the type of stepper motor to be driven. Next pictures illustrate in an other simplified manner the two types of motors and the principle of operation of their related drivers:

Unipolar configuration

The term unipolar means that the current flowing through each winding always goes in the same direction.



  • Simple electronics


  • More complex wiring, higher cost of motor production
  • Lower motor size/torque ratio, as only 1 coil out of 4 is used for each angle displacement.

Bipolar configuration

In the bipolar configuration, the current flowing through each winding goes in both directions (H-bridges).



  • Simple wiring, lower cost of motor production
  • Better motor size/torque ratio, as 1 coil out of 2 is used for each angle displacement.


  • Much more complex electronics (H-bridge configuration)

Discrete or integrated design?

Based on the above requirements, the second decision to be made is: shall be build a discrete components based module or use an integrated module? Well, from the point of view of size, efficiency, performances and cost, integrated solutions are the most attractive option. This drove me to scan the available options, including the modules in use in most early 3D printers.

This module is based on the Allegro A4988 chip which is a highly integrated circuit containing all the enumerated requirements in a tiny package.


The component information is available from here and the  data sheet available from here. Multiple implementation of this component exist. The most popular module has been designed by Pololu and it is available from their site



The 2 banks of 8 pins make this module easy to plug on a bread board or on most 3D printers or CNC mainboards. From the picture above, we can observe the sub-miniature trim pot used for setting the trip point for triggering an overcurrent condition. These modules are available from many places at variable prices, always below 5€. The few ones that I bought on eBay came assembled in an antistatic package  containing an optional dissipator.


Here is an example of use of the module which is plugged on the breadboard from an arduino proto shield:


In its most simple configuration, the wiring is very simple


The only additional component is a 100µF capacitor used for filtering transient voltages. the A4988 can also drive unipolar stepper motors as shown below


Next post on same subject

Leave a Reply

You must be logged in to post a comment.