EasyDriver stepper motor driver

EasyDriver V1 Picture EasyDriver V2 Picture EasyDriver V3 Picture
EasyDriver V1
EasyDriver V2
EasyDriver V3


Description:
Bruce Shapiro got me to design and build the UBW (USB Bit Whacker) project to solve his problem of disappearing parallel ports on computers. The UBW design has exceeded all of my expectations. As well as meeting the original design objectives, it has proven itself a great platform for many forms of firmware. But there was still a problem! Bruce traditionally used the UCN5804B stepper motor driver chip for his EggBot classes because it is easily breadboardable and very simple to use. Unfortunately, they are now $17 each and very difficult to find. Bruce wondered if I could design and build a replacement driver that would still be mountable on a breadboard, would still just need two input lines (step and direction) and would drive bi-polar stepper motors. And so now we have the EasyDriver design.

Quick Specs:
Each EasyDriver can drive up to about 750mA per phase of a bi-polar stepper motor. It is permanently set to use 8 step microstepping mode. (So if your motor is 200 full steps per revolution, you would get 1600 steps/rev using EasyDriver.) It is a chopper microstepping driver based on the Allegro A3967 driver chip. For the complete specs of the design, read the A3967 datasheet. It has a variable max current from about 150mA/phase to 750mA/phase. It can take a maximum motor drive voltage of around 30V, and includes on-board 5V regulation, so only one supply is necessary. The best part - low cost. The parts cost is maybe $10, less if you make the board yourself.

I do not sell EasyDriver boards. This design is being released into the general public just like the UBW design. Anybody can take the design presented on this page and do anything they want with it. I'm providing Eagle schematic and board layouts as well as a Bill Of Materials and instructions on how to build and use the design.

However, the wonderful SparkFun DOES sell EasyDriver boards for $15 each!

Status:
(09/17/08)Daniel Thompson has created an awesome tutorial (with movie) on using the EasyDriver with an Arduino to run stepper motors! Thanks Daniel!
NOTE: Many people attempt this setup without connecting the grounds of the power supply, EasyDriver and Arduino (or other pulse source) together. It tends to not work that way! So make sure you always connect the grounds, and you'll have much better luck.
(5/23/07) Added project files for V3 design.
(4/6/07) Initial webpage created. Documents V1, V2, and V3 design revisions of EasyDriver board.

EasyDriver Hardware Versions Matrix

Schematic
Board
Picture
Guide
Eagle Files and BOM
EasyDriver V1
N.A. N.A.
Here
N.A.
N.A.
EasyDriver V2
N.A. N.A. Here
N.A. N.A.
EasyDriver V3
Here Here Not Available yet
Here Here

Version Notes:
Notes:
Q) How do I adjust the current limit?
A) Just turn R6 - the 10K current limit pot. :) At one limit, it will tell the driver chip to supply up to 750mA (limited by coil resistance and input voltage) per coil. At the other limit, it is 150mA/coil.

Q) What kind of stepper motors can I use EasyDriver with?
A) The Allegro 3967 driver chip that the EasyDriver is based off of is a bi-polar driver. This means it has a true H-bridge design internally, and sends current both ways through each of the two coils. You can use 4-wire, 6-wire or 8-wire stepper motors. The only kind you can't use is 5-wire stepper motors. (They need uni-polar drivers.)

Q) Why does EasyDriver get so hot?
A) PWM current limiting drivers (so-called 'chopper' drivers) are turning the coil currents on and off very rapidly. This makes sure that the maximum ammount of current (as set by R6, the current set pot) is _always_ flowing through the coils of the stepper motor, even if it is not moving at all. That's just how these things work. It means that the driver is constantly passing that much current through, and beacuse its internal resistance is not zero, it dissipates some heat. If you turn R6 all the way up so that 750mA flows through each coil, the entire EasyDriver board will get hot to the touch. I've never burned my finger on it, but it certainly gets hot. (At the minimum - about 150mA/coil - it only gets barely warm.) You can put a small fan blowing across the board if you want to. But fear not, the driver chip has a thermal cut out at 165 degrees C, so it will protect itself. The V3 boards have quite a bit of copper pour on them, to maximize heat dissipation, which helps a lot over the V1 board layout.

Q) What hardware/software can I use to test my EasyDriver?
A) In the very near future, I will be posting a Liberty Basic example code that can drive a UBW board or the parallel port directly for testing up to four EasyDrivers at once.

Q) How do I connect my EasyDriver up?
A) All nine of the pins on the EasyDriver are on a .100" grid. This means it plugs into a standard breadboard. Once you plug it into a breadboard, you can then plug in your stepper motor to the four motor pins (JP4), your 5V to 30V motor power to the GND and V+ pins (JP1), and your Step and Direction signals to the STP and DIR pins (J3). The GND pin in the lower left corner of the board is really only there for mechanical support, but it is tied to ground and you can use it as such.You could also construct a simple 'carrier' board (on a proto board or some such) with female .100" headers for all fo the EasyDriver pins. Then it would be easy to wire up as many EasyDrivers as you wanted to drive lots of stepper motors.

Note that I made a couple of mistakes with the EasyDriver V3 silk screen. The STEP pin is not labled, and the motor coil output pins are not clearly marked. This diagram should help clear up any problems:

EasyDriver V3 pin descriptions

Q) Man, this is a lot of work to just use the A3967 chip. Can't I just solder down a bunch of A3967s on my own board design and save a ton of money?
A) Sure. <grin> The EasyDriver board is for people who want to spend a little bit of money and not have to worry about making their own board to hold the driver chip. It is for people who want a design that will 'just work' instead of having to try stuff out for themselves. It is for 'software folk' (like myself) who want to spend time writing code, not debugging hardware. It is for people who want to build an EggBot but can't get the 5804B chips. If you're designing your own board, then don't use an EasyDriver! Just put the chip down on your own board yourself.



Questions? E-mail me at e-mail