I can see there are many writings on line for using an Arduino to control a 4 or 6 wire stepper motor, that spins the platter in side an IDE hard drive. I want to control the seek read/write head motor instead, can this be done? I'm struggling to find anything at all on this?

  • 2
    \$\begingroup\$ You're looking to control what's called the voice coil. There's a little information here which should get you started: spikenzielabs.com/SpikenzieLabs/Laser_Display.html \$\endgroup\$
    – snoopen
    Oct 23, 2011 at 22:10
  • \$\begingroup\$ Hi snoopen, after reading that, and the below answer, would I be right in thinking I need a H-Bridge IC so I can send voltage to the VCM. Then using a digital pin on an Arduino and a loop, continuously pulse the pin between HIGH and LOW, causing the VCM to continuously alternate the current, makiong the head move? I'm trying to make music by pulsing it back and forth really quickly? \$\endgroup\$
    – Baldrick
    Oct 24, 2011 at 19:49
  • \$\begingroup\$ Hard drives to not use stepper motors for the platter motor. The platters are spun by a AC brushless motor, which is a good deal more involved to control then a stepper motor. \$\endgroup\$ Oct 25, 2011 at 2:41
  • \$\begingroup\$ @FakeName I think you meant a DC brush-less motor. (all of the IDE hard drives I know of run on 12v/5v DC) \$\endgroup\$
    – Dan D.
    Oct 26, 2011 at 4:17
  • 1
    \$\begingroup\$ @Dan D. - As a side note, there is no such thing as a DC brush-less motor. There are certainly AC brushless motors with integrated controllers that can run of DC, but brushless motors (and motors in general) are AC objects. Brushed motors just do DC-AC conversion internally, by way of the brushes and commutator. \$\endgroup\$ Oct 26, 2011 at 6:59

3 Answers 3


As snoopen says - you want a "voice coil" driver or actuator.
It's well within the capabilities of an Arduino to drive one of these.

There are a number of people offering on-web examples of HDD voice coil drivers used for other purposes.

Wikipedia overview

This provides a general view of an HDD voice coil actuator

This is an actuator withy the magnets in position above and below the coil

enter image description here

and here is a unit with the magnets moved out of position to provide an internal view.

enter image description here


Here is an utterly amazing LASER shutter driver achieving mechanical shutter rise times of
500 nS !!!. There are a number of links off this page to other variants and upgrades.

Their basic driver circuit is suitably simple -

enter image description here

Here is a formal 2004 paper based on the above

And three years later in 2007, an updated version

Here is a throttle position control using an HDD actuator.

Circuit diagram here - the actual actuator control is the middle third hozizontally and the actual driver is 2 transistors driven by an opamp. An Arduino could easily feed a s signal to such a circuit. eg smoother PWM or a DC voltage generated in some other manner.

enter image description here

  • \$\begingroup\$ Russell, thanks very much for your great information. I have a hard drive from which I have removed the cover (i55.tinypic.com/15d9xqw.jpg) Here I have turned the VCM upside down, do you think these two pins are the two pins I need to send current too? (i52.tinypic.com/2vb0iyt.jpg) \$\endgroup\$
    – Baldrick
    Oct 24, 2011 at 19:42
  • \$\begingroup\$ Also, does this tie in with my comment above to snoopen? \$\endgroup\$
    – Baldrick
    Oct 24, 2011 at 20:17
  • \$\begingroup\$ Hi Russell, it has take me a while to read through what you've said and the links provided, so thank you. Its all becoming much clearer now. I'm going to tinker over the next few days and I'll report back what I find. Thanks :) \$\endgroup\$
    – Baldrick
    Oct 27, 2011 at 8:03
  • \$\begingroup\$ @jwbensley 9 years on - how did it work out? \$\endgroup\$
    – Russell McMahon
    Jan 4, 2021 at 9:41
  • \$\begingroup\$ I accepted the answer on Jan 7th 2012 - that should be a good indicator that it worked :) \$\endgroup\$
    – Baldrick
    Jan 4, 2021 at 15:23

I was going to post another comment but I was writing too much. So here's the beef:

You're looking to control what's called the voice coil. There's a little information here which should get you started: http://spikenzielabs.com/SpikenzieLabs/Laser_Display.html

In response to your comment:

Yep, the examples I've seen use an h-bridge circuit in locked antiphase configuration. The digital signal in this case switches the h-bridge output between -5v and +5v. You will need to tie the enable pin of your h-bridge to always be on during operation. You should then be able to generate a square wave tone on the Arduino and use that as the control signal. Be wary that the voice coil might not like to be held in one position for too long so you might need to drive the enable pin off when you're not sending a signal.

  • \$\begingroup\$ Hi Snoopen, thanks for your reply. I've just had some H-Bridges turn up so I will try and get this working over the next day or two and report back with my result :) \$\endgroup\$
    – Baldrick
    Oct 27, 2011 at 7:59

arduino cannot supply much power required by HDD motor . there is possibility that arduino may get damaged. so use MOSFET(IRF 830)

  • \$\begingroup\$ The MOSFET recommendation is not validated by any reasoning: Why that MOSFET and not any other? Besides, it is irrelevant to the specific question. \$\endgroup\$ Nov 2, 2012 at 21:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.