iMac HDD Thermal Sensor Bypass

From LogiWiki
Jump to navigation Jump to search

Problem

If you replace an OEM drive in a 2010 or 2011 iMac, the fans in the system will go crazy. These can be controlled by software like MacsFanControl or smcFanControl, but that's a poor workaround for an issue that can be addressed internally quite easily.


Context

There is no such thing as HDD thermal sensor on iMacs from 2010 or 2011 - instead it's simply a thermal trigger sent by the OEM-installed hard drives. If you connect HDD_OOB_TEMP_FILT to ground, the thermal trigger never occurs and the system will behave as it normally would with its OEM drive installed.


Solutions!

On 2009 iMacs, there is a separate two-wire cable that runs from the logic board to the hard drive and connects to J5400 on the logic board. The best solution is to simply snip the hard drive terminal off of the cable and strip and solder the two wires together. You could also simply add a jumper between the two pins of J5400 on the logic board itself. The former option will look like this:

On 2010-2011 iMacs you can either modify the drive you'll be installing -OR- the logic board itself.

YOU DO NOT NEED TO MODIFY BOTH ENDS, BUT NO PROBLEMS WILL BE CAUSED BY BOTH MODIFICATIONS BEING IN PLACE.


Modifying the Logic Board

Modifying the logic board is preferable as it is a more permanent fix that will remain in effect through potential future drive replacements, but it DOES requires access to the backside of the logic board, so if you don't have the board pulled already it may be preferable to simply modify the drive itself (see below). Chances are these won't be going through too many drive replacements in the future.

To modify the logic board and provide a permanent fix for the high fan issue, simply find J4511 where the SATA power cable for the hard drive connects to the logic board, and simply solder HDD_OOB_TEMP_FB on pin 7 to ground on pin 6 using either a solder blob or a 0 ohm resistor. A 0603 or 0402-sized resistor should work just fine.

J4511 PIN 6 y 7


Modifying the Drive

To modify the drive you'll be installing, simply get physical access to the leads of the SATA power port and tie pin 11 to either adjacent ground pin and you're set. Pin 1 is at the end of the plug with the key (the foot of the L shaped plug) and pin 15 is on the far end, so pin 11 is the fifth pin over from the end of the plug without the key. On most drives I've seen, the actual fins on the plug are longer for pins 10 and 12, and pin 11 is the shorter one between them. Pins 10 and 12 are both ground so either will work perfectly. Pictured below is a modification of a SATA power plug on a drive with pin 11 tied to pin 12 using a zero ohm 0603 resistor, which is a perfect fit for the SATA power pin pitch.

Pinouts for SATA power plug
Pinouts for SATA power plug

SATA Temp.png


After soldering, be sure that pin 11 and all of your ground pins have continuity to one another (so pins 4, 5, 6, 10, 11, and 12 should all have continuity), and that they do NOT have any connectivity to the 5V pins (7, 8, and 9) or the 12V pins (13, 14, and 15). See the SATA power pinout reference table as needed:

Technical Explanation

TempComparator.png

The above circuitry is common to all iMacs from 2010 and 2011. In it, U5400 is a LM393 comparator. The circuit produces a 1V reference voltage from PP12V_S0_SENSE through a voltage divider (R5400 & R5401) and delivers it to pin 2 of U5400. The circuit also produces a 1.5V pullup voltage from PP3V3_S0_SMC_LS through a voltage divider (R5402 & R5404). If the input voltage on pin 3 is LESS THAN pin 2's reference voltage, then U5400 shorts pin 1 to ground. If the input voltage on pin 3 is GREATER THAN pin 2, then U5400 does nothing, leaving the 3.3V pullup voltage on pin 1 provided by PP3V3_S0_SMC_LS unmodified.

Because pin 3 is pulled up to 1.5V by default and 1.5V is greater than the 1.0V reference voltage on pin 2, the comparator does nothing and the 3.3V pullup provided to pin 1 through R5405 is delivered to the system's SMC as a logical 1, which it takes as a sign that your hard drive is on fire and about to melt your iMac and burn down your house.

If the voltage on pin 3 is grounded out by an OEM drive's custom firmware or a clever modification to the circuitry ;) the voltage delivered to pin 3 will be less than the 1.0V reference voltage on pin 2 and U5400 will pull the 3.3V on pin 1 to ground, leaving the SMC to receive a logical 0, which is taken to mean that the hard drive is not, in fact, on fire.

What does that fancy 50$ OWC adapter do? It takes 12V or 5V (who cares, never had one, they're stupid) from the SATA cable, turns it into ~3V and uses a LM35 or something similar to output ~0.5V to pin 11 which will lead to the SMC receiving that same logical 0 it wants to see to feel safe.

Why do you see reports that SATA power Y-adapter cables solve the problem? Most Y cables simply short pin 11 to ground as that is acceptable for 99% of non-server hard drive. (Do not use such cables in servers unless you want to kill your PSU! :) )

fig.2: iMac after jumper-mod


Fun Facts!

  • Fun fact 1: Pin 11 on SATA power connectors is used on server hard drives to regulate "safe" startup by simply delaying motor spinup, thus reducing peak current draw on 12v PSU lines.
  • Fun fact 2: There are Apple plug modifiers for iMacs from 2009-2011 to accommodate SSD setups. On 2009 (and 2010?) it may be shorted, whereas on 2011 Apple Technician are required to remove the logic board and connect the plug to J4511 - the onboard HDD power socket. That means that by Apple's own design, if you upgrade to a SSD it is totally fine to disable the temperature trigger.
  • Fun fact 3: The weird fan behavior we see is actually a compatibility sacrifice, as per this note in the official schematics:


  • Fun fact 4: Companies like OWC or iFixit keep selling "thermal sensor" for Retina (2012+) iMacs as a part of their SSD upgrade kit. In retail it might cost up to 60$ for snakeoil wire which does... absolutely nothing because even though temp line is still present on Retina Logicboards, however this temp-trigger function is not really utilized by SMC so its absense wont change anything. Temp sensor bypass is only needed on 2009-2011 iMacs.
  • Fun fact 5: The information above is not really correct, and I apologize for that. As I figured out, there are, in fact, some iMac 2012 27" devices which require a communication line instead of the simple trigger like on older models. This communication line uses the same pin on the SATA connector. Most likely, it could be bypassed with a 3.3V pull-up on this line; however, it needs some more testing to confirm.