Earlier today Gareth Halfacree, author of the Raspberry Pi User Guide, posted some really interesting thermal images of the new Raspberry Pi 3 board on Reddit. However worryingly, not only was Gareth measuring temperatures in excess of 100°C (212°F) under load for the BCM2837, but also measuring an offset of a full 17°C between his own measurements and the readings generated by the internal temperature sensor on the chip.
“The new BCM2837 system-on-chip gets far, far hotter than its predecessors. This image was taken using a calibrated Flir thermal camera while the Pi 3 had been at 100% CPU load – but no GPU load – for five minutes, and registered nearly 100°C (212°F). I confirmed the temperature with a K-type contact probe, and also by poking the chip. Don’t poke the chip. It hurts.” — Gareth Halfacree
While the BCM2837 is tested to 125°C, operating continuously at 100°C is out of specification for the chip. The official operating temperature limit is 85°C, and as a result the Raspberry Pi should start to thermally throttle performance around 82°C.
In other words, this is worrying news. If true, it means that adding a heat sink to all of your Raspberry Pi 3 boards is a necessary measure to avoid the “Halt and Catch Fire” problem. Or burnt fingers.
Testing two Raspberry Pi 3 boards — the first I received from the Foundation in the run up to Monday’s launch and the second a retail board I picked up through normal channels — I went ahead and tried to replicate Gareth’s results.
Following his methodology I used a thermal camera, although as my thermal camera really isn’t as good as his thermal camera, I also checked my temperature measurements both with an IR thermometer, and a contact probe thermometer.
I couldn’t replicate the result, instead I found a maximum operating temperature of just over 62°C for the BCM2837 at full and sustained load. I also saw a direct correlation between the temperature reported by the Raspberry Pi 3’s temperature sensor and the temperature reported by my IR thermometer aimed at the SoC — at least to within a couple of degrees.
Crossing my fingers I briefly poked the chip. It’s certainly not 100°C, and after sustained contact my readings of around 60°C seem reasonable. So that’d be “ouch” rather than “argh.” The obvious guess is one of us has either been lucky, or unlucky, in the silicon lottery with the boards we’d received. Because while sensors can be miscalibrated, the finger test is hard to fool.
“I’m in touch with the Foundation, and they’ve been running some tests. Using the same benchmark, their test Pi 3 has hit 83°C external temperature as measured by a contact probe in the upper corner of the SoC — lower than mine but higher than yours — but started to correctly throttle itself and bounce between 77°C and 83°C until the benchmark was killed.
So, we’ve got my Pi 3s which hit 100°C and don’t throttle; your Pi 3s which hit 60°C and don’t need to throttle; and the test Pi 3 at the Foundation, which hits 83°C and correctly throttles.” — Gareth Halfacree
Which leaves us with a puzzle. After talking with Gareth, I think both our methodologies are sound. Neither of us seems to be doing anything crazy here. Anyone else seeing this problem with their new Raspberry Pi 3?
Updated (7 March 2016): I’ve now rechecked my measurements while monitoring the clock speed and can confirm that the lower operating temperatures I’m seeing are due to under voltage protection throttling the CPU down to 600MHz. After switching out power supplies I’m seeing similar temperature throttling results to the Foundation. I’d therefore recommend anyone using the new Raspberry Pi 3 in situations where they’re expecting the board to be continuously under heavy load, or if they’re installing it in an enclosure, to add a small passive heatsink to regulate the temperature.