nema 23 stepper burned to a crisp

Hi. There's a saying that there are no stupid question, but this one might break the rule...

I'm working on a project involving 2 steppers. I managed to find 2 used ones, NEMA23, 1.8 deg/step, 2.1A/phase. The guy who sold me opened the back seal to oil them, but they were relatively cheap and I didn't think it could cause any problems.

I've tried using Adafruit MotorShiled to drive them. They requre 2.1A per phase so I ended up piggy-backing 5 x L293D all together (per motor), 5th one was kinda by accident as I was certain that motor label said 2.8A per phase for some reason. I calculated that it would give me a nice 0.6 x 5 = 3.0A per phase and 5A peak. It was overheating and the heat protection was kicking in making motors buzz, so I decided to make my own drivers, basically using the same logic (as I know little about capacitors needed and such), use the same IC as it's the only one I could find in my country, put a heat sink backed with some silver paste on and I ended up with this:
scheme

It's the same capacitor scheme as in MotorShield (I believe), without the rest of the stuff as I don't need it. The external computer supply provided for 12V/12A (at least rated as such) and I thought it would be enough even for doublestepping two motors.

It worked nicely for a while, or so I thought. The motors ran nicely for a while, were hot like hell, and then one of them started skipping. I opened it up and realized one of the wires desoldered. I soldered it back in and continue to test.

Today, there was a foul smell and one of the motors (the other one) skipped like crazy. I opened it up, hoping it might be the same problem, but no: it melted inside, one of the coils swollen up, blocking the rotor.

Both incidents happened when playing with interleaved and doublestep signals. Both incidents happened while motors were connected to a big pieces of aluminum used as a heat sinks.

I'm planing on getting 2 new motors this time, but I don't want to burn them too. Can anyone help and explain the current issues I might not be aware? Are the motors getting too much to handle and is that the reason for them dying (duh)? Should I get higher current rated motors, and if so how much?
Will 2.8A/phase ones be ok or will they have the same issue? Is it better to have motor rated more than the driver can provide?

Money's running tight and I need to get the motors ASAP so I have only one chance at this.

Thank you for reading this wall of text and for all your help.

Wow. That's some crafty thinking :slight_smile:

Unfortunately stacking 5x "600mA" L293's isn't going to give you nearly that much current. First, the 600mA number is mostly fiction, and depends on proper heatsinking (see our application note) for an explanation on close relatives, the 2A motor drivers).

Second, by putting another L293 on top of another one, you are blocking one of the main ways by which heat escapes from the L293 on the bottom: convection. So in your 5-stack of L293's with heat sink on top, the top one might be nicely heatsinked, but the bottom 4 are not only not heatsinked, they cannot even get rid of the heat they build up through convection.

If your motor coils are melting, then they are carrying too much current. Now, you say your motors are rated for 2.1A/phase but you did not mention at what voltage. If, for example, the motors say "3V 2.1A/phase" then you can estimate their resistance as 3/2.1=1.43 ohms. If you then apply 12V through the L293's you're going to get (temporarily!) 8.4A!!! That will probably first burn out the L293's and if they short-circuit, then the full current starts to flow through the motors continuously, which would explain your result.

Creating a "motor driver" solution is not an obvious process. You have to start with the goal: what are you trying to move? From that, figure out how much torque you need, from that figure out a motor that can provide that torque, from that figure out the motor current, and from that, find a motor driver that can handle the current. Yes, it is always safe to run a motor at lower than its rated current.

So...what does it say on your motors (voltage) and how much power/torque do you really need?

--
The Rugged Motor Driver: two H-bridges, more power than an L298, fully protected

Thank you, that explains a lot. :slight_smile:

The driver board I made spreads L293D's flat and than there's a large heat sink that goes on top of all of them together. When I actually piggy-backed them on the MotorShield the problem with convection that you described occurred. I tried to "redesign" them to be flat on PCB so I can install the heat sink to deal with the heat issues.

I couldn't find the specifications for the motor anywhere. Here's the picture:
http://gbut.com/arduino/motor.jpg
(Sorry for the crappy picture.) The label doesn't state the voltage.
MINEBEA Astrosyn 23LM-C355-05 search in google didn't reveal much.

The only info I could find by giving it another shot right now was some Italian forum where it claims to be 2.4-2.6V:
http://translate.google.com/translate?sl=it&tl=en&js=n&prev=_t&hl=en&ie=UTF-8&layout=2&eotf=1&u=http%3A%2F%2Fwww.cncitalia.net%2Fforum%2Fviewtopic.php%3Ff%3D8%26t%3D9108%26view%3Dprevious&act=url

The guy who sold them to me said the are 24V (?!) :stuck_out_tongue:

Basically, I need a motor that can lift 2kg of load on a reel 10 cm in diameter.
If I calculated right (probably not) I need a motor that has torque of 1 N m (?)
Correct me if I'm wrong, please.

Is the driver I made usable at all for such a purpose (or at all)?

I think it is vital that you take a meter and measure the resistance of the coil you have. It sounds like you need a switching regulator / motor driver not just a simple H-bridge. But you need to know and in the absence of a data sheet measuring is the only answer.

I'm going to guess "No". Your motor strikes me as a bit under-powered (just by looking at its size). It might be able to (barely) hold on to your 2kg mass but I don't know how successful it will be at moving it. That looks like a printer/scanner motor, and those don't move anything like 2kg at 10cm.

--
The DIN Rail Mount kit for Arduino: quickly attach your Arduino to standard DIN rail

Yes, it is underpowered for such application.
As I need to get new pair of motors I was calculating with safe numbers of torque needed. The burned motors barely produced enough torque to lift 1kg on a 5cm diameter reel (0.25 N m ?)

I'll measure resistance on the remaining motor's coils later today and post here.

What's the current that the 5 parallel L293D's can provide?

OK, so the measurements make no sense:

It's 1.4 ohms on each coil end-to-end.
End-to-middle (ground) values are all over: 0.9 and 1.2 on one coil, 1.0 and 1.4 on the other.
My meter is probably very imprecise. Connecting probes together gives me 0.4 ohm on the most precise setting (200 ohm) :frowning:
I think I need to go by the info I found online and gues they are 1.1 end-to-end. Makes sense with 2.4V.

So, the initial 8.4A impulse calculated by RuggedCircuits seems to be more like 10.9!

Grumpy_Mike: as for switching regulator - seems I'll have to go with that.

So if I put a regulator that can handle 8.4 A (wow, that's a lot) and reduces voltage to motor's needs and if I keep the current flow bellow the H-bridge capacity, I might even be able to make it work? :slight_smile:

Is it possible to do parallel switching regulators to get the current I need?

There is some general info about stepper motors here: http://arduino-info.wikispaces.com/StepperMotors

But you seem to know quite a bit already.

Your burn-up problem is caused by too much current through the windings. You need to reduce the current to the 2.1 amps per phase somehow.

The Old Classic stepper motor drivers used a large power resistor from a higher voltage to control the motor current. This also increases the Rate at which the motor current rises with each pulse and the motor can run a lot faster than with the rated voltage applied from a 'stiff' power supply. You COULD do that. You'd need two resistors for each motor, connected from the center tap to the supply voltage.

The New Way is to use PWM to control the average current in the motor winding, and this doesn't dissipate a lot of power in the resistors.

Either way, you need to control the average current to the motor specification...

here's some better information about Stepper Motor Driver Circuits:

Stepper motor drive circuits (From Stepper motor - Wikipedia )

Stepper motor performance is strongly dependent on the drive circuit. Torque curves may be extended to greater speeds if the stator poles can be reversed more quickly, the limiting factor being the winding inductance. To overcome the inductance and switch the windings quickly, one must increase the drive voltage. This leads further to the necessity of limiting the current that these high voltages may otherwise induce.

L/R drive circuits
L/R drive circuits are also referred to as constant voltage drives because a constant positive or negative voltage is applied to each winding to set the step positions. However, it is winding current, not voltage that applies torque to the stepper motor shaft. The current I in each winding is related to the applied voltage V by the winding inductance L and the winding resistance R. The resistance R determines the maximum current according to Ohm's law I=V/R. The inductance L determines the maximum rate of change of the current in the winding according to the formula for an Inductor dI/dt = V/L. Thus when controlled by an L/R drive, the maximum speed of a stepper motor is limited by its inductance since at some speed, the voltage U will be changing faster than the current I can keep up. In simple terms the rate of change of current is L / R (e.g. a 10mH inductance with 2 ohms resistance will take 5 ms to reach approx 2/3 of maximum torque or around 24 msec to reach 99% of max torque). To obtain high torque at high speeds requires a large drive voltage with a low resistance and low inductance. With an L/R drive it is possible to control a low voltage resistive motor with a higher voltage drive simply by adding an external resistor in series with each winding. This will waste power in the resistors, and generate heat. It is therefore considered a low performing option, albeit simple and cheap.

Chopper drive circuits
Chopper drive circuits are also referred to as constant current drives because they generate a somewhat constant current in each winding rather than applying a constant voltage. On each new step, a very high voltage is applied to the winding initially. This causes the current in the winding to rise quickly since dI/dt = V/L where V is very large. The current in each winding is monitored by the controller, usually by measuring the voltage across a small sense resistor in series with each winding. When the current exceeds a specified current limit, the voltage is turned off or "chopped", typically using power transistors. When the winding current drops below the specified limit, the voltage is turned on again. In this way, the current is held relatively constant for a particular step position. This requires additional electronics to sense winding currents, and control the switching, but it allows stepper motors to be driven with higher torque at higher speeds than L/R drives. Integrated electronics for this purpose are widely available.

I found 2 motors that run on 12VDC and have enough torque, 0.6A current per winding, etc. Resistance is 20ohms unipolar so that should do the trick. No regulators or anything will be needed and it might even work fine with the unmodified Adafruit MotorShield which would be great as the original plan was to release the project as Open Source and make it as uncomplicated as possible to replicate.

Thank all for your input.
Keeping my fingers crossed.

frenki,

Have you decided how many steps per second your motors have to go?? Direct connection of 12V to a 12V rated stepper will not allow higher step rates...

I have specific speed goal set. Maybe 100-150 steps/sec would be the minimum speed? Dunno. The previous motors were running at 300 steps/sec smoothly, but they were 12V applied on a 2.4V motor (and then they burned). That was far faster than I ever hoped in the first place. I'll see how much I can get out of these new ones and deal with the issue if they end up being too slow. They should be powerful enough to get the needed speed just by making a little bigger reel for the rope and interleaving them, but if not -- I have a (sort of) datasheet for the new motors with all the possible connection combos suggested so I'll be able to control them more precisely. Hopefully, now I'm a bit more aware of what I'm doing :slight_smile: I would sure like to keep the electronics simple, and now it seems like everything could work with only arduino + motorshield (possibly with exchanging L293D for L293 for a bit more current if the former ends up being to weak).

frenki:
The burned motors barely produced enough torque to lift 1kg on a 5cm diameter reel (0.25 N m ?)

frenki:
Basically, I need a motor that can lift 2kg of load on a reel 10 cm in diameter.
If I calculated right (probably not) I need a motor that has torque of 1 N m (?)
Correct me if I'm wrong, please.

I guess your calculation for torque is indeed wrong, 1 Kg = ~9.8 Newton.
To lift 1Kg on a 5cm reel you would at least need a torque of 1Kg / 20 (5cm reel) * ~9.8 = ~0.49 Nm.
So, the burnt motors were stronger in Nm as you thought they were.

For lifting 2 Kg on a 10 cm reel you at least need a motor that can handle 2Kg/10(10cm reel) * ~9.8 = ~1.96 Nm.
A motor capable of handling 2Nm should in theory do, but... it will be pushing the limits a lot.
If 2Nm is the maximum holding torque, you've got 2-1.96 = 0.04Nm left to actually lift the weight.
One that is capable of 3-4Nm will function a lot better and probably lasts much longer.

5 cm diameter = 2.5 cm radius
so the original motors had something little over 1 / 40 * 9.18 = 0.245 N m

2kg on 10cm (5 cm radius) reel was my overestimate just to have more room, but the new motors I found are 0.5 N m -- double the torque of the old ones.
I plan on using smaller diameter to get the power I need, and there's also an option of upping them to 14V (says the datasheet) that would give out 0.7 N m if it turns out that the original ones were giving out a lot more power because I was really pushing them.

I was already thinking, what does he need such big reels for ?
But you're indeed right, Radius and Diameter, my mistake :roll_eyes: