Stepper Torque

Thread Starter


Joined Jan 12, 2021
Hello all. Hope all is well.

I am learning about stepper motors and I am running a stepper motor with a regular motor driver and an Arduino.

When I hold the shaft of the motor while it is rotating, it stops rotating and makes a high pitch whining sound till I turn off the power. ( The stepper doesnt go back to rotating when I left go the shaft.)

These are my questions for you guys:

1) Is the motor showing symptoms of stalling? Is this what stalling is?

2) Is there something that I can do in my Arduino code to help the motor go back to rotating when I let go the shaft? ( Maybe increase steps or decrease steps? )

3) Is the motor trying to step way too fast?

Thank you for your replies!


Joined Feb 24, 2006
This is a resonance. At resonance the torque drops to zero or near zero and the rotor cannot follow the phase changes on the motor phases so it stops and it whines. You don't necessarily have to turn the power off, you can just stop sending stepping pulses or stop making phase changes to the motor coils. You can start and stop the motor at low speed, but if you want to run at high speed you need to ramp the velocity up linearly and pass through the resonance velocity quickly. Similarly, when you stop you have to ramp the velocity down.

One of the resonances is mechanical and involves the rotor moment of inertia as well as the load inertia, it is typically in the range of 75-300 steps per second. The second resonance is an electrical resonance involving the inductance of the motor winding and impedance of the driver. This will typically be in the neighborhood of 4000-6000 steps per second. All motors have an upper speed limit where the torque approaches zero as they go faster.


Joined Jun 26, 2012
It sounds like TS stopped the rotor at a step speed faster than the rated starting speed. Many (most?) steppers will run much faster than they can start from zero. You have to start them at some slowish rate then increase the step rate i.e. accelerate the motor at a rate that the motor can handle given the characteristics of the whole mechanical system. Indeed, many motors will also encounter a resonance at some step rate(s) where the torque drops off. The controller has to smoothly slew through the resonance(s) and not run continuously in those regions.

A good stepper datasheet will describe the torque-speed curves showing all of this as well as how fast you can accelerate the motor without cogging and all of that.
Last edited:


Joined Sep 30, 2009
Sounds more to me like he isn't using enough voltage to drive the motor. Many people see the voltage on the motor name tag and only use that voltage, not such a good idea for steppers.


Joined Sep 30, 2009
Depends on many things. Steppers for say a hobby CNC machine are usually 20 to 30 times the name plate voltage. But never give it more than the name plate current. Like LEDs they are current devices not voltage devices.

I don't have the links now but there are many stepper control companies that have information on how and what to do, Gecko drivers used to have a FAQ list on their site - Me doing the research for you won't help you as much as you going there and reading for yourself.

Another older but still good learning site on stepper motors and drives -


Joined Jul 18, 2013
Stepper motor should be ran at the exact plate rated current.
As RPM increases, so does inductive reactance, which results in lower current, in order to combat this, modern drives use a voltage for the drives that is much higher than required to maintain this current, and therefore use PWM to maintain the motor rated current throughout the whole RPM range.