Stepper motro speed issues

I have a small stepper ( Without a load they seem to work fine. I have adjusted the current for the 70% of the motor current (600ma). With just a masking tape flag on the shaft, the unit seems to have some fairly nice torque and speed when using /16 micro stepping. Now with such a small motor, by fair amount or torque I mean I can apply some finger pressure to the shaft and not have it stall. Pinch it harder, and I can stall the motor without any danger of hurting my fingers.

The problem comes when I add a small rotating platform to the shaft. The weight is fairly well distributed and probably no more than 5 ounces. Using the same pulse delay as before (60 usec), the unit simply twitches. By increasing the delay to 200 usec, I can get the unit to turn but now at a much slower speed.

I also notice that at the end of the turn when I stop stepping, the motor shaft seems to oscillates back and forth (less than one step) several times at a fairly high frequency before coming to rest. It looks more out of focus than a discernible oscillation.


  1. How does one pick the proper step rate to allow for maximum speed and not stall the motor?
  2. Is it normal that I might need to accelerate and decelerate my motions?
  3. If so, any hints on how to do that? Microstep at an deceasing rate, then switch to a smaller microstep size to to even faster than ramp down in reverse?

I am building a tracking device that needs to scan a small photodiode back and forth at a pretty fast rate. Any suggestions welcome. My project can be seen here:

The higher the drive voltage and motor current limit, the more torque and speed you get. There is no reason not to set the driver current limit to the motor’s rated winding current limit, unless your power supply can’t handle more. (For fewest problems, the motor power supply should be able to supply twice the rated winding current).

What voltage are you applying to the the driver? If that is already near the limit of 10.8 V for the DRV8834, then consider a higher voltage driver.

For fastest performance and highest torque, manufacturers recommend using drive voltages of around 10 times (or more) the motor voltage rating, in this case 3.9 V, so you can go up to 36 V with no problem. This driver will let you do that:

With that driver, 600 mA/winding and a 36 V, 1.2 amp power supply, you can expect MUCH higher performance.

I am using a 20 amp capable 5V supply. I have adjusted the current pot using the testpoing to get the 600ma per coil output. I had originaly picked the lower voltage controller thinking that I would be running this “cute little tiny” stepper from a regulated 5 volt rail. Little did I realize at the time just how much juice 600ma per coil is! Way more than a TO-220 can provide. I may very well buy the higher voltage controller and run from the unregulated 12V battery.

In the meantime, I am still interested in dynamic responce control. If I am scanning this motor back and forth ± 30 degrees what would be the best way to change directions. I can only imagine that going from full speed one direction to full speed the other would not be a good thing. Anyone have any suggestions for ramp speed/acceleration profiles to use? Or even a good set of experiments to run to determine an pseduo optimal profile?

It is normal to have to implement some kind of acceleration to get the maximum speed out of a stepper motor. Unfortunately, I do not know of a better method than trial and error to determine what kind of acceleration profile is best. You can get an idea of the maximum speed your stepper motor will be able to achieve from the pull out torque curve on the motor’s product page. Keep in mind that those curves are measured under very specific conditions, so if you are using a different microstepping mode or supply voltage, that will affect the maximum pulses per second you can achieve.

As Jim Remington suggested, increasing the supply voltage should also help.


I started to get much better results with a simple linear ramp up to a constant speed followed by a ramp down to a halt, flip direction and do it over again.

I have a higher voltage motor controller on order and will swap it out when it arrives.