Please see all COVID-19 updates here as some shipments may be delayed due to CDC safety and staffing guidelines. If you have an order or shipping question please refer to our Customer Support page. For technical questions please check out our Forums. Thank you for your continued support.

EasyDriver v3 Stepper Motor Driver

Replacement:ROB-09402. This has been replaced with a new version. This page is for reference only.

EasyDriver v3 is a simple to use stepper motor driver, compatible with anything that can output a digital 0 to 5V pulse. The EasyDriver requires a 7V to 30V supply to power the motor, and has an on board voltage regulator for the digital interface. Connect a 4-wire stepper motor and a microcontroller and you've got precision motor control!

Caution: Do not connect or disconnect a motor while the driver is energized. This will cause permanent damage to the A3967 IC.

  • A3967 driver configured for 8-microstep mode
  • Compatible with 4, 6, and 8 wire stepper motors
  • Adjustable current control from 150mA/phase to 750mA/phase
  • Power supply range from 7V to 30V. The higher the voltage, the higher the torque.


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Works great. You can adjust the current pot with an itty bitty screwdriver.
    One thing that would be really nice is a breakout for the /SLEEP pin of the A3976. It is currently connected directly to 5V on the board. It would be better to have a weak pull up to 5V and a breakout for anyone who wants to actually cut power to the coils.
    This little guy will draw the current you set it to no matter if it is moving or not. My application needed to be able to kill the holding torque for manual movements so I had to cut a trace on the board etc.

  • Speed Control:
    This is my first stepper and I have a question.
    I'm controlling this board from a
    PICAXE 08M. I'm controlling a Sparkfun stepper (ROB-09238) .
    I'm trying to use the PwmOut command to control the speed.
    I'm using duty cycle 50%.
    I can get it to turn or stop, and change the direction.
    But I can't seem to control the speed.
    It just seems to go one slow speed (~60 rpm or less),
    for a limited range of PwmOut period values;
    outside that range, it just hums but does not turn.
    What am I doing wrong?
    PwmOut looked like the ideal way to do this...

    • Todd,
      Yes, you could use PWM to control it. However, you need to be able to finely control the PWM rate, not just the %time high. Normal PWM just varies how long the signal is high, as a % of the total time. For doing stepping, you need to vary how often the line goes high each second. Does the PICAXE PWM function allow that level of control?\

      • Thanks for your help.
        The pwmout command takes the pin, the period, and the duty; for example, to yield 10,000 Hz with a 8 MHz resonator use: pwmout 2, 199, 400. The documentation mentions motor control.
        The period and duty arguments must stay in sync to keep a certain duty cycle.
        This driver spec said minimum 1 uS signal high time and 1 uS signal low time. That's 500,000 Hz. That would be 18,750 rpm - way higher than I need.
        At 10,000 Hz, my math says the motor should be doing 375 rpm, but it either goes ~48 rpm for a Hz in a limited range, or it just sits there and vibrates, if outside that range.
        FYI, for this code:
        Do PulsOut 2, 1 Loop
        which is a 1uS pulse, it goes about 48 rpm.
        And for this code:
        Do High 2 Low 2 Loop
        It go about 48 rpm using this code also.
        The voltage to the stepper is 5V.
        What am I doing basically wrong?
        If this stepper has a maximum rpm, what is it? Where is that documented?

        • Todd, I'm not exactly sure what's wrong. But the max RPM of a stepper is very much determined by the voltage applied to it (for a chopper microstepping drive like the EasyDriver) and the load attached to the motor. I've gotten these motors faster than 20,000 steps/s (which is only 750 RPM) with an EasyDriver, but you have to have very steady pulses, and you have to very slowly ramp up to that speed. Starting from a dead stop, about the fastest that I can go (unloaded) is about 4000 steps/s (which would be 150 RPM). All of this changes when you clamp a mechanical load on the stepper.
          As far as your code - I don't (yet) use Arduinos, so I guess I'm not absolutely sure what's coming out of the Arduino's pins. Have you verified the output with a logic analyzer or scope? My guess is that there is a lower limit to the amount of time those commands can generate, and you're below that limit, so they all generate about 1280 steps/second (which would be 48 RPM). Again, measuring this with a scope or LA will really tell you what's going on - don't always trust the software library.

  • Using the Sparkfun stepper (ROB-09238)
    and this EasyDriver v3 (ROB-08368):
    I wanted to share my findings
    for (newbies to stepper motors) on this combination:
    The EasyDriver has a 4-hole jumper (JP4 on the schematic).
    The first two holes (marked A) and the second two holes (marked B) go with chip outputs 2A, 2B, 1B and 1A, respectively. 1A/1B go to one coil on the stepper; 2A/2B go to the other coil on the (bipolar) stepper motor.
    On the stepper motor itself, the red/green wire pair go to one coil in the motor;
    The yellow/blue wire pair go to the second coil.
    1. In terms of the 4 holes on the EasyDriver v3 board, looking down, all of the following color assignments give clockwise stepper rotation when the DIR input is high:
    (R=Red, G=Green, Y=Yellow, B=Blue): BYRG, RGYB, YBGR, GRBY
    Red and Green must be adjacent; Yellow and Blue also must be adjacent; otherwise, the motor vibrates but does not turn.
    If you reverse the order of 1 pair of coil wires (red/green) or (yellow/blue) the direction reverses to counter-clockwise when direction pin is high.

  • It would be great to have full access to all the control pins - sleep and step selection are critical in many applications.

    • Your wish is my command! The next version (v4.2) is set to appear here any day now. All control pins are broken out to headers for your enjoyment.

  • Ah, that was incredibly painless. Thank you Brian Schmalz and Sparkfun.

  • I second "rikun". I need to pull MS1 and MS2 low so that the motor runs in full step. 8 microstep mode is too slow for me. Does anybody know how I can acomplish this?

  • Hi,
    How hard would it be to configure Easydriver to use different stepping modes? AFAIK MS1 and MS2 pins are now connected directly to +5V. However, there are two holes around them on the board that seem to be connected to them, do they serve any purpose? I'm not really that well educated about surface mount parts/boards, so bear with me :)
    Ideally I'd like to use my microcontroller to drive those two MS1 and MS2 pins high or low.

  • I agree, it would be nice to have some on-board control to shut it off...

  • OK I give up. What tool is designed to turn the current adjust pot? Even under a magnifying glass and lamp I can't see what tool is designed to interface with the pot to change it's setting.
    I assume I can figure out the current limit setting by measuring the resultant voltage on pin one of the device?

  • It's works but ....with absolu no torque ! whats wrong ?

  • I have a 4-wire stepper on a peristaltic pump. I just need to make it spin one direction and control the speed (I don't need to control position or anything). I may want to count revolutions, but that is unnecessary.
    What's the simplest way to do this?

  • Any chance of giving some kind of eta on products not in stock?
    Been waiting ages for some things to come in and it would be good to have an idea of when they may come back into stock.

  • Sorry about that. The EasyDriver website link is now fixed.

  • The EasyDriver Website link is broken, as well as the "nice tutorial" link in a previous column.
    The EasyDriver sounds great - but not without some info available.
    Any chance there's an alternate site for the EasyDriver? I haven't found one yet.

  • The example stepper motor control link is broken. Anyone know where it went to?

  • A dead simple stepper driver. Using an Elexol USBMOD4, a protoboard, and a few lines of Python and a surplus stepper motor, I had a USB controlled stepper motor in 5 minutes flat. It works wonderfully with the stepper motor Sparkfun sells as well. My only "gripe" is that it could use a spare ground connection next to the step input to simplify wiring. Otherwise a perfect unit.

Customer Reviews

No reviews yet.