After i salvaged some stepper motors and read alot about them i finally decided to try them out... But before i did i asked: Simple stepper motor circuit safe?

in the above question you can find datasheet and circuits of the motor i used.

I opted for the Mitsumi M55SP-1N from hp printer and the ULN2803A as driver.

After finding the 2 coils and the center tap i tested with 5v using a battery.

As expected everything worked fine.

It was time to solder things together. I used 2 channels per chip To be sure to have enough sink and not overheat the chip. I tested everything again with 5v. Perfect.

Now, as the motor is a 12-24v motor i atached a 12v 1.25Ampere powersupply.

The green Light on the powersupply started to dimm as soon as there was current flowing trough the ULN2803. Anyway the motor just made some random noises and unexpected steps.

Even if the whole setup should consume less than 1.25Ampere i decided to power it with a bigger one. So i took a 12v 5A powersupply and turned the motor on.

After 3 erratically stutters the uln2803 exploded.

The only thing i could think of was wrong is the missing Diode between the powersupply and the common of the ULN2803 wich should be optional as the that chip already has alot of protection diodes.

Please help me to understand what i did wrong. I'm not an electrical engineer, i'm just trying to learn new things and i don't want to give up now. i have more uln2803...

here is the finished circuit http://imgur.com/a/tCdwk (2 images) and shematic


simulate this circuit – Schematic created using CircuitLab

  • \$\begingroup\$ What were you using to drive the inputs of the chip? \$\endgroup\$ – Dejvid_no1 Feb 29 '16 at 11:12
  • \$\begingroup\$ microcontroller ... arduino (planning to use a ESP8266) using the basic stepper example. \$\endgroup\$ – cocco Feb 29 '16 at 11:13
  • \$\begingroup\$ Any chance that you drove the pins in a conflicting way? \$\endgroup\$ – Dejvid_no1 Feb 29 '16 at 11:14
  • \$\begingroup\$ with 5v it worked perfectly ... i increased the speed , find the n of steps & to test it with 12v i reused the basic slow example. \$\endgroup\$ – cocco Feb 29 '16 at 11:17
  • 1
    \$\begingroup\$ I didn't downvote (yet), but it's annoying to have to find information for a question scattered about. It's good to link to the previous question for context, but everything essential to this question needs to be in this question. I vaguely remember seeing your original question, seeing some serious problems, but not answering for some reason. Can't remember why now. It does look well written. Perhaps it wasn't at the time, or you already accepted a answer or something. \$\endgroup\$ – Olin Lathrop Feb 29 '16 at 12:13

While bipolar stepper motors require a quad half bridge driver, your unipolar motor has center tapped coils that can be driven by a simple transistor array such as the uln2803.


simulate this circuit – Schematic created using CircuitLab

Freewheeling diodes are required to prevent the inductive kickback caused by the coils when the transistors switch off from destroying the transistors, but the transitor array you selected already has integrated freewheeling diodes. Judging from the pictures you posted, the COM pin is connected to the supply voltage: the diodes are properly connected.

Looking at the datasheet, the individual transistors can only sink an absolute maximum of 500 mA each, and the entire chip can sink a total current of only 2.5 A. Placing two transistors in parallel (as you have done) doubles the maximum current in theory, but with bipolar transistors this is not always the case in practise. The transistor that heats up more will have a lower forward voltage and thus tends to gobble up an even greater portion of the total current causing it to heat up even more in a feedback loop.
This is not the case with the ULN2803, however. The transistors share the same die and are actually designed to be paralleled, obviating the problem:

current sharing

The problem

It appears that the collector current is too high at 12V. Currently the only thing limiting the collector current is the winding resistance, and the same resistance at 12 V will pass 2.4 times the current it passed at 5 V. You have three options for correcting this:

  • Use a bipolar stepper with more turns of finer wire

  • Add two current limiting resistors. A resistor should be connected between each center tap and the supply voltage, and should have a value that when combined with the winding resistance limits the current trough each transistor to (preferably much) less than 1A. The COM pin should still be connected to the supply voltage.

  • Pulse-width modulate the coils. By lowering the duty cycle, you can lower the effective motor voltage. This has the advantage of higher efficiency and that you can increase the motor voltage when the motor speed increases, countering the back-EMF generated by the spinning rotor and better maintaining torque at speed. The disadvantages are that switching losses will be generated even when the motor is at rest, the constant pulsing will generate coil whine and the code will necessarily be more complex.

  • \$\begingroup\$ The motor didn't rotate properly at 12v ? Assume i add 2 (nOhm nWatt) resistor (or 1 as the centertabs are already connected at the motors PCB) . Do you think it would move? \$\endgroup\$ – cocco Feb 29 '16 at 12:59
  • \$\begingroup\$ Let me explain this a little better: the motor worked flawless with 5v (2A max battery), did not move (stutter only) with 12v (1.25A powersupply) & did not move (stutter only) exploded after 3 inconsistent stutters at 12v (5A max ) powersupply \$\endgroup\$ – cocco Feb 29 '16 at 13:01
  • 1
    \$\begingroup\$ @cocco You can modify your old comments instead of spamming new ones. The motor didn't rotate properly at 12 V because the transistors in the array fried themselves and shorted out as soon as they turned on. Then you gave the deceased chip 12 V from a higher current source which transformed it into a heater that blew it up. You need to measure the winding resistance from a ULN2803 output to the center tap in order to know how much series resistance has to be added. The total resistance should be 15 ohms (for 800 mA at 12 V) or more, if it is less than that you need to add series resistance. \$\endgroup\$ – jms Feb 29 '16 at 13:08
  • \$\begingroup\$ How to measure? An unpowered uln2803 at input 1(multimeter red) attached to the unpowered stepper motor coil 1a (uln2803 output 1), then one of the centertabs (multimeter black) , set to ohm? As the chip is broken and i need to create a new one desoldering the connectors i could use single inputs on the uln2803. would that be also an option? the motor should need less than 300mA \$\endgroup\$ – cocco Feb 29 '16 at 13:15
  • \$\begingroup\$ per phase. As the chip is broken and i need to create a new one desoldering the connectors i could use single inputs on the uln2803. would that be also an option? the motor should need less than 300mA.*sorry but i could not edit the comment before(5min max) and every second that passes i realize that some specifications are missing.like i said ... i'm trying to learn. i'm already happy if the motor rotates. i just don't wanna break chips. \$\endgroup\$ – cocco Feb 29 '16 at 13:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.