I've stripped out an old IDE (40 Pin) HDD from 1998 for use in a POV display project (Gr. 12 Computer Engineering), and I've been trying to spin it up.

The problem is that the HDD motor is brushless DC, so it requires more than just a ground and source connection. Our electronics has a max output current of about 200mA (555, transistors, other ICs), so I can't work with those.

Connecting the HDD with the PCB to the PSU will only turn the motor on for about 15s before it shuts off.

The HDD is completely stripped with only the motor and the PCB screwed into the base. The motor has 4 pins. From the time I spent playing with it, there's 1 pin for ground, and 3 other pins that I think is for the 3 pairs of coils.

HDD information:

  • Fujitsu MPB3043AT
  • 12V DC 0.32A
  • 5V DC 0.5A


  • Arduino Uno
  • Old HDD
  • PSU
  • Breadboard
  • 9V battery
  • 1.5V batteries
  • 74HC164 8 bit sihft registers
  • 555 Timer IC
  • 3904/3906 Transistors
  • Capacitors, resistors, potentiometers

What options do I have to get the motor to spin (Preferably without the PSU, but I'm open to options with the PSU)? Is there a pin on the IDE that will allow me to turn it on/off?

UPDATE 1: I fiddled around with the IDE cable. When I connect pin 27 (IO Ready) to pin 2 (Ground), the motor started spinning as if I just plugged it into the PSU, but only for about 10s. And I had to wait a few minutes before I can get it to spin again using this method

UPDATE 2: Turns out the motor is only 5V and not 12V, that should ease things up a bit

  • 3
    \$\begingroup\$ You can't easily control the HDD motor via IDE cable. Unlike floppy drives, where motor commands are directly send over the IDE cable, on hard disk drives, the drive's controller is expected to calculate cluster position and actuate the motor. \$\endgroup\$ – AndrejaKo Apr 19 '13 at 15:03
  • \$\begingroup\$ Great. That's what I thought, but how does the computer keep the drive spinning then? \$\endgroup\$ – Alex Apr 19 '13 at 18:01
  • 1
    \$\begingroup\$ Most of the HDD motors are BLDC (brushless) motors. They can be driven by brushless ESC. Cheapest would be to buy hobby RC ESC and drive it by PWM. \$\endgroup\$ – Gossamer Apr 19 '13 at 19:25
  • \$\begingroup\$ @Alex Yan I didn't research the field too much, but I think that it doesn't. Maybe it's better to say that computer doesn't care if the disk is spinning or not as long as the drive is responding correctly to commands. Maybe you could attempt to fake some ATA commands to the disk and see if it keeps spinning. Here's a list of some ATA commands. I'm not sure how feasible it would be to actually try to generate commands. Arduino may be too slow for your use. \$\endgroup\$ – AndrejaKo Apr 19 '13 at 20:28
  • 1
    \$\begingroup\$ How to Run HDD Motor using Sound Card of the PC youtu.be/R9Q1XrFZr5E \$\endgroup\$ – user115627 Jul 2 '16 at 8:40

Most of the HDD motors are BLDC (brushless) motors. They can be driven by brushless ESC. Cheapest would be to buy hobby RC ESC and drive it by PWM. Something like this would be fine. (turnigy plush 25A).

25A means that it can be used to run motors up to that current without damaging ESC. You could find lower current ESC as well (but this one is cheap enough).

ESC consist of three wires, there are no 4 wires ESC. You need to measure resistance between pairs of wires and connect only wires with higher resistance. One with lower resistance leave unconnected.


I am not sure if I got your question correctly but I am assuming you are asking how to make the HDD motor spin continuously (also assuming you don't have a circuit in place to spin the motor yet).

AFAIK HDD motors are stepper motors with 3 coils to supply input source at different phases of rotation of the motor. You will need to provide it with a 3 phase supply voltage to work optimally.

I found a helpful schematic on the internet here. You could make your own driver circuit based off the schematics shown there.

  • \$\begingroup\$ That link is OK as a learning journey BUT modern controller ICs also sense the motors 'needs' using the signals from the motor coils for feedback. They modify the drive timing to match what the motor is actually doing. (Olde controllers often used separate sensors to determine motor action. This is still done but is much rarer). "OPen loop" control of the motors is not an very good idea. \$\endgroup\$ – Russell McMahon Apr 23 '13 at 18:55

Hope that I am not too late.

I wrote an article here. Basically I was using Arduino to send discrete signals to all 3 phases, but those three phases combine to give a continuous attractive force and make the rotor rotates. These signals allow the Darlington Transistors to pass a larger current to drive the motor.

  • 2
    \$\begingroup\$ Welcome to EE.SE! We generally discourage answers that are based mostly on links to resources outside of this domain, because the links tend to break over time and the answer has no value. Can you include more information here so that your answer has lasting value? \$\endgroup\$ – Joe Hass Feb 21 '14 at 16:46

I simply used a $3 freq generator (aliexpress.com) and a N-FET, connected one phase to 12V, the other to drain, and source to ground. Very simple. There is two issues, no self starting (I set to 60Hz and give it a light spin), and there is a acceleration limit, you cant go to quick or it loses sync. Quick testing showed 1000Hz freq was no problem (about 6W input at 12V). UPDATE: I got the hard disk drive motor to spin 25,000 rpm using this simple fet and freq generator. https://www.youtube.com/watch?v=SRk651ThM0k


Your Answer

