Maximizing torque: DRV8834 driving NEMA8 (2.5oz)

I’m pretty inexperienced with electronics but am actively learning and in particular been reading a lot about stepper motors, how they work, and how to run them. I’m having a hard time deciding if I’m doing what is needed to maximize the torque and based on what I’ve read, it seems like the frequency or rate that the coils are energized/de-energized can play a pretty significant roll in that. Part of what I don’t understand is that I didn’t think I was actually “powering” the coils since the motor controller handles that. I guess the question is, does it do so based on the frequency I input to the step pin? If I do this:

for i in range(steps):
        print("Step: ", i)
        sleep_us(5000)  # pause 5 ms between step pin state change

What is translated to the two motor coils? According to the torque curve from the motor’s datasheet (for the NEMA 8 (2.5oz) from Pololu ) it produces the most torque below 1.5K-2K PPS. I think my code equates to 200hz (I don’t know much about frequency or pps) which I believe is pretty slow for a stepper motor and therefore should be giving me as much torque as it can, as long as I feed it enough power. If I’m not understanding the frequency stuff correctly or not generating what is best for the motor, the microcontroller I’m using can do PWM but I don’t have any experience with it so don’t want to waste time learning it if it won’t help with my problem.

For power I’m using a 2S lipo (7.4V) and I adjusted the pot until my voltage meter read .242 (probes touching gnd and the surface of the pot) which multiplied by 2 (for the DRV8834) I believe means the motor should be receiving .484A. The Pololu docs say that when doing micro steps the current should be less then the specs and since the DRV8834 defaults to 1/4 step mode I wanted to keep the current low. I ended up trying both 1/2 and full step mode and saw a small increase in power but it wasn’t enough.

A bit about what I’m building:
I’m trying to make a motorized syringe/injector device which holds approx. 3ml of water max. and have it deliver doses from .5ml to .1ml based on the time period between doses (currently every 10 min). To make the “linear actuator” just for testing I actually robbed the threaded rod and ‘nut’ parts out of an old Staples glue stick. I originally started with a NEMA 11(8.3oz) motor and an A4988 controller (also just run with a 2S lipo) because I already owned them. That setup worked quite well but I wanted to downsize both in physical specs and power needs (to reduce the battery size) so that is when I ordered the DRV8834 and NEMA8. I don’t know how to measure the required force to move the device so I don’t have any idea what the minimum motor torque needs to be.

With my lack of knowledge in how everything works I don’t just want to assume I don’t have a “strong enough” motor. From some webpages I’ve read, I believe could increase the voltage to get more torque but that was the main item I was trying to reduce by getting the smaller motor and specifically the DRV8834 since batteries get much bigger as voltage increases. I haven’t tried running it with the A4988 to see if for some reason it works better than the DRV8834 so I guess that is one other thing I could try if it is really worth it. The two have enough pin differences that my original setup doesn’t work with the latest iteration so it will require more than just swapping the two controllers.

Any suggestions would be appreciated. If I missed any needed information please ask and I will gladly add anything that will help.


After reading your post, it is not clear to me what is wrong with your setup (other than that your NEMA 8-size stepper motor might not be producing enough torque). Can you elaborate on the issue you are having (e.g. no movement, noise issue, jitter)? A video might be helpful.

The maximum torque a stepper motor can output will depend on a number of factors, such as the supply voltage, the micro-stepping mode, the step rate (or speed), and the current-limit setting of your stepper driver. Since you mentioned that you “don’t know how to measure the required force to move [your] device”, I recommend reading this blog on Force and Torque to give you a general understanding. Unfortunately, the blog does not explain how to calculate the torque from a screw, which it sounds like you are using in your setup, so you might try searching the Internet for a formula on how to calculate that.

If your previous system (using the A4988 and NEMA-11 motor) is intact, you might try limiting the current on the A4988 until the stepper motor can no longer output the necessary torque to make your system work. Once you find the minimum current needed for the stepper motor to move your device, you will have a rough estimate of how much torque is required since the output torque has a roughly linear relationship to the current draw.

- Amanda