I am using some stepper motors and I realized they are much slower than the stepper motors of OpenBuilds (http://youtu.be/GrjqW2MDCvM?t=3744). They're using less teeth on pulley too. Power supply voltages are same (24V) and I'm using A4988 drivers instead of their custom ones (maybe TMC).

We both using grbl, but their axis maximum rate mm/min is 5000.000 while mine is 500.000 (after 800.000 nothing seems changing for my motors but sound), their axis acceleration mm/sec is 500.000 while my acceleration can be around 30.000.

My motor does approximately 2500 steps/min and 40-42 steps in a second.

I would like to learn what's the difference between these two motors about speed?

Here is my slow motor specs: https://www.omc-stepperonline.com/nema-17-bipolar-1-8deg-26ncm-36-8oz-in-0-4a-12v-42x42x34mm-4-wires.html

Here is the OpenBuilds motor specs: https://cdn11.bigcommerce.com/s-itwgldve/images/stencil/1280x1280/products/105/3714/imgpsh_fullsize_4__22403.1539714162.jpg?c=2?imbypass=on

  • \$\begingroup\$ It's easier to compare the two datasheets if you compare with the omc-stepperonline.com "full datasheet" link -- omc-stepperonline.com/download/17HS13-0404S1.pdf \$\endgroup\$
    – MarkU
    Commented Feb 14, 2020 at 8:19
  • \$\begingroup\$ @MarkU I already did but as I know current difference only changes the torque not the speed. So do you know what parameter changes the speed? \$\endgroup\$ Commented Feb 14, 2020 at 8:22

2 Answers 2


Comparing the specs of the two motors side-by-side, there are some significant differences:

Model 17HS13-0404S1 datasheet
Model 1704HS168A-OB datasheet

Both are standard NEMA-17 size mounting plate. Both are bipolar connection. Both are rated for 12VDC operation.

Specification       | Model 17HS13-0404S1   | Model 1704HS168A-OB   |
Amps/Phase          | 0.40 Amps             | 1.68 Amps (DC)        |
Resistance/Phase    | 30.00 Ohm +- 10%      | 1.65 Ohm +- 10%       |
Inductance/Phase    | 37.00 mH +- 20% @1kHz | 2.8 mH +- 20%         |
Holding Torque      | 0.26 N-m = 2.65 kg-cm | >= 5.5 kg-cm          |
Step Angle          | 1.80 degrees          | 1.8 degrees +- 5%     |
Rotor Inertia       | 38.00 g-cm2           | 68 g-cm2              |

The 17HS13-0404S1 has significantly higher winding inductance and resistance, and thus takes lower current -- this directly implies lower torque available.

One of the key differences between a stepper motor and a brushless DC motor (BLDC) is that the stepper motor has a Holding Torque, because it is optimized for holding a position, rather than constantly spinning.

The speed of a stepper motor is really a function of the controller that drives it. A stepper can be run "open-loop" giving very slow pulses. Assuming 1.8 degrees per step, the controller can determine the shaft position just by remembering how many pulses have been given. However this only works when the pulses are slow and the rotor turns fast enough to keep up.

2500 steps per minute * 1.8 degrees per step / 360 degrees = 12.5 RPM

When driving a BLDC or a stepper motor for smooth continuous rotation (at low speed, or without Hall effect position sensors), the controller cannot just cycle through the sequence without knowing where the rotor is. The magnetic field should always be "leading" the rotor's magnetic field, otherwise if the rotor is too slow then suddently the magnetic field is "behind" the rotor, and torque is negative. Often the symptom is that the motor "sings" or vibrates instead of rotating. The solution is to slowly accelerate the rotor. However the rotor's inertia must be taken into account. So it's not surprising that a different motor (with different winding inductance and different rotor inertia and holding torque) would need to be tuned with a different acceleration profile.

I had not encountered grbl before (https://github.com/gnea/grbl), looks neat, I may want to dig up my old stepper motor test bench and try it out sometime...

  • 1
    \$\begingroup\$ Side note, you can control a BLDC motor in open loop/without knowing where the rotor is. However, you probably shouldn't \$\endgroup\$
    – Ocanath
    Commented Feb 14, 2020 at 17:53

I don't know grbl, but the stepper motor concepts apply to most systems.

The motors appear to be similar, both are bipolar (2 phase), 1.8 deg/step. I believe that your problem is elsewhere.

The controller/driver converts pulses to phase drive voltages. You generally want to use microsteps for smooth operation. The controller/driver has a steps per pulse setting. These are the microsteps and are in fractions. For example if set to 1/4, you need 4 pulses to get one motor step. Your setting is probably different than your reference example.

The motor doesn't have infinite torque. How fast you can accelerate depends on the inertia of whatever is attached to the motor. If you want to rotate fast, you need to accelerate gradually to that speed. The software will generally take care of this, if it knows what the inertia is. The software in your example video allows you to select your motor/gear system, it will know the inertia based on the selection, and take care of this for you.

It appears that you are designing more from scratch, so you need to figure out all of this for yourself.

There are quite a few people here that have used stepper motors. Only a fraction of those have used grbl. If you are lucky maybe someone who knows grbl will be able to help you more.

  • \$\begingroup\$ Thank you sir! I tried with 1/16 microstepping and full stepping but nothing has changed. For the software settings, I also don't know what's the limits of my motors too. \$\endgroup\$ Commented Feb 14, 2020 at 9:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.