Why is there no torque control for stepper motors?

I’m just curious why stepper motors can only be voltage controlled and not current controlled (DC Current or even better, FOC Current)?

Is this a limitation of the stepper motor or has the code just not been developed yet? Just trying to understand, thanks!

Hey @dfrenkel,

Steppers can very much be current controlled. We have not implemented it yet in the library mostly because there aren’t that many drivers that would support current sensing with steppers at the moment. So not many people asked for this feature.

But we could definitely implement this for the next release.

Hey @Antun_Skuric!

What limits the ability for a driver to support a stepper motor? This is a fairly complex topic so I’m trying my best to understand all I can.

For example, would the DRV8412 be capable of this? If not, what is the limitation that it has?

Thank you so much for all of your help and contributions to this, we all appreciate it very much.

I think that high side current sensing may be the best solution for stepper motors in order to keep costs down. Of course, I could be very wrong but let me explain.

Stepper motors are quite low in speed and generally operate on 12-24 volts, sometimes they can require 48V for very high speed/High torque applications.

Because voltages are so low, we can get away with using just one low-cost current sense amplifier on the high side, like on page 4 of this diagram.

A good current sense aplifier like the INA281 is only a few dollars and can handle those voltages. And in this case, we would only need one and not two of them.

Or am I missing something here?

Hey @dfrenkel,

So the drv8412 can give you some guarantees in terms of current limiting that is a very nice feature but it does not have a proper current measurement circuit that you can read (everything is internal).

For foc current control you would need to be able to measure both phase currents and that is the rare part. Usually the stepper drivers are as drv8412, they only limit the current. We would need fine measurements of the phase currents in order to control it is real foc mode, it could be using either low-side or inline current sensing like ina240+shunt and similar or with hall sensor based acs712 and similar.

High side based approach could be a good one too. It would enable torque control, but it would not be foc control, as you could not know the phase currents from one high side sensor. However you could measure the overall current, so for simplefoc, you would be using dc_current control mode, this mode was ment for that purpose.

1 Like

Hi @Antun_Skuric, I just learned about the TMC6200 and its integrated in-line current sense capability. It seems like this board should be perfect for the job. While it’s designed for three phases, I believe it should work with just two for steppers

Hi Anton,
I am looking into stepper motor control with a dual TB9051FTG setup. It appears this driver has current sensing for the output. Would this be something that might work with the stepper torque control with current sensing?