I am working on a project using ST4118D30004 stepper motors and powerSTEP01 drivers. The ST4118D30004 is a bipolar stepper motor with 4 wire connection.

While researching how to find the optimal settings for the driver I came across

"Holding torque (T) is the product of a motor's torque constant (KT) and the current (i) applied to the stator windings."
controleng.com Stepper motor torque basics

"the k_t parameter is the motor torque constant which is equal to the k_e constant, but expressed in Nm/A instead of V/Hz"
page 6 of PowerSTEP01 Voltage mode control operation and parameter optimization

as well as how to measure K_e by applying scope across a phase and turning it at constant speed, K_e is then supposedly the ratio of peakVoltage/frequency.

"The \$k_e\$ is the coefficient that relates the motor speed to the BEMF amplitude. This value is not usually present on stepper motor datasheets, but it can be easily measured by means of an oscilloscope:

  • Connect one of the motor phases to an oscilloscope channel
  • Set the oscilloscope to the trigger value on the rising or falling edge of the channel and set the threshold value close to zero (few mV above or below zero)
  • Turn the motor shaft. This can be done by hand or by means of another motor. The most important thing is to obtain a rotation speed as constant as possible
  • Set oscilloscope time and voltage scales in order to display a sine wave during the motor rotation.

If the rotor is turned by hand, the operations should be repeated until a good sine wave is obtained. A good sine wave keeps its amplitude constant for at least 2 or 3 cycles (Figure 7 and Figure 8). This operation might require several attempts.

  • Measure the peak voltage to frequency ratio of the sine wave. The resulting value is the motor electric constant expressed in V/Hz."

page 14 of PowerSTEP01 Voltage mode control operation and parameter optimization

calculating K_t from values given by specification by manufacturer of motor holding torque T = 0.8 Nm current i = 3 A T/i = 0.8 Nm / 3 A = 0.267 Nm/A

Measuring K_e

  • 2.55 V / 85.5 Hz = 0.0298 V/Hz = 0.00474 V/(rad/s)
  • 5.55 V / 208 Hz = 0.0267 V/Hz = 0.00425 V/(rad/s)
  • 7.00 V / 263 Hz = 0.0266 V/Hz = 0.00423 V/(rad/s)
  • 11.1 V / 420 Hz = 0.0264 V/Hz = 0.00420 V/(rad/s)

About a factor 10 difference 0.267 Nm/A to 0.0266 V/Hz, why?

Addition 1: As mentioned in comments and also specified here http://www.spectrum-soft.com/news/spring2014/stepper_motor.shtm the K_e should be in V/(rad/s) not in Hz for K_t to equal K_e. This however actually means the difference in my results is a factor ~6.28 bigger does it not?

About a factor 60 difference 0.267 Nm/A to 0.00423 V/(rad/s), why?

  • 1
    \$\begingroup\$ In a 'normal' DC motor \$\small K_t\$ is measured as \$\small Nm/A\$, and \$\small K_e\$ is measured as \$\small V/rad/s\$, and the relationship is, numerically, \$\small K_t=K_e\$. This can be easily derived from the motor/generator equations: \$\small F=Bil\$; \$\small E=Blv\$ where \$\small v\$ is the armature velocity at the radius in m/s. In the case of the SM, I suspect there is some confusion of units and the method of measuring angular velocity, and possibly the number of poles. \$\endgroup\$
    – Chu
    Jul 5, 2018 at 10:24
  • 1
    \$\begingroup\$ Double check your units. V/Hz is not correct for Ke : V/(radians/sec) is, so you have lost 2*Pi somewhere. NOTE : power = torque * speed = Nm * radians/sec = V * I ... take it from there. \$\endgroup\$
    – user16324
    Jul 5, 2018 at 10:31

2 Answers 2


Almost certainly you have misunderstood your k_e measurement. Your shaft speed is almost certainly in rpm rather than Hz, so your values need to be multiplied by 60 to be accurate, and 60 is your missing factor.

The reason I say "almost certainly" is that, for instance, your 11.1 V/420 Hz is equivalent to 25,000 rpm, and that's pretty impressive for a home setup. Not to mention unrealistic.

  • \$\begingroup\$ While rpm vs Hz does fit the factor 60, I don't follow the rest. This is a stepper motor with 200 full steps per round. 1 round gives (200 steps/round)/(4 steps/period) = 50 periods on each phase. 420 Hz is just over 8 rps or 480 rpm of the motor shaft. Maybe 50 is the missing factor and the rest is due to measurement error and motor deviating a little from specs? I just don't see any way to interpret page 14 of the application note that way, but the application note may very well be wrong or lacking. \$\endgroup\$
    – RHawkeyed
    Jul 5, 2018 at 15:32

I've used the predecessor to these chips, the Cstep and Dstep's. I recall STmicro had a detailed tutorial where they worked through an example with real numbers, showed scope traces, and everything. See if you can find that.

PS I also found it helpful to buy a cheap ($10ish) clamp-on current-sense transformer to observe current to one of the windings while playing around with it, to see how well my tuning settings really worked. Observing the voltages is of limited use.


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.