@Paperdoc: I don't know whether the fan header in DC mode supplies 0 volts to the fan when FanControl sets the speed to 0%. I assumed that if it's nonzero volts at 0 rpm, it would be small enough that the current will not overheat the wiring of the non-spinning fan. But if you think a nonzero current could cause damage at 0 rpm, then someday I'll try to measure the in-circuit 0 rpm voltage.
Was it your intention to warn me about possible damage from a nonzero current? If so, your words didn't make that clear.
Minimizing electricity consumption by reducing the fan current to zero -- which you say might not be possible -- isn't the only reason to prefer 0 rpm. As long as damage won't result, there are still two or three other reasons to prefer 0 rpm:
- Quietest.
- Less wear-and-tear on the fan bearing.
- The drive may last longer if it's not too cool.
The theory behind #3 is an old study of thousands of Seagate hard drives in Google server farms, that kept track of temperatures and drive failures for several years. If memory serves, the study concluded that the sweet spot was for temperatures in the mid-30s (Celsius). Drives with average temperatures cooler than (or warmer than) the sweet spot failed earlier. So I prefer 0 rpm when the drive is 32C or cooler.
I don't recall whether the study determined whether it was really the drives' average temperature that mattered, or the number of temperature swings (which cause materials to expand and contract, not good for longevity). A low average temperature might have been associated with swings down from normal loads to light loads... drives that stored unpopular Google data. A high average temperature might have been associated with swings up from normal loads to heavy loads... drives that stored popular data. Minimizing temperature swings by preventing "overcooling" -- in other words eliminating unnecessary thermal contraction and expansion -- would be consistent with #3.
I think another possible use case for 0 rpm would be in a pc that has many case fans, where one or more fans could be shut off when the pc isn't under heavy load. For instance, if the case has more than one intake fan, perhaps not all of them need to be spinning at all times. Similarly, exhaust fans might not need to be spinning; the intake fan(s) might suffice to keep the system cool when the pc is idle or near-idle, and spinning exhaust fans have the unwanted side-effect of reducing the internal air pressure, letting in more dust through gaps in the case.
Some clarifications:
My external hard drive is not in an hdd case. It's a bare drive that I mounted in a surplus hdd cage and connected to the pc via a sata-to-usb3 adapter. (Used for nightly backups.) The fan sits next to the drive and is connected to a motherboard fan header via a 4-wire extension cable that passes through an opening in the back of the pc case. The hard drive temperature is a S.M.A.R.T. attribute so it can be read by any software that can do S.M.A.R.T. usb pass-through. There's no special software utility supplied with the fan or the hard drive to control the external fan. The software I mentioned, FanControl by Rem0o, is freeware (donations appreciated) and is like the old SpeedFan software: it controls all the motherboard's fan headers according to user-created speed%-vs-temperature curves, given temperatures that the user can select from the available temperature sensors.
FanControl understands that fans have a minimum activation voltage. It has a setup function that detects each fan's activation percentage. When the control curve calls for a speed% less than the activation percentage, FanControl sets it to 0%, and if the BIOS is set to DC mode that results in 0 rpm.
FanControl isn't able to directly read the temperature of the external drive because the library that it uses, LibreHardwareMonitor, isn't (yet) capable of S.M.A.R.T. usb pass-through. But a feature recently added to FanControl causes it to treat files with extension ".sensor" as if they're temperature sensors, so I wrote a .bat script that periodically uses Smartmontools' smartctl.exe -- which can do usb pass-through -- to read the external drive's temperature, and the .bat writes the temperature to a .sensor file.