# Learning about stepper motors

**URL:** <https://forum.arduino.cc/t/learning-about-stepper-motors/437754>\
**Category:** Motors, Mechanics, Power and CNC\
**Created:** [February 13, 2017, 5:22pm UTC](https://forum.arduino.cc/t/learning-about-stepper-motors/437754 "2017-02-13T17:22:05Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![tautau123](https://avatars.discourse-cdn.com/v4/letter/t/c37758/32.png) [@tautau123](https://forum.arduino.cc/u/tautau123)\
**Post date:** [February 13, 2017, 5:22pm UTC](https://forum.arduino.cc/t/learning-about-stepper-motors/437754/1 "2017-02-13T17:22:05Z")

</div>

I'm currently using 5V Stepper Motor 28BYJ-48 and sinking the current using uln2003 and everything works great.

Now I want to use a stronger stepper, for example : 17HS4401 (similar to the motors the reprap 3d printers has), and I understand I need to use a different motor driver. something like : A4988

Why do I need a "driver" what exactly his purpose and what abilities does he provides that i can't do without him ?

Why I can't just connect it like the small stepper and sinking using something similar to the uln2003 but supports higher current.

---

<div class="post-metadata">

**Author:** ![Robin2](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/robin2/32/216045_2.png) [@Robin2](https://forum.arduino.cc/u/Robin2)\
**Post date:** [February 13, 2017, 6:33pm UTC](https://forum.arduino.cc/t/learning-about-stepper-motors/437754/2 "2017-02-13T18:33:28Z")

</div>

The ULN2003 that you used with the 28BYJ-48 is the driver for that small unipolar motor.

The Pololu A4988 or DRV8825 are drivers for bi-polar motors. These specialized stepper drivers have extra features - they can be used with high voltage power supplies because they can limit the current to protect the motor. They can do microstepping. And they take a large computational load from the Arduino which only needs to produce step and direction signals.

Make sure that you choose a motor that is adequate for the project. And make sure you choose a driver that can comfortably provide the current required by the motor. The Nema17 or Nema23 designations only tell you the size of the front face of the motor. They tell nothing about its electrical characteristics.

...R  
[Stepper Motor Basics](http://forum.arduino.cc/index.php?topic=284828.0)  
[Simple Stepper Code](http://forum.arduino.cc/index.php?topic=277692.0)

---

<div class="post-metadata">

**Author:** ![MorganS](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/morgans/32/218718_2.png) [@MorganS](https://forum.arduino.cc/u/MorganS)\
**Post date:** [February 13, 2017, 10:54pm UTC](https://forum.arduino.cc/t/learning-about-stepper-motors/437754/3 "2017-02-13T22:54:22Z")

</div>

Steppers are "inductive" loads. They resist _changing current._ To get a lot of current flowing quickly, you need a high voltage. But too much current will overheat the motor. So the stepper driver carefully regulates current through the motor windings and it really doesn't care about voltage. Give it "enough" volts, which may be 12V or 24V or whatever you have and it will drive your steppers to the maximum performance.

---

<div class="post-metadata">

**Author:** ![tautau123](https://avatars.discourse-cdn.com/v4/letter/t/c37758/32.png) [@tautau123](https://forum.arduino.cc/u/tautau123)\
**Post date:** [February 13, 2017, 11:06pm UTC](https://forum.arduino.cc/t/learning-about-stepper-motors/437754/4 "2017-02-13T23:06:45Z")

</div>

Wow,  
Thank you for your answers and the link to the very helpful post.

Just one question, I know that steppers use their maximal current when they are not moving.  
When I've used the 28BYJ-48 I wrote my own stepping library, and after rotating the stepper to where I want, I cut all current off (I don't need any holding torque).

Is it possible to achieve the same thing when I'm using a driver like Pololu A4988 ?

What I'm trying to achieve is virtually zero current consumption when the thing is not operating. (I'll send the arduino to sleep...)

---

<div class="post-metadata">

**Author:** ![Robin2](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/robin2/32/216045_2.png) [@Robin2](https://forum.arduino.cc/u/Robin2)\
**Post date:** [February 13, 2017, 11:17pm UTC](https://forum.arduino.cc/t/learning-about-stepper-motors/437754/5 "2017-02-13T23:17:53Z")

</div>

> tautau123:  
> Is it possible to achieve the same thing when I'm using a driver like Pololu A4988 ?

Yes, there is an ENAble pin.

However if you want "virtually zero" current consumption maybe you also need a relay to turn off the stepper motor power supply, or more accurately, to turn it on.

In case it matters you should be aware that when you re-power the stepper driver the motor might shift a step in either direction even if there had been no external force on it when it was de-powered.

...R

---

<div class="post-metadata">

**Author:** ![MorganS](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/morgans/32/218718_2.png) [@MorganS](https://forum.arduino.cc/u/MorganS)\
**Post date:** [February 14, 2017, 6:10am UTC](https://forum.arduino.cc/t/learning-about-stepper-motors/437754/6 "2017-02-14T06:10:54Z")

</div>

> tautau123:  
> Just one question, I know that steppers use their maximal current when they are not moving.

Not always true. The A4988 and similar drivers cut the current to 70% when not moving.

You can also reduce the drive current by modulating the current-control pin - replace the trimpot on the board. That's probably not necessary.

---

<div class="post-metadata">

**Author:** ![MarkT](https://avatars.discourse-cdn.com/v4/letter/m/c89c15/32.png) [@MarkT](https://forum.arduino.cc/u/MarkT)\
**Post date:** [February 14, 2017, 11:46am UTC](https://forum.arduino.cc/t/learning-about-stepper-motors/437754/7 "2017-02-14T11:46:08Z")

</div>

> tautau123:  
> I'm currently using 5V Stepper Motor 28BYJ-48 and sinking the current using uln2003 and everything works great.
> 
> Now I want to use a stronger stepper, for example : 17HS4401 (similar to the motors the reprap 3d printers has), and I understand I need to use a different motor driver. something like : A4988
> 
> Why do I need a "driver" what exactly his purpose and what abilities does he provides that i can't do without him ?
> 
> Why I can't just connect it like the small stepper and sinking using something similar to the uln2003 but supports higher current.

Because these motors are low-impedance motors, they have very low resistance windings of an ohm or two,  
and resistances of an ohm or so. To spin fast they need a reasonable voltage, perhaps 20V to 50V, to overcome  
back-EMF. However if you powered a 1.7 ohm, 1.5A winding at 20V, 12A would flow and the motor would  
catch fire.

These motors are meant to be current-driven. You drive them at 1.7A, and whatever voltage they need to  
overcome backEMF and IR losses. Chopper drivers act like buck converters but drive constant current output  
into the winding which is just what you want, and the switchmode (chopper) action means little energy is  
wasted.

The low winding resistance also means the winding inductance is low, which is essential to being able to  
spin the motor fast, as a stepper is basically a 100-pole motor so that even a lowly 600rpm means 1kHz  
drive current waveform is needed, way above the usual 50 to 100 Hz of other motor types.

---

<div class="post-metadata">

**Author:** ![tautau123](https://avatars.discourse-cdn.com/v4/letter/t/c37758/32.png) [@tautau123](https://forum.arduino.cc/u/tautau123)\
**Post date:** [February 14, 2017, 5:16pm UTC](https://forum.arduino.cc/t/learning-about-stepper-motors/437754/8 "2017-02-14T17:16:13Z")

</div>

Thank you very much for your answers,  
What should I choose between A4988 and DRV8825 ?  
The only useful thing I found is that the DRV8825 supports 32 micro steps and the A4988 supports 16.

Is there any advantage of one to another ?  
The 32 microsteps, is it an advantage ? will it change the speed/torque the motor can provide ?

---

<div class="post-metadata">

**Author:** ![Robin2](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/robin2/32/216045_2.png) [@Robin2](https://forum.arduino.cc/u/Robin2)\
**Post date:** [February 14, 2017, 7:03pm UTC](https://forum.arduino.cc/t/learning-about-stepper-motors/437754/9 "2017-02-14T19:03:11Z")

</div>

I believe the DRV8825 is the newer device and it has a slightly greater current capacity. It would be my choice.

...R

---

<div class="post-metadata">

**Author:** ![tautau123](https://avatars.discourse-cdn.com/v4/letter/t/c37758/32.png) [@tautau123](https://forum.arduino.cc/u/tautau123)\
**Post date:** [February 14, 2017, 8:44pm UTC](https://forum.arduino.cc/t/learning-about-stepper-motors/437754/10 "2017-02-14T20:44:58Z")

</div>

> Robin2:  
> I believe the DRV8825 is the newer device and it has a slightly greater current capacity. It would be my choice.
> 
> ...R

I can't find any tutorials on how to use it (but there are many on the A4988), how new is the DRV8825 ?

---

<div class="post-metadata">

**Author:** ![Robin2](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/robin2/32/216045_2.png) [@Robin2](https://forum.arduino.cc/u/Robin2)\
**Post date:** [February 14, 2017, 10:08pm UTC](https://forum.arduino.cc/t/learning-about-stepper-motors/437754/11 "2017-02-14T22:08:53Z")

</div>

The DRV8825 is almost interchangeable with the A4988. The Arduino code will be identical. The Pololu DRV8825 web page has a good wiring diagram.

...R

---

<div class="post-metadata">

**Author:** ![tautau123](https://avatars.discourse-cdn.com/v4/letter/t/c37758/32.png) [@tautau123](https://forum.arduino.cc/u/tautau123)\
**Post date:** [February 15, 2017, 9:36am UTC](https://forum.arduino.cc/t/learning-about-stepper-motors/437754/12 "2017-02-15T09:36:53Z")

</div>

Thanks

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [May 6, 2021, 9:44am UTC](https://forum.arduino.cc/t/learning-about-stepper-motors/437754/13 "2021-05-06T09:44:36Z")

</div>

Closed on May 6, 2021, 9:44am UTC


