stepper motor driver / ULN 2064

Hi all,

I'm trying to drive 2 stepper motors :
103H7123-0140 :24VDC 1A/phase 6.7ohms/phase (
103H7123-0140 : 24VDC 1.2A/phase 3.3ohms/phase(

To do that I use Darlington Array ULN2064b 50V/1.5A.
when I drive the first motor, the ULN is very hot, that's why I decided to add heatsink and fan and the result is OK.
But when i try to drive the second one with another ULN this one burn! and I don't know why.

for power supply, I use one 24VDC 5A.

The 2 motors are not powered at the same time.

thanks for your help!

Those motors are designed for 1amp and 1.2amps and the coil resistance is 6.7 and 3.3 ohms respectively. With a 24v supply the current will be 24/6.7 and 24/3.3 = 3.6 and 7.3 amps. That will damage the motor, never mind the driver.

If it was a bipolar motor I would suggest using, for example, a Pololu DRV8825 driver which allows you to limit the current to protect the motor. However I don't know if there is an equivalent for a Unipolar motor.

I am assuming your motors only have 5 wires (rather than 6).

Stepper Motor Basics

Hi Robin2,

Many thnks for your answer!

Could you please tell me why the use of a 24VDC will damage the motor whereas on the datasheet of the motor this is noted that this is a 24Vdc motor?

Concerning the DRV8825, the motors I use have 6 wires, is that possible to transform them to bipolar by not using the common point of each coil?
If yes, I don't know if the DRV8825 will be enought because it is done for 2.5A/coil?

Thanks in advance for your answer.

I presume 24v is mentioned because it will make the motor perform well. But things must be arranged to keep the current below the limit for the motor - the specialized stepper drivers can do that. Without a current limit the full 24v will appear across the coil resistance when the motor is stationary.

I don't know where you got the figure for 2.5amps per coil. Your Original Post and the datasheet (IIRC) say 1.0 and 1,2 amps.

It should be possible to run the motors as 4-wire bipolar motors. It would be wise to measure the resistance of the coils. It is possible that the datasheet figures are for each half-coil. In any case I would set the current limit on your DRV8825s to 1.0 amps and 1.2 amps for the relevant motors.


the 2.5 amps are on the DRV8825 datasheet.

Ford the DRV8825, do you know how to limit the current?


If you buy a DRV8825 board from Pololu, follow their instructions to set the current limit.
Or read the datasheet.

One guy told me that the DRV8825 is not ok with my motor because the DRV8825 is capable of driving up 2.5 A of current at 24V and my motor is 1A/phase 6.7ohms/phase!
I don't know if he's right, but if yes, I really don't understand driver because I thought that If it's able to limit the current you can supply it with 24V

He is wrong.

because the DRV8825 is capable of driving up 2.5 A of current at 24V

That means it would be suitable for a motor that needs 2.5 amps. It does NOT mean that it would cause a problem for a motor that only needs (say) 0.25 amps.

Having the capability for a high current is never a problem.

As @jremington said, the Pololu web site has very good information about their stepper drivers.



thank you for your answers.

I ordered a DRV8825.

But yesterday, I tried to drive the first motor, still with a new ULN2064, but this time with 6.7V (1A x 6,7Ohms) just to move the motor slowly and validate the theory.
Unfortunately, nothing happened, I thought that my motor was dammaged due to my previous tests, but when I measured the coil resistance they where OK (not infinite).
Lets have a look to my sequence code:
while (1)
{ PORTC = 0b00000011;
PORTC = 0b00000110;
PORTC = 0b00001100;
PORTC = 0b00001001;
I attached a schemas of what I made.

Did you set the pins as outputs? using PORTC is like using digitalWrite(), you still need to call pinMode(pin, OUTPUT) first.

Yes I did.
As I said at the beginning of my post, I tried to drrive the motor using the same schema but with 24Vdc supply voltage (I was really wrong!), but the motor turn perfectly and after several tests the ULN2064 burn.
So I did another test at 6.7V (based on the datasheet of the motor, 1A/phase and 6.7Ohms/phase) with a new ULN2064, but nothing happened.

Have you checked the voltages at the Arduino pins, double checked your circuit (continuity
testing with a multimeter is sometimes useful), and checked all your high current wiring
is solid (a dodgy connection might work for logic but fail at several amps). Bear in mind
these currents are larger than a breadboard is designed for.

Incidentally most steppers are either high impedance or low impedance, 6 ohms is somewhere
in the middle, rather difficult to use for unipolar low speed applications or high speed bipolar

If you want high speeds, go for low winding resistance (1 or 2 ohm sort of area), if you want a slow
motor get a unipolar 12V motor (5, 6 or 8 wire, not 4), which will be about 50 ohms sort of range.

I increase the delay between the steps in order to do some measurment (from 500ms to 2sec), when I power the circuit, I measure 6.7V between pin2 of the ULN2064 and GND, which is normal, and when I press the button to start moving the motor, I measure 0V still between pin2 of ULN2064 and GND, that seems normal to me.
But when I check on pin 7, 9 and 16 of ULN I also measure OV which is not correct.
Normally, I should have 0V on pin 2 and 7 and after 2 sec I should have 6.7V on pin 2 and 7 and 0V on pin 7 and pin 9 and so on, Iam I wrong?

Referring to Reply #14, wouldn't it be a lot simpler to wait until the DRV8825s arrive ?


Hi Robin,

I received the DRV8825, the wiring seems simple, but I will ask maybe a stupid question but I don't want to burn it.
my motor is unipolar with 1A/phase and 6.7ohm/phase, I saw on polulu forum that the DRV8825 is compatible and I just have to not connect the common wires.
So the winding resistance is now 13,4ohm/phase, but my current motor limit is it still 1 A?
If yes, I don't understand how to set on the drv8825 1A limit?

Could you please help?

So the winding resistance is now 13,4ohm/phase,

Is that what you get when you measured the resistance with your multimeter?

but my current motor limit is it still 1 A?

As far as I know, yes

If yes, I don't understand how to set on the drv8825 1A limit?

See the Pololu DRV8825 web page