Go Down

Topic: Drive Hdd motor (Read 5 times) previous topic - next topic


I have looked up for this but I can only find old posts.

I have hooked up a 7200rpm Hard drive disk that I have removed all the circuitry and arm, and only left one plate and the motor.

The motor have 4 wires ( 3 poles and commond groud).

I have surfed the web a lot and found a topic (http://letsmakerobots.com/node/2876)  of someone who was able to drive a hdd with a couple of pics.

Well I have followed the circuit with a couple of L293 in a Piggyback setup ( that I have learned also this days) and connected to my adjustable powes supply.

I have mounted a CNY70 optical infrared sensor under the plate and put a black tape in a side of the plate to detect every count in order to feedback the necessary pulse to drive the motor

I have worked for some days and I have sucefully driven the motor to up to 4600rpms, I didn't try to go far as It´s not my intention to reach max speed.

What I am trying to do is to make one of those hdd POV clocks like in this http://www.ian.org/HD-Clock/.

Now I have a couple of questions that maybe someone could answer.

As the resistance between the coils of the Hard drive is 1 or 2 R, the motor try to take as much current as It can. I am limiting the current with the Lab dc power supply to 1,2 Amp, but the disk is supposed to work with only 0,7 Amps. If I don't limit the current, the sistem try to get as much current as possible rising up to the limit of the powers uplly 3 Amps. I imagine that is due to the low resistance.

1.- Does anyone know how to avoid this with electronics(limit the current). I mean with component as I am planing to feed the sistem with a cheap DC wall power supply. ???
It is there any Hbridge or shield that can do this ?? or Is there any ciruit?

I was working hard and I needed one week only to realize the the serial comunication was the problem that didn´t allowed the disk spin above 800 rpm. Once I dissables serial com and installed the sensor for feedback with a PID I started to achieve high speeds, the arduino is able to pulse the coils, read the sensor, apply the PID and feed back  so the second question is.

2.- Do you think that Arduino Uno has the needed power to to this, plus the POV stuff. I mean, drive the motor and make the leds according to the sensor to display the time ??

I have bought and R/C controler that I did not arrive yet but It has 3 wires and I am not sure that I will be able to drive the 4 wires HDD. But also IT was a lot of work for me to do this hdd drive and I would like to try to do it all with the Arduino.

Thanks a lot.


1.- Does anyone know how to avoid this with electronics(limit the current).

There would be a couple of options -- insert a 5 ohm 1-watt resistor (or some other value) in series with the coils.
or use PWM to reduce the average current.


2.- Do you think that Arduino Uno has the needed power to to this, plus the POV stuff.

Yes, Arduino has a good deal of compute power.  The trick is to structure things so that they can be interrupt driven, so that the compute power of the CPU is not wasted in timing loops and busy-waiting for conditions.  This makes programming trickier though.

There is no good reason why the field sequencing for the main motor cannot be interrupt driven completely, leaving you to drive the LEDs with brute force, if necessary.


Well. Thanks a lot for the answer you have solved me a lot of problems with your first answer, I will do the resistor thing as is much more easy that PWM.

With regards to the second Question We realized that is quite tricky. We cannot use any delay, almost anything that can stop or delay the code as the speed and time is critical,

The motor is spinning 4500 rpm and I am pulsing the motor 12 times per turn it is 900 times per second roughly, so I forgot about serial print and lcd print and almost anything so it's a nightmare for debugging.

I am in the process of making the disk starting as It accelerates a lot but I have to spin it with my figersfrist due to the sensor optical not related with the fases when it's stopped. I have a manual routine that is more or less starting the thing but I did not incorporated yet

And at the same time I have to start to perform all the lights stuff.

Well It'll take a lot of time.



I have made the hdd spin up up to more than 6000 rpms, actually I have limited the speed as I don't need much speed and I have made the lights stuff, and all It's done with the arduino.

I couldn't find anyone yet who have made all of this only with the arduino as all the info that I found about HDD POV clocks started with hdd that were able to spin, mine is only motor without circuitry at all so It means that Arduino is pulsing the motor, sensind the speed and making the lights stuff.

Here is the result yet.

The hands are moving and so...

Now that I am here, that I have go so far. I really need help...

I am planning to mount everything INSIDE the hard drive, an ARduino mini, the L293 who powers the motor and the TIP120 transistors the feeds the lighs , so everything.

The problem that I cannot solve is..

I am feeding the leds (12v) with a power source (12v)

I am feeding the motor with a different power source (4,7v) that is the perfect voltage, like that, the current is not going to infinite due to the low resistance (2ohms) between the hdd motor phases.

If I limit the current with my lab power bench to 1 am automatically the voltage drops to 5 or 4,7v (the perfect one) but I cannot drive the leds (12v).

So I really woud like to feed all with only a power source but I don't know how.

I have tried to feed all with 12v, straight to the leds transistors and trough a LM317 for the L293 but again the voltage drops or the current goes to infinite.

Someone suggested to PWM but I think that arduino is on his limits doing all this stuff already driving motor phases every 1500 microseconds and lights and interrupts and so, and the perfect PWM for a motor as I readed is 20khz so I don't think is possible to do it.

The second choice was to put a big resistor ( big means 2 or 5 wats ) to limit the current but I think that a lot of heat would be dissipated, and I  am having problems already with the L293 piggyback getting VERY HOT so any help would be apprecciated.

I was even think to drive the motor with a Remote control ESC as everybody else and disregard all the programming work made about that, but now that I have spend weeks with this and the motor is working so smooth and as I said I donñt know anyone who have made all this with an arduino I really think that would be a pitty.

So If anyone suggest me a circuit to drive both things 12v leds low current ( like 100mAmps or less ) and the motor that works very good with 4.7 volts ( I think because the low voltage limits the current) at the same time and trying not to waist power in heat ( beause the plan is feed it all with a wall transformer ).  I would really apprecciate a lot because I am totally lost.

Thank a lot in advance and best regards.


Hi, I need a little help for my first Arduino project, I'm trying to spin an hdd motor at max speed but without success, can I ask you to post your electric schematics and the sequence applied to coil to spin it?.
I have an L298 you think can I use it?, i've tried with a simple 2n2222 for coil but they began very hot and the motor rotate very bad.

Many thanks in advance


Go Up