This Does Not Compute

Technology, gaming, music and things that just don't compute

2011 iMac Hard Drive Temp Sensor Explained

cbreeze

Apple has always pushed the envelope when it comes to hardware design, especially when it comes to the level of noise that its computers produce. There’s been at least a few models that have even shipped without internal fans just to make the machine as quiet as possible (often to the detriment of reliability). Starting with the original aluminum iMacs, Apple began monitoring the temperature of the internal hard drive so that the system’s internal fan could be optimized. The level of complexity with which this system operates has increased with every model, and reached its ultimate with the Mid-2011 iMacs. Mass confusion and anger spread across the Internet once an inkling of what was going on was discovered, but so far I’ve seen no single, definitive explanation of exactly how the system works. I recently picked up the Samsung SSD seen above and decided that there was no better time to tackle this issue, since it would be one I’d have to deal with on my own iMac. Read on.

How iMacs Measure Hard Drive Temperatures

First, an explanation of Apple’s overall temperature management system in iMacs. Multiple temperature (thermal) sensors inside the machine measure the heat output by such things as the CPU, video card, optical drive and hard drive. Built into the motherboard is a baseband management controller (BMC), which is responsible for monitoring all of these thermal sensor readings and cause the one or more internal fans to spin faster or slower as appropriate. (Fan control isn’t the responsibility of the operating system; it’s a low-level function of the motherboard itself, but the OS does have the ability to interface with it — this is how applications such as smcFanControl are able to work.)

The original aluminum iMacs read the temperature of the hard drive through a simple stick-on thermistor. Want to replace your hard drive? No problem, just peel the thermistor off of the old one and install it on the new one, and your iMac will be none the wiser. I did this on my own 20″ 2007 iMac with no ill effects.

The next generation of iMac, the Late 2009 model, leveraged the temperature sensor that all manufacturers build into their drives (as part of the SMART diagnostic suite) instead of relying on an external sensor. The iMac read this value through a cable connected to the drive’s diagnostic serial connector, located next to the SATA connector. Each manufacturer uses a different style of diagnostic connector, so a vendor-specific cable is installed in these iMacs to match with the drive to be installed — if a Western Digital drive was going to be installed, a cable with a WD connector would also be installed, for example. Apple multi-sources its components, and so three such temperature cables exist, for use with WD, Seagate and Hitachi drives. This means you can’t switch drive brands unless you also get your hands on the matching cable, and worse, you can’t connect any of the temperature cables to an SSD since they lack diagnostic connectors.

It’s the Mid-2011 model that really brought all of this to the surface for iMac upgraders. It was no big deal on the 2009 models to switch drives, for as long as you stayed with the same brand of drive, you could plug the temperature cable into the new drive and be good to go. With the 2011 model, though, Apple eliminated the separate temperature cable. What did they do instead? They made the drives proprietary.

Desktop SATA drives only require four wires for power — 3.3 volts, 5 volts, 12 volts, and ground. But look at any drive and you’ll see 15 pins on its power connector. Some of these are redundant (pins 1 through 3 are all for 3.3V, for example), but some serve special functions. Pin 11 is normally used to blink a connected LED during disk activity. But Apple got crafty and repurposed this pin — it cut a deal with Seagate and Western Digital to write custom firmware that changed the function of this pin, only for the drives shipped to Apple specifically for use in iMacs. What did they change the function of this pin to? Take a guess.

So on the 2011 iMacs, the drive temperature is read through the SATA power connector, using custom firmware flashed to the drive. Swap the drive with one that doesn’t have this firmware, and the iMac won’t get the temperature information it wants.

So what? you may be asking. Who cares if the system can’t read the drive temperature? Here’s why people care: When the system can’t read the temperature, it goes into failsafe mode and ramps the hard drive fan all the way up. And let me tell you, that sucker is very annoying when maxed out.

Why even bother with getting the drive temperature this way? Why not just get the temperature data through SMART, which the computer can get through the drive’s data connection, no special firmware required? According to this article on Hardmac, the reason is because SMART checks cause the drive to briefly halt while the check is performed — not something that would be noticeable if performed, say, once an hour, but enough to degrade disk performance if checked every few seconds like how the BMC wants. Thus, Apple moved to an “out-of-band” solution.

There’s also evidence that Apple uses this method in the newest Late 2012 iMacs, though the reports I’ve read suggest that the fan doesn’t go ape in these models if the system can’t read the drive temperature. Apple Hardware Test still fails, but the lone fan in those models apparently isn’t swayed (or swayed much) by the hard drive’s temperature.

So What’s a Geek to Do?

That’s exactly what I wanted to know. When I got my 2011 iMac, it came with a 1TB drive. Within 6 months it was about 60% full, and after 9 months it was 80% full (and OS X apparently doesn’t perform so hot when drives get that full). I knew I’d want to upgrade to something larger, but didn’t want to deal with the noisy fan. A couple of software patches had been written to manually override the fan speed, but this had two drawbacks: 1, it doesn’t allow real-time fan adjustment (if your drive gets hot, the fan doesn’t speed up as it should), and 2, it could be rendered useless at any point by an OS X update that inadvertently (or purposefully) breaks it. I wanted a hardware solution.

The official option is to buy a larger drive from Apple as a service part; these would come with the necessary firmware to make the BMC happy, but also have a couple drawbacks of their own: 1, they’re only available in capacities of up to 2TB (the jury’s out on whether a 3TB drive from the 2012 iMacs will work in a 2011 model), and 2, Apple’s service part pricing is insane.

Then I stumbled across a neat fix that supposedly will work on machines all the way back to 2009. A German company named Gravis (not the joystick people) developed the cBreeze, a small PCB with a thermistor that will read the surface temp of whatever drive you stick it to, and report that to the BMC as if it was the drive itself. It uses an ATtiny25 to emulate the signaling that the custom firmware on an OEM drive would use; just splice it inline with the original drive power connector (or separate temperature cable). (Side note: Read the comment towards the bottom starting with “GRAVIS offers Cbreeze only in Germany…” and note who they say their USA partner is. It’s interesting that their USA partner has shied away from admitting that the identical-looking temp sensor solution it sells is the cBreeze — find the comment starting with “You just used the cBreeze”. I’m not linking to or naming said USA partner as Internet pissing contests are old hat.)

There’s a company in the US that offers an upgrade service which entails shipping your iMac to them so they can swap the drive and install a cBreeze. If you have no technical skill at all or have money to burn, this might be a good option for some. I, on the other hand, beat work on computers for a living, and opening up my still-under-warranty (gasp!) iMac isn’t something I’m afraid of. How are the adventurous types, like me, supposed to get their hands on a cBreeze? Gravis has said that they’ll only sell the cBreeze itself to those who have Apple Developer memberships, so for the general public you might want to check out this thread on MacRumors.

One more option exists for owners of 2011 models who aren’t concerned with having the fan ramp up with drive temperature. As a build-to-order option, one could order an iMac with only an SSD and no mechanical hard drive. The SSD connects to a separate SATA connector on the motherboard, thus leaving the HDD data and power connectors unpopulated. How does Apple get around the fan issue with these machines? Easy, they cheat:

chandd

It’s just a plug that goes into the HDD power connector that shorts pins 2 and 7. Apparently tying the temperature-sense pin in the connector to ground signals to the BMC to just leave the fan at its base speed. Careful modification of the existing hard drive power cable should allow one to perform this hack while installing any drive of his or her choice — albeit while running the risk of having the drive overheat.

Advertisements

Comments are closed.

%d bloggers like this: