Making a hard disk clickity-clack

So I'm working on the development of an instrument that will, when it's done, be about 4 computer hard drives, 'open face' where they would acoustically be clacking/reading away.

Would it be possible to control a hard drive that way with an Arduino? As in the arduino itself driving the harddrive (not power wise, but control wise).

The idea I have is that, on being triggered, each hard drive would start reading/clicking and then die out (doing less and less). This could be triggered over and over.

I plan on building all of them onto a resonant (wood) enclosure to help amplify them a bit, but I definitely want to keep the computer out of it and do everything in the Arduino (if possible).

I also don't know what type/era of hard drive would be best for this type of work.

Can't tell you much about HDs, but maybe this one's interesting as well.

http://www.codeproject.com/KB/system/floppystepper.aspx

The idea I have is that, on being triggered, each hard drive would start reading/clicking and then die out (doing less and less). This could be triggered over and over.

You can control the VCMs easily enough with a motor driver chip or even just some transistors and PWMing it.

They're what make the head move and make it 'click'.
Controlling the motor itself would be more tricky but most hard drives will spin up the motor even if nothing else is connected apart from power so you could control the power to the HDD with a transistor and just turn it on when you want the motor to spin.

Not interested in spinning the platter at all, actually thinking of using them as rotary encoders to control other things.

Ok - just throught I'd mention it.

The VCMs are easy enough to control - just play around with a transistor and a voltage :slight_smile:

Is VCM the name of 'the arm thingy' ?

Would it just be a matter of sending it voltages so it goes full one way, then full the other way, to make the clicking sound? That seems fairly easy. I was assuming it would need actual read/write information to get it moving.

It's called a VCM (voice coil module - don't ask me why) and yeah it's the name of the 'arm thingy'.
They reside to one end due to the magnetic field on them, then you send a voltage to get it to move to the other endstop. You can then remove the power and it will click back to the initial position endstop.

It's pretty simple.

People have used them for laser projectors (I'm kinda in the process of doing this) - by PWMing them you can get them to go to a specific position rather than just flick backwards and forwards.

That's perfect. I could probably throw in some PWMing too so it's not always the same 'click' sound, but varies depending on how far back it has to travel.

Have you got a schematic of the hardware side of what you're working on?

I also don't know what type/era of hard drive would be best for this type of work

Not a recent SSD one, for sure!

It's called a VCM (voice coil module - don't ask me why)

Because it is the same mechanism used in a loudspeaker - a coil in a permanent magnetic field.
Modern ones have a circular action, but early ones were linear.

Have you got a schematic of the hardware side of what you're working on?

Nope - just stick an arduino output to a transistor gate (2N3904 or something should work) through a 1K or so resistor and connect the VCM to +V (something as low as 1.5V works but I'd go with 5V or higher) and the other side of the VCM to the transistor collector, transistor emitter to ground.

Mowcius

Sweet, I'll give that a go.

Now I just have to find a sufficiently old/loud harddrive to make this worthwhile (modern ones are so quiet).

Now I just have to find a sufficiently old/loud harddrive to make this worthwhile (modern ones are so quiet).

They're not so quiet when you have the case off and when you are making the VMC hit the end stops. Hard drives don't normally click because the VCM is controlled so it doesn't hit the end stops. Something like an old 40GB Maxtor works fine (and you can get them from anywhere - they were used an awful lot around the millenium - and many servers/desktops died an early death because of them :stuck_out_tongue: )

Mowcius

Just hook onto the voice coil as if it were a speaker and pipe some analog signal at it. Heck, pipe some music at it. Literally any magnetic-platter hard drive will work - from the first one to the ones they'll be building Next Tuesday. You just might be surprised at the result - they're actually quite good speakers.

If you're looking to use them as a percussion insturment, just throw them all the way to the bump-stops for a satisfying CLACK.

The easiest way to get access to the voice coil is to pop off the PCB on the bottom (discard it, harvest it for parts, whatever) - that PCB will mate to either a ribbon cable or terminals at two spots: the hub of the main spindle, and a second set with 4+ pads near the hinge for the arm. Poke around on those 4 pads (I recommend using bare speaker wire connected up to a nice, loud radio) and eventually you'll find it the right two connections. You don't need to apply any power at all to the hard drive unless you want to pin up the platters - a lot of drives make some pretty cool sounds on spin-up, so you may want to look into that, too. The spindle motors usually respond well to 12vDC.

An update on this stuff.

I did a bunch of testing at a friends house who has oodles of old HDs. After testing over 10+ drives I found that Seagate "Medalist" drives were the best (clocking in at 2gb on two platters).

The way they are built makes it easy to access the voice coil. The click is satisfying/clear, and once you remove the little rubber bumper that helps preventing the clack, it's even louder.

I have two identical drives now, and each has it's own unique sound, which is interesting.

Here is a pic of the testing:

(the seagate is the bottom/left most drive)

Now as to driving them. We started by just sticking the speaker out of a home hi-fi setup and it worked right off the bat (once we found the points to connect to). Music sounds like music but very quiet/tiny sounding (like a DIY turntable with just a needle going into a cup).
We setup a puredata patch to spit out low frequency squarewaves that changed pitch and rate of change randomly.
This worked the best as it threw the needle around pretty nicely.

At the right volume level (as in, hi-fi volume crankedness) you get the most awesome clickity-clack going.
The problem (at the moment) is that it has to be very loud. Like plugging the speaker back in is "we're have a house party and our neighbors asked us to turn it down" kind of loud. His hi-fi is rated at 40w (or was it 60?), point is, pretty high, and out of reasonable battery powered volume.

I tested it just now, for fun, with my 386-based pocket amp and it made not even a blip.

I really want to build this into a self-standing wooden enclosure, so I want to avoid having a massive power amp in there, then of course is the problem of producing the actual audio. Since squarewaves aren't too weird I figure an Arduino can spit that out and it's low power consumption.

I smell spam.

The problem (at the moment) is that it has to be very loud

I don't think it's possible to get "very loud": very loud speakers have cones that make it possible to transfer large amounts of energy to the air. By comparison, HD head assemblies are downright "aerodynamic". Not much surface area to create air pressure.

If all you want is clicking or buzzing, something like an L293D H-bridge is a fairly cheap way to drive the voice coil with square waves.

Or this guy might give you more oomph than an LM386 for driving it with an analog signal.

Interesting. I was actually going to go with something like this:

I've ordered the chips already, but not placed the other for the caps and all the rest yet.

I also tested a straight 9v battery across the pins and it worked too. It slammed the head all the way one way (and I would presume it would slam it the other way if I sent it -9v).

I've not used an H-bridge before.
What I want to do is get the voice coil to bounce around (hard), so it makes an audible clacking/clicking. Using the audio amp as a driver seemed to have the cool side effect of actually amplifying (acoustically) the squarewaves I was sending it, so you would hear the squarewaves as the head moved around on the platter, and if it was loud enough, that would move the head around enough to hit the end posts, which would then make an even louder click.

So would I hook the L293D up something like this?


http://luckylarry.co.uk/arduino-projects/control-a-dc-motor-with-arduino-and-l293d-chip/

Also it looks like the L293D has 4 outputs. Does that mean I can control 4 voicecoils with it?

Get an old scrap hard drive that barely works except for the motor or has almost no memory. It would be a shame to waste a good hard drive on a device to annoy your little brother or sister or parents. You may be better off just using some motors with a clicker of some type hooked onto them. Maybe a dog training clicker would be a cool noisemaker.

Get an old scrap hard drive that barely works except for the motor or has almost no memory. It would be a shame to waste a good hard drive on a device to annoy your little brother or sister or parents.

Have you even read the rest of the post?

You also obviously have no idea how many scrap hard drives we all have lying around - I can see at least 10 from here. Some are broken, some are just less than 40GB or so and about 10 years old - I'm not going to trust my data on one of them...

Sorry to necro this thread, but I got around to making a quick video recording of the stuff.

http://rodrigoconstanzo.com/hds/

This is two HDs in "stereo" being driven by a home stereo and Max/MSP.