Stepper motors: Overheating as a function of rated voltage


I looked at the stepper drivers you have in your catalog. In all of them you state that they can handle up until a certain current but will require cooling for it to do so. For example, the A4988 driver can handle up to 2A, but may require cooling from 1A and above.

Aside from rated current, different motors have different rated voltages i.e. if they were operated in this voltage without any current limiting they would draw that rated current.

What I want to ask is the following: If I were to operate two motors with the same current and operating voltage (whether by current limiting or not) how would different rated voltages affect the heating of the driver? For example: Motor A has a rated voltage of 4V and a current of 1A and motor B has a rated voltage of 2V and a current of 2A. Given that I operate them at 12V and limit their current to 1A it would seem that motor A will cause the driver to heat more since it draws 1A over 4V (12V chopped by the driver) while motor B will draw 1A over 1V (since its resistance is 1ohm given its rating). Is it so indeed?


Hello, Yinon.

The heat generated at the driver is mostly a function of the current, so the driver would heat up similarly in your two scenarios. For example, if the resistance in the driver (from MOSFETs, current sense resistors, PCB traces) adds up to around 0.5 ohms, there would be about 0.5W of power heating the driver (current squared times the resistance) in both scenarios. The motors would be dissipating power based on current times voltage, so the 4V motor would have 4W of heating, and the 1V motor would have 1W of heating. (The specific numbers would be doubled if you were driving the motor so that each coil had 1A in it, as opposed to 1A max in one coil at the time the other coil has 0 current through it.)

There are some trade-offs when changing the ratio of current to voltage with stepper motor coils (essentially, this changes the number of turns and diameter of the wire in the coils). A motor with a higher coil voltage and lower coil current can generally use a smaller (lower current) stepper driver to produce the same power at slow step rates. However, since moving the rotor of a stepper motor requires reversing the direction of current flow through the coils and the current through the motor will decrease as the frequency of those reversals increase, power output of the motor will decrease more quickly with rotation speed. Increasing coil resistance also generally increases the motor inductance for motors of the same size, which has the same effect. So increasing the coil resistance and inductance decreases the maximum motor speed. You can compare the pullout torque curves in the datasheets for our #1472, and #1473 stepper motors (which are rated for the same input power, have the same holding torque, and have the same physical size) to see this effect.


For example, if the resistance in the driver (from MOSFETs, current sense resistors, PCB traces) adds up to around 0.5 ohms, there would be about 0.5W of power heating the driver (current squared times the resistance) in both scenarios

So according to what you say the heating will be the same due to the resistance of the driver and the input current to the motors being the same regardless of what motor is used.

The motors would be dissipating power based on current times voltage, so the 4V motor would have 4W of heating, and the 1V motor would have 1W of heating.

What do you mean by heating? Won’t the 4W and 1W will simply be the input power to the motors?

Increasing coil resistance also generally increases the motor inductance for motors of the same size, which has the same effect.

Aren’t resistance and inductance two independent properties? Do you mean that by decreasing wire thickness and increasing number of turns in the same proportion we increase both the resistance and inductance of the coil?

So, from what I understand the lower either the inductance or resistance is, the higher the frequencies (in this context stepping speed) the motors will be able to achieve. How can it be explained in terms of an electrical circuit?


4W and 1W are the input power to the stepper motor and when the motor is holding a position, nothing is moving so there is no mechanical work being done and the input power is dissipated as heat.

In general, the inductance and resistance of an arbitrary electrical system are not inherently correlated, but yes, in a system like a stepper motor where you are trying compare things of a similar physical size and constructed in a similar manner, there is a tradeoff between thicker wires with lower resistance and fewer turns (higher current, lower resistance and lower inductance) and thinner wires with more turns (lower current, higher resistance and higher inductance).

An electrical coil can be modeled as an inductor and resistor in series, but I’m not sure that is what you are asking.

Is there a specific problem you are trying to solve? Are you trying to select a driver for a stepper motor you already have or find a stepper motor and driver that will work with each other?


I am a hobbyist and I am trying to build a (yet another) balancing robot. I already bought all the parts, including two nema 17 stepper motors. There are several reasons for why I chose to use stepper motors despite their complexity and high power consumption:

  • I already built a small balancing robot with two of your 20D brushed DC gearmotors so I wanted to try something else, just for fun.
  • Given the above I want to see how the accuracy and the ability of stepper motors to hold torque at higher speed affects performance.
  • Stepper motors do cool sounds (and I find it amusing when they stall).

The steppers I bought are NEMA 17 steppers with 45N*cm holding torque, a max current of 2A, resistance of 1.1 ohm (thus 2.2V) and inductance of 2.6 mH. According to their specs they are built for speed. However, there are a few issues that I am trying to deal with:

  • None of your drivers can deal with 2A without cooling.
  • From my experience, a balancing robot does not need that much torque when it is standing still. It requires more torque when either accelerating or decelerating. A stepper motor would have no problem making the robot stand still, but it will consume a lot of current and turning the motors off to save energy will cause the robot to fall.

Therefore I ask the following questions:

  • I see that the DRV8825 can deal with 1.5A without cooling which is 75% of the motor’s current consumption per coil and up to 2.2A with proper cooling. What are the requirements for proper cooling?

  • I guess that running a stepper with its max rated current is not that advised even though it is not over its abilities - in the same manner you won’t always put the pedal to the metal in your car. Am I right?

  • Are there any current-limiting stepper motor drivers where the current limit can be controlled by a microcontroller? In this way I will be able to decrease torque when the robot stands still or doesn’t need much acceleration/deceleration.

You seem to be assuming that the robot will require the maximum torque that the steppers can possibly generate. What is the experimental basis for that assumption?

The motor driver can be set for less current than the rated motor maximum and in that way you can avoid overheating the driver.

I am not assuming that the robot will require maximum torque. The exact opposite is right - I wrote that for the robot to stand still it does not require a lot of torque. From my experience, I’m pretty sure that if I will instead use two NEMA 11 motors such as in the robot will be able to stabilize itself and even move. However, due to their relatively low torque, their performance may be underwhelming.

When a stepper has more torque, not only will it be capable of more acceleration and deceleration, but given the same resistance and inductance, it will be able to maintain higher torque at higher speeds, thus increasing the robot’s maximum speed. I know that I can limit the current to less that the motor’s rated current. I asked those questions in order to know what my options are.

I would really like to answer your question about the experimental basis but I really don’t think I have the means to do so. I’m a hobbyist and not a student doing his final project or thesis, or a professional. A balancing robot’s dynamics are non-linear and extremely not straightforward and I don’t think I am able to address my requirements using exact formulas. Therefore, I am using rules of thumb and previous experience with balancing robots to determine what I need.

The effectiveness of supplementary cooling depends on how it is implemented and we do not have any specific advice for doing that. In general, it might be difficult to get a 2A current limit to work with the DRV8825.

Our AMIS-30543 driver carrier board has an SPI interface that allows the current to be changed dynamically and the driver can handle about 1.8A continuously without any supplementary cooling. It should be possible to implement some kind of algorithm to intermittently increase the current when more torque is needed, though doing something like adding a small fan might also allow the driver to work at 2A continuously. Also, that driver has a more effective current control algorithm (for consistent microstepping) than the DRV8825 with low inductance and resistance motors like the one you mentioned.

Also, our TB67S249FTG Stepper Motor Driver Carrier - Full Breakout board can handle about 1.7A/phase continuously and has and active gain control (AGC) feature where the driver will monitor the stepper coils and reduce the current to the coils when the additional torque is not needed. That feature might let you set a higher current limit with the driver, depending on your torque demands.


The TB67S249FTG seems like a good fit since the robot will seldom use all of its torque, but I think I’ll start from simple and gradually advance. Thanks, Nathan, that was very informative. Now that I know what my options are I’ll find what’s suitable for me.

Have a nice weekend!