MacBook CPU constantly throttled to 0.8GHZ after iFixit battery swap
I have recently gotten my hands on a Mid 2015 15” MBP that was running slow, hoping I could get it fixed back up for personal use.
The previous owner had apparently swapped the old battery out with a new iFixit replacement one and then immediately sold the device as it has been running slow ever since. Using IntelPowerGadget on OSX or Task-Manager on Windows shows the CPU constantly being clocked down to 0.8ghz. This is definitely not thermal throttling as the chipset never exceeds 50C, there are also no faulty sensors when checking with HWMonitor.
The original battery had been discarded so I cannot check whether this issue is actually caused by the battery at all, however inspecting the battery visually and using CoconutBattery I can see that it is not an OEM battery since there is no battery serial number being displayed. Running the hardware diagnosis (holding the “D” key at startup) reveals that the battery might have problems but it says I should still be able to use the device without any noticable changes, showing the error code PPT004.
I then went ahead and bought this used original A1398 battery, thinking it was salvaged from another Macbook, however it ended up being some sort of refurbished third party battery causing the same issues again so I will have to return it anyway. The values shown on CoconutBattery are similar for both batteries (both less than 10 charge cycles, etc.) so I have just attached an image of the iFixit one below.
The machine itself is in mint condition, I have made sure to look for any water damage on the logic board but it seems perfectly clean, after all the device can be used flawlessly with the exception of it running at 1/4 the supposed speed.
I did come across similar threads however they were usually regarding older macbooks or were only having this issue intermittently when plugging in an external monitor, etc.
Others proposed just deleting the IOPlatformFamily.kext from OSX to get rid of the Intel Speedstepping feature, however this method is somewhat outdated and seems like a stupid idea anyway. A similar solution was being shared here, however that is again just circumventing the issue instead of fixing it, and even then Im not sure that would at all.
Essentially I just want to know two things:
- Is this throttling behaviour really linked to a 3rd party battery instead of a logic board fault, and if so, why would anyone buy or manufacture such batteries if they make the device useless? If this is the case there should have been plenty of others with this exact issue, yet I have only found a few threads discussing a similar issue
- With the iFixit as well as the other “genuine” battery not working as intended, where would I even begin looking for an actual OEM battery within Europe without having to get it replaced at an Apple store?
I never had any issues replacing the battery on a 2012 MBP, so Its fair to say this behaviour could just be another one of Apples shenanigans to get peoples devices fixed at Apple only and nowhere else, but I just couldnt find a definitive answer especially since I dont have the original battery to compare against.
I wouldn’t know where to ask otherwise, so any reply would be very appreciated!
I have tried using ThrottleStop on BootCamp Windows according to this thread, this does however also not work. Deleting the IOPlatformPluginFamily.kext as mentioned in the same thread is not an option since it does not even exist on my OS X Catalina installation.
Final Update (Found a solution):
So it turned out not to be a battery related issue . The person I bought the device from stated the issue appeared after swapping it for an iFixit replacement battery, but after buying yet another OEM battery the problem still persisted.
Instead, the issue was related to the CPU current sensing circuitry. I didnt manage to find accurate boardview and schematics for my specific model (820-00138) so I had to use this XinZhiZao (similar to ZXW tool) maintenance program which had the correct board layout to find the problem.
The issue was caused by the "SMC_CPU_IMON_ISENSE" line which is produced by the U7200 power management IC. This chip is responsible for measuring the CPU power usage among other things, and sends the signal through R5530 directly to the SMC. This line was permanently stuck at 1.8V which made the SMC read a high CPU power draw, so it throttled the CPU to 0.8ghz clock for safety reasons.
I ended up running a jumper (blue) from this line to ground, thus forcing the line to 0V.
This way the system now reads CPU current as 0W and I can finally use the machine with its intended performance. No lags, everything finally runs smoothly. It also no longer gets stuck in sleep mode after closing the lid.
Obviously this fix is only a workaround as I still dont know what was pulling the line to 1.8V, so I assume it was either the SMC or U7200 which shorted the line to a neighboring power line somewhere. I didnt want to risk ruining the SMC by reballing it so shorting the pad for C5530 to ground seemed easier to do. However this means there is a constant 1.8V short to ground so I might want to replace the jumper wire with a resistor to avoid losing much battery power being wasted into the short in the future.
In conclusion, the built-in Apple Diagnostics (Holding down Cmd + D on startup) did find an issue, however it was not related to the battery but rather the SMC or U7200. My assumption of having to use a OEM battery was wrong, as it also now works just fine with the replacement iFixit battery. I used HWmonitor on OSX to check the “CPU Package Total” readings, which were at 100 watts and above. After the fix it is reading -W, so the remaining battery time estimations might be inaccurate, but it technicallly isnt necessary.
Im not exactly sure how a simple battery swap could have caused this issue, but since I didnt find much information regarding Macbooks being throttled to 800mhz CPU performance, make sure to check all temperature and current readings using some sort of monitoring tool like mentioned above. A faulty temperature sensor might possibly cause a similar issue.
Hope this helps