Physics-Based Thermal Prediction for Mobile Hardware – 0.82°C MAE
Original: Show HN: Physics-based thermal prediction for mobile hardware – 0.82°C MAE
Mood
informative
Sentiment
positive
Category
startup_launch
Key topics
So I built one.
I studied physics and realized the cores in my phone were perfect candidates for modeling with Newton's law of cooling. Heat is continuous and temperature isn't an isolated event. By measuring thermal time constants per zone, you can predict temperatures 30 seconds ahead and defer work before hitting throttle thresholds.
Samsung throttles 50% at 42°C battery temp. That throttling causes performance problems, which can generate more heat, and the spiral gets out of hand quickly.
My solution is simple: never reach 42°C.
Standard Newton's law: T(t) = T_amb + (T₀ - T_amb)·exp(-t/τ)
Measured thermal constants per zone from step response testing:
- Battery: τ=210s, thermal mass 75 J/K (slow—lags behind everything) - Chassis: τ=100s, thermal mass 40 J/K (vapor chamber) - GPU: τ=30s, thermal mass 40 J/K - CPU_LITTLE: τ=35s, thermal mass 40 J/K - CPU_BIG: τ=25s, thermal mass 20 J/K (fast response, first to spike)
Battery's 210s time constant is why it matters most. CPUs spike and recover. Battery accumulates.
197,178 predictions over 8 hours. I put it through a hard test.
Started with idle load and normal operations. Then a trek outside into the cold. Phone got cold-soaked down to 1.8°C battery temp, 3.8°C on CPU. Then back inside. Then a 10-minute stress test that pushed CPU_BIG to 83.7°C. Battery climbed to 39.9°C and the system shut the bot off at 41.5°C.
40°C ambient swing. 80°C CPU range. 38°C battery range. Multiple regime changes.
- All data: 197,178 predictions, 1.22°C MAE, 85.9% within 2°C - Steady-state: 175,065 predictions (88.8%), 0.82°C MAE, 91.2% within 2°C - Transient: 22,113 predictions (11.2%), 4.40°C MAE
Median error: 0.40°C. Half of all predictions within half a degree.
- Battery: 0.37°C MAE, -0.04°C bias, 93.3% within 1°C - Chassis: 0.90°C MAE, -0.17°C bias, 71.2% within 1°C - GPU: 1.41°C MAE, +0.38°C bias, 60.4% within 1°C - Modem: 1.44°C MAE, +0.35°C bias, 59.8% within 1°C - CPU_BIG: 1.94°C MAE, +0.36°C bias, 57.8% within 1°C - CPU_LITTLE: 2.50°C MAE, +0.27°C bias, 53.7% within 1°C
Battery at 0.37°C MAE is what matters. That's the throttle trigger. CPUs are noisier but they're not driving the throttle decision.
Extreme Cold (Ambient < 5°C)
9,555 predictions with ambient below 5°C. This is where I expected the model to break.
- Battery: 0.96°C MAE, -0.59°C bias - Chassis: 1.62°C MAE, -1.08°C bias - GPU: 2.73°C MAE, -1.54°C bias - CPU_BIG: 3.85°C MAE, -2.01°C bias - CPU_LITTLE: 4.88°C MAE, -2.87°C bias
Stress Test (CPU > 70°C)
514 predictions with CPU_BIG above 70°C. 256 above 80°C.
- CPU_BIG >70°C: 514 predictions, 4.59°C MAE, +3.31°C bias - CPU_BIG >80°C: 256 predictions, 3.93°C MAE, +1.65°C bias
Positive bias—over-predicting heat at high temps. That's the safe direction. Model expects worse than reality because component throttling kicks in and limits actual temperature rise.
Velocity Analysis
- Cooling (<-0.1°C/s): 10,927 predictions, 2.24°C MAE - Stable (±0.1°C/s): 175,065 predictions, 0.82°C MAE - Warming (0.1-0.5°C/s): 8,644 predictions, 4.48°C MAE - Rapid (>0.5°C/s): 2,542 predictions, 13.40°C MAE
Stable velocity: model works. Rapid heating: model breaks. This is expected—physics can't predict workload discontinuities.
893 predictions had velocity >1°C/s. MAE was 19.43°C with +17.47°C bias. The model sees high velocity and extrapolates aggressively, but bursts are transient, throttling kicks in, actual rise is less than linear extrapolation.
The tail is transients. 1.67% of predictions (3,292) had >10°C error. All correlated with rapid velocity.
No ML. Non-rooted so you can keep your warranty.
Thermal Predictor: Physics-based thermal prediction for mobile hardware with 0.82°C MAE
Snapshot generated from the HN discussion
Discussion Activity
No activity data yet
We're still syncing comments from Hacker News.
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
Discussion hasn't started yet.
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.