I'm working on trying to control a hard drive with an Arduino Uno, but I'm having trouble with the power supply. From what I know, both the Molex Mate-n-Lok and the new SATA connectors both have 2 grounds, a 5V and a 12V power in. I'm wondering what the purpose of the 12V power supply is. I suspect it's used to drive the motor but I'm not sure.

  • Which hard drive? Are you planning to use it as a mechanical device, or to actually read/write to the disk?
    – Nick Gammon
    Commented Aug 28, 2016 at 22:35
  • @NickGammon Any ATA Compliant HDD, I plan to use the hdd as an hdd, but currently am having issues with power supply. At the moment, I'm working with an IDE, but may move to a SATA if I don't have enough pins Commented Aug 28, 2016 at 22:50
  • 3
    The hard drive lists what voltages and currents it needs on the casing. Commented Aug 28, 2016 at 23:09
  • 1
    This would depend on the drive. Since you won't state a specific one, it is off topic as too broad. But regardless, it is off topic because this is the Arduino site, not the hard disk drive site. Also, you aren't going to talk SATA with an Arduino. But you can get away with using only 8 of the 16 bits on the IDE bus, if you are willing to waste half the capacity, as the commands are only 8-bit. For anything practical, SD cards will probably serve you better, if not you should probably look at something better than an Arduino. Commented Aug 29, 2016 at 5:02
  • 1
    I would love to see you try and generate a 1.5Gbps LVDS signal from an Arduino... and that's just for the old-fashioned SATA-1. It's 6Gbps these days...
    – Majenko
    Commented Aug 29, 2016 at 11:22

2 Answers 2


Judging by my old copy of "Upgrading and repairing PCs" - which I found a quote for on Google Books - the 12V supply is for the spindle motor, and it says:

Spindle motors, particularly on the larger form-factor drivers, can consume a great deal of 12V power.

  • Thanks, answered the question clearly and succinctly. Without casting aspersions on the idea itself Commented Aug 29, 2016 at 23:18

3.5" hard drives require 12V and 5V for the motor and logic respectively. SATA ones may also require 3.3V for the logic. Most smaller laptop drives (2.5") only require 5V and 3.3V. Some 2.5" drives also require 12V.

You will not be able to interface a SATA hard drive to an Arduino without some kind of SATA hard drive controller, which you could possibly build using a fast FPGA (in which case why would you bother with an Arduino?). For SATA-I (way out of date now) you need to generate a 1.5Gbps LVDS (Low-Voltage Differential Signal) data stream. For SATA-3.2 that is now 16Gbps. Impossible on an Arduino.

PATA (Parallel ATA) is more realistic, although you need a lot of pins since it is a 16-bit parallel interface. Timing is less critical since it is synchronous with the read / write strobes.


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.