heatup
Warm up a cold Apple Silicon Mac and log its temperatures and fan speeds. Built after it cleared a cold-weather fan noise on my M2 Max.
The story
My MacBook Pro started making a crackling, buzzing noise after sitting in a cold, damp room. Apple support couldn't reproduce it. Running a few minutes of full CPU + GPU load, which warms the whole machine and spins the fans up to ~3,500 rpm, made the noise go away every time.
I don't know exactly why. My best guesses are fan bearings that get stiff when cold, or light condensation that evaporates once warm. This is one machine's experience, not a tested fix.
What it does
Loads every CPU core and the GPU, samples die temperature and fan RPM every few seconds, writes a CSV, and prints a report covering baseline, peak, fan response and cooldown. No sudo, nothing to install beyond Apple's command-line tools.
git clone https://github.com/elephantclock/heatup.git && cd heatup clang -O3 -march=native cpuburn.c -o cpuburn swiftc -O gpuburn.swift -o gpuburn swiftc -O temps.swift -o temps -framework IOKit -framework CoreFoundation clang -O2 fans.c -o fans -framework IOKit ./heatup.sh 300 # 5 minutes. The argument is seconds, not minutes.
Reference: M2 Max
From 13 runs, consistent to within ~1.3 °C. Other chips will differ, so record your own baseline when the machine is healthy.
Compatibility
| Mac | Status |
|---|---|
| M2 Max MacBook Pro | ✅ Built and tested |
| Other M1–M4 Macs with fans | ⚠️ Should work, untested |
| MacBook Air | ⚠️ No fans, so temperature logging only |
| Intel Macs | ❌ Not supported |
Tried it on another model? Open an issue
with your ./temps output.