DIY Dual Stepper Motor Driver Shield for Arduino

Stepper motors are brushless DC motors which can move in discrete steps thanks to the special coil arrangement inside. They are very popular in DIY and industry projects which require accurate mechanical movement control.  In this SSolo PCB project, they building a dual stepper motor driver shield based on two Allegro A4988 ICs which can supply up to 35V and 2A and provide overcurrent and thermal protection.

There are two separate motor drivers on the board, DRIVER A and DRIVR B. Each driver has separate power and motor phase connections over the terminal blocks and control signals connected to Arduino. There are five driving modes controlled by MS1, MS2 and MS3 jumpers which sets the Full Step, Half Step, Quarter Step, Eighth Step and Sixteenth Step modes that affects the motor movement accuracy.

The jumper and the resistor connected to the ROSC pin sets the decay mode of the driver. If you solder the 0R resistor and remove the jumper, the pin is pulled to the Ground. If you don’t solder the 0R and place the jumper, the pin is pulled to the VCC.  More detailed explanation about the decay modes are explained on the A4988 datasheet.


There are both SMD and through hole components on the board. The most difficult part of the assembly is soldering A4988 ICs. First you should apply solder to the PCB pads and then place and align the IC very carefully. Then by using a hot air gun, apply heat just under the PCB to the IC region. The solder will melt and the IC will be self aligned and soldered.

To improve the thermal performance, small heatsink can be attached on the ICs. To determine whether cooling is required in your application, you can calculate the junction temperature in your application ambient by using the Rdson resistance and the junction to ambient thermal resistance of the component.

Source: electro-labs

Leave a Reply