Go Down

Topic: Stepper motors getting HOT! (Read 16871 times) previous topic - next topic


Ok, you may have seen some of my other posts on this forum.  I'm trying to build a new controller for a robot.  Among other things, the robot contains two of these stepper motors.  The ones I'm controlling are the SY39ST34-0166A motors - current/phase of 160mA and resistance/phase of 75 ohms.

I'm using Pololu A4988 stepper motor controllers to control them.

I have everything working, I can control the motors perfectly.  However, they get very hot, much hotter than they get with the original controller for the robot.  With the original controller, they barely get warm.  With my A4988 controller, they get much too hot to touch before I just turn things off.

According to the specs on the motor, the current/phase is 160mA.  So I used the trimpots on the A4988s to adjust the current limit.  Based on the equation on Pololu's website, I should set the trimpots to show a voltage on the REF pin of .091 volts ((2.5/.16)/.7). 

The thing is, if I read the current going to one of the leads on the motor, I get 220mA, and that's at a resting state for the motor.  Shouldn't it be maxing out at 160mA?  And, to add to the confusion, I dropped the VREF measurement all the way down to .015 volts, which should give me a max current of .027mA - but I'm still seeing 220mA!?

So am I understanding this right?  It would seem that the Pololu controller is letting through much more current than it should.  However, when I did drop the current setting down to .027mA, I could no longer move the motor.  It just gave weak twitches in response to my step commands.  So it does seem like the power is going down after all.  But then why is it still getting so hot, and why does my multimeter still show 220mA?

Any advice would be appreciated!

- Dave


Jan 31, 2015, 01:15 pm Last Edit: Jan 31, 2015, 01:17 pm by MarkT
The power supply voltage needs to be at least twice IR where I is the motor current and
R the winding resistance when using a chopper-drive.

You have a motor where IR is 12V, so you'll need a minimum of 24V, preferably 36V to
get any sort of performance from a chopper driver.

[ also stepper motors get hot - that's what limits the drive current.  60 or 80C
rise above ambient isn't unusual - you are expected to bolt the motor to
something metal to take the heat away ]
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]


Thanks Mark!

So I actually am driving the motors with 24V.

I guess my issue comes down to two questions:

Should I be seeing current in excess of the current limit I set, when reading the current on an individual lead to the motor?  I didn't think so, but if I'm misunderstanding something here - could you please explain?

And regardless of the answer to that - why do the motors still get hot even after I set the limit so low that I can no longer move the motors?

My goal is to not heat the motors any hotter than the original comtroller. If it can move them without getting hot - why can't I?

And I don't have an option to modify the mounting. So how hot should I let them get without worrying?  When I set the current limit according to the ratings on the motors, they get hot enough that I start smelling something burning.


Jan 31, 2015, 04:40 pm Last Edit: Jan 31, 2015, 04:40 pm by MarkT
The current on the motor leads should be controlled, but the voltage will be swinging the
full 24V, which may confuse your meter if the input circuits aren't designed to reject common
mode noise.  That current level (0.16A) may be a little low to set accurately, but I'd try setting
up measuring the motor current (do this in full-step mode to avoid the confusion of microsteps).

Given the supply it ought to be working OK - I'd measure the current from the supply, calculate
the power consumed and compare that to what the motor should be using - it should be more,
but not wildly more than the motor is rated at (here 2W)
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]


What I'm saying is that I see .24 amps on one of the leads, regardless of how low I set the current limit. Even if I set it to half of the .16 limit, I still see the .24 amps. And I see that when the motor isn't moving.

So that's not right, is it?  And I have several of the A4988 drivers, it isn't a defective driver.

I need the motors to run much cooler because they are in plastic housings that will melt if they get as hot as they can. So it isn't enough for me to run them below their rated max temp. I need them to run as cool as the old controller can run them at.


With a chopping motor driver, you cannot accurately measure the winding current using a multimeter. If you have the Pololu boards, follow the instructions for setting the winding current provided by Pololu.


Thanks, but I did follow the instructions and the motors are running very hot. Any suggestions as to how to get them to run cool like the other controller does would be appreciated!   If it would pro ice any useful clues, I could hook up an oscilloscope...


Jan 31, 2015, 07:43 pm Last Edit: Jan 31, 2015, 07:49 pm by jremington
Simply reduce the winding current, as per instructions.
Industrial stepper motors are designed to safely run hot at maximum output. Yours is rated for 80 degrees C maximum temperature rise.


Thanks, but as I said, I need them to run much cooler than the max they can take. That would melt the plastic case they are in. I need to understand how the other controller is running the motor at such a cooler temp than the A4988s do, and then either adjust the a4988s go tun that cool ( which isn't looking possible) or get motor controllers that can run cooler.


Jan 31, 2015, 08:55 pm Last Edit: Jan 31, 2015, 08:59 pm by jremington
I will repeat myself.

Simply reduce the winding current, as per instructions.

If you reduce the current, the motors will run cooler. Why is this so difficult for you?


jremington - I really appreciate your help, but I'm not sure if you didn't read my original post all the way through, or maybe it wasn't clear.  I did adjust the current down as per the A4988 instructions.  I'm turning the trimpot counter-clockwise to limit the current, and going by the voltage at the REF pin on the driver - as per the instructions.

I even tried adjusting it down to next to nothing - to 1/4 of the rated current - well past the point where the motor won't even respond to step commands, and the motor is still getting too hot.

And now, just for grins, I turned the trimpot all the way down, setting the current limit to 0, and after 10 minutes the motor was at 80c.  When I run it with the old controller, it doesn't get hotter than 32c.

The controller my controller is replacing can run these motors much cooler, and I need to too.

That is what I don't understand and need help with. Is this a feature of the chopping drivers I'm using?  Is something else going wrong? 


Jan 31, 2015, 10:31 pm Last Edit: Jan 31, 2015, 10:32 pm by jremington
Sorry, I did not read your post carefully enough. However, typos leading to errors of a factor of 1000, like this one are discouraging:
down to .015 volts, which should give me a max current of .027mA
Your driver may be broken. Contact Pololu instead of this forum.


Yes, sorry - I meant amps, not milliamps.  It happens.  But as I also said, I have several of these A4988s.  I tried swapping them out with brand new ones.  Same results.


Then your wiring is probably wrong. Post a schematic and a clear photo of the setup.


Update on this.  I figured it out.  So, to clarify, my controller connects to the robot over a DB25 connector.  Power goes into the robot and is fed to the controller over the DB25.  The leads to all the motors are from the controller back out the DB25 to the robot.

The issue with the steppers is that there is 24V being sent to the steppers, unregulated.  There is a raw 24V line from the DB25 back to the robot.  I never knew what that was for, so just had my controller wired to send it as well.  It seems that it's going to one or more leads of each stepper.  When I break that connection, my controller can control the steppers no problem, without overheating, but the original controller that came with the robot can only "twitch" the steppers.

So somehow that power is needed for the way the original controller controls the motors.

Any idea what is going on?  Why send unregulated power to a stepper motor?  (By "unregulated", I mean that it is constant, not modified during the sending of individual step commands to the steppers.)

Go Up