Upgrading macOS magically cured my old MacBook Pro’s ailments

In 2016 I started a job at a new company and was supplied with a new “Mid 2015″, 13” MacBook Pro. It worked normally for the first week or two, then started developing strange issues. Sometimes when I’d stress it with a heavy workload things would act weird: stuttering audio and mouse, wifi that would shut itself off and come back on after a few seconds.

These problems slowly become more frequent over the next couple of weeks. Eventually the wifi started turning off but not coming back on on its own. The option to enable it would be greyed out in the settings, and grepping the system logs for “Airport” showed lots of messages with the words “dead chip”. Restarting the machine would bring the wifi back to life, but eventually it stopped starting up at all without various keyboard incantations to reset things.

At that point it had become a daily issue, so I talked to my boss and went out to the Apple Store down the street. They were great–since I’d had the computer less than a month they just gave me a new one on the stop, no questions asked. It was even an upgrade from the one I’d had, with a bigger SSD and the top end i7 chip!

The new machine worked fine, but I noticed that sometimes the audio stuttering and wifi dropouts from before would still happen when the machine was really taxed. It was infrequent and the wifi always came back on on its own after a few seconds so I didn’t bother addressing it, I figured it was overheating and just made a point to keep it well ventilated when pushing it hard.

Fast forward to late 2019: I decided to leave my company to work on some of my own projects. I needed a computer and offered to buy it from the company–the overheating episodes were very rare, and the computer was in otherwise perfect condition. On my last day I brought a check to the office and factory reset it before leaving. On to new and exciting things!

The machine worked well for me until around March 2020. Locked down in my small apartment I found myself suddenly taking Zoom calls and playing video games, neither of which I’d done much of previously and which, I discovered, disagreed greatly with the laptop. Sharing my screen while running a virtual background on Zoom was a guaranteed way to disconnect the wifi in seconds. Video games were similar. Perhaps heat from GPU was the culprit?

The timing of this discovery was particularly frustrating, as the rush to work from home had sent millions of other people out to buy just about every laptop available, so I resorted to home remedies. I installed an app to manually control the fan, so I could preemptively blast it before things got too hot. That worked reasonably well, but I still ran into issues at the most inopportune moments, so I tried reapplying the thermal paste between the CPU and its heatsink. That made a big difference! Clearly at its root this was a heat issue. I even went as far as to add some thermal pads to bridge the heat sink diffuser to the aluminum case to pull more heat out, which further reduced the frequency of the overheating.

Even so, the issue still cropped up sometimes. I also discovered that Bluetooth and USB headsets were effectively unusable with the laptop, as they’d stutter and disconnect well before the wifi and built-in audio problems would start. I ran various experiments, including installing a kernel extension to disable Turbo Boost on the CPU, all while graphing the internal temperature sensors and logging the times where things stopped working. There was nothing interesting to be learned. Even though the thermal fixes I’d made had tangibly improved things, the temperatures inside seemed to be strangely uncorrelated with the occurrences of the problem.

Later in 2020–frustrated with the general direction of MacOS–I decided to build myself a powerful desktop to run Linux. It was a fun project and ran beautifully. I found myself using the laptop far less, and, when I did use it, I had fewer apps open, so the overheating once again became largely a non-issue.

I’ve been away from home a significant portion of the last few months, and have been using the laptop again, mostly just for video calls and as a thin client to my desktop. The problems are still there, but still rare. Not having used the computer much recently (and being annoyed by the increasing iOS-ification of MacOS), I hadn’t updated the operating system in a long time. After much nagging, this week I consented to upgrade from Catalina to Monterey…and the issue is completely gone! Try as I might, simultaneously running 3D games, Zoom, and CPU benchmarks, I can’t get the wifi to drop out. Bluetooth headphones work fine. The audio never stutters.

A six-year mystery I swore was 100% hardware related, solved by a software update.

A blog as a rubber duck

I’ve always liked the concept of rubber duck debugging. It makes intuitive sense to me that talking through a problem is a great way to help the puzzle pieces fall into place in your head, or to get out of a rut in your pattern of thinking.

While I’ve never been able to get past the awkwardness of actually talking to a rubber duck sitting on my desk, it occurred to me that writing in a blog might be a good way to roll thoughts around in my head, and a good way to share things if I come up with something interesting. So here we go.

Perhaps troubled by the idea that I won’t come up with anything interesting to write about, I found myself making a custom theme for the blog. My goal was to make it as simple as possible, as I have a tendency, when starting new projects, to find something that must be done before commencing with the “real” work, then I’ll spend days working through this artificially inflated first step, and lose steam on the project as a whole.

I’ve done this plenty of times with new ideas I have for websites or apps: I’ll get a great idea I want to hack together, then spend the whole weekend fiddling about with the server configuration or wasting time setting up an unnecessarily complex automated toolchain. Then some time goes by, picking up where I left off seems daunting and the idea languishes on the back burner, making me feel guilty for ignoring it. Come to think of it, I may have just found a topic for another post…