Let's Make Robots!

Walzing Hard Drive Motors

Update: This page is just an archive. The real work is continued as a walk through. Please direct all your comments to that page.

I am the proud owner of a stack of scavenged hard drives. I hoped to find really fast, torqueless motors inside. But instead I found myself a project for my new found 555 knowledge.


The logic chip 74164 is a "Serial In Parallel Out bit shift register" (datasheet). S1 acts as a reset button. S2 is the little white wire in the video that "boots" the sequence. Once one serial pulse makes it into the 74164, the system will maintain the sequence. When the pulse reaches the third output (red), diode D1 feeds it back to the first (green).

The motor driver is the well known L293D.

The video lasts as long as 10 minutes. Oh, and you'd better take your sea sickness medicine!


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I was trying this out.. but for some reason.. the sequence stops after a random time interval.. its not a fixed interval.. 

Hi, I'm new to electronics and I like it, perhaps we could help to turn these engines HDD because I have some and I could not. Thank you so much if you could put the entire circuit. thanks ...
Update: This page is just an archive. The real work is continued as a walk through. Please direct all your comments to that page.
Update: This page is just an archive. The real work is continued as a walk through. Please direct all your comments to that page.

Here's a pic of a typical brushless DC motor driver circuit.


Each "half-H" is usually driven in a sequence according to what is read from the hall effect sensors. Each phase would begin with  the upper transistor on sourcing the connection, then both off not conducting, then the lower transistor on sinking current. THe second phase follows with the upper high at the time the first phase goes neutral. So each corner alternately goes from sourcing another to sinking from another. Some controllers can be "sensorless" and simply commutate and hope the motor is following. Some model airplane controllers are like this. But they work.

Wikipedia has a few general details. Pretty cool that you've got it moving pretty well. Thinking of making a POV device? or a laser scanner?

The motor you are showing has a "delta" configuration plus hall effect sensors.

The hard drive spindle motors I collected do not. The are in "Y" confiuration and have no sensors. It is thinkable to use the induction in a non-powered coil as sensor though.

I like the idea of reversing the current through the coil. Of course timing that would be even more crucial.


THe Wikipedia link above shows both delta and Y configs, and both are driven similarly. And hall effects do not have to be there, they simply can help. Back EMF sensing can be used too, I think that may be a different way ot refer to induction sensing.

back emf sensing indeed

trust me: i've found the wiki way

and i am determined to put this piece of thery into practise for all of us to learn from


Very interesting, if your interested here is another 3phase generator using a 4018 that doesn't need a reset or initialise button, just a clock input.


 Admittedly this isn't my design, it's from the "CMOS cookbook" and I think the output is slightly different.


I wonder how this might affect the efficency of the motor.

I was also thinking about the fact that you're using  L293D as the driver. When both sides of a winding are high or low you are effectively using electronic braking. If you use open colector outputs then the windings will either be on or off with no braking. Since this is a three phase motor and direction is changed by swapping any two of the phases you could replace the L293D with three NPN transistors.



To stop the pulses overlapping (so each phase is at 33% duty) I think it can be done using a set of NOT gates and AND gates.

Output A = A AND NOT B

Output B = B AND NOT C

Output C = C AND NOT A

All this should do (years since I've done truth tables) is cut short each pulse as soon as the next phase turns on.

I'm going to try driving a Seagate SCSI hard drive which uses a TPIC1533 driver, this uses the same waveforms (to pull the coils up) plus the same again 180 degrees out of phase (to pull the coils down) so I've got to try and make a six-phase output to do it, either by cascading 4018s (if I can) or with more gates:-

Output X = B AND NOT A

Output Y = C AND NOT B

Output Z = A AND NOT C

The output sequence (each pulse overlapping the next by 50%) is then A Z B X C Y. In the gap between A and X the motor pin is neither pulled up nor down, just as Seagate do it. As a bonus there's no chance of A and X being on at the same time (which would short the supply).

9 gates for 6-phase, typical! Five chips including the 555, may as well use a PIC!