How Does Pi Deal with Overheating?
A reported issue with Raspberry Pi can be overheating, with a resulting loss of performance, when the board is exposed to high temperatures.All electrical devices are qualified to a specific operating temperature range at which the device will work effectively. The operating temperature depends on the specified function and application of the device; and ranges from a minimum to a maximum ambient temperature at which performance is optimised. Temperatures falling outside of the qualified ‘safe’ range will risk loss of functionality and in some cases total failure.
What is the maximum operating temperature of a Raspberry Pi?
To keep costs low, the Raspberry Pi is built with commercial grade chips which are qualified to different temperature ranges; the USB and Ethernet controller of the Pi 3+ (Microchip LAN7515) is specified by the manufacturers as being qualified from 0°C to 70°C.
The SoC (System on Chip – the integrated circuit that does the Pi’s processing, a Broadcom BCM2837B0) is qualified from -40°C to 85°C.
This effectively means that the maximum operating temperature of Raspberry Pi’s key components is 70oC and 85oC respectively. In considering the effect of overheating on a Raspberry Pi prototype, it is necessary to consider other sources of heat. In addition to the ambient temperature, all applications make demands on the Pi’s CPU, GPU, and hardware, and as this load increases so does the temperature of the board – particularly to the two key components – the USB and Ethernet controller, and the processor (SoC).
component operating temperature = ambient temperature + load induced temperature rise
In its typical configuration in stable ambient temperatures, desktop applications – such as internet browsers and office programs like word processors – increase the load induced temperature rise and consequently how hot the components will get.
In industrial environments, a Raspberry Pi prototype will often be required to function 24 hours a day regardless of the season. In contrast to the typical office environment with air conditioning, industrial environments can have higher ambient temperatures due to factors such as metal roofs that can act as radiators, proximity to industrial ovens and other hot machinery, etc. As Pi’s component temperature can reach, and even exceed, the upper level of its operating range whilst sitting on a desk in a temperature-controlled office, an industrial environment with its substantial increase in ambient temperature will inevitably deliver even higher temperatures to the board.
How does Raspberry Pi deal with high temperatures?
Raspberry Pi 3+ thermal map
Source: Gareth Halfacree from Bradford, UK [CC BY-SA (https://creativecommons.org/licenses/by-sa/2.0)]
It has been reported that Raspberry Pi can be vulnerable to overheating issues. The thermal map above shows a Raspberry Pi 3+ processor reaching towards 90oC. In several tests, the Pi’s SoC has been shown to exceed 100oC. In certain situations, the Pi can be pushed beyond its qualified operating temperature range, therefore its long-term performance is not guaranteed.
CPU Underclocking
CPU underclocking is the process of limiting the frequency at which pulses are used to synchronize a processor’s operations. In other words, to deliberately underclock CPU is to consciously reduce the speed of the processor. Underclocking reduces the load induced temperature rise as lower performance reduces power consumption requirements and therefore generates less heat inside a device.
For Raspberry Pi 3+, a ‘soft’ temperature limit of 60oC has been introduced. This means that even before reaching the hard limit at 85oC, the clock speed is reduced from 1.4GHz to lower frequencies, reducing the temperature rise to the components. This underclocking increases Pi’s system stability at high temperatures, aiming to ensure the operating temperature remains below the 80oC ‘safe’ level, but this comes at the expense of the processor’s performance. When a system deliberately underclocks by throttling the CPU to protect from hardware damage; the speed of the processor is slowed down, which inevitably limits the speed of operations.
Slower operations + Increased downtime = decreased profit margins
Increasing Pi’s CPU throttling threshold
By default, Pi’s soft limit is set at 60°C but it is possible to set the temperature at which CPU throttling occurs to a higher threshold value. By adding the line temp_soft_limit=70 to the /boot/config.txt file, automatic underclocking can be ‘postponed’ until the Pi reaches a higher temperature. Whilst Raspberry Pi’s CPU is generally capable of withstanding high temperatures for short bursts, operating at the upper end of the range poses significant risks to the longevity of the device.
Is the only way to avoid overheating issues with Pi to underclock or limit the load on the CPU?
Fortunately, any solution that decreases the effect of ambient temperature or load induced temperature rise can help keep the SoC under the soft limit without the need to limit the application load or throttle the speed of the processor, even in industrial applications.
Get vertical
By simply moving the Raspberry Pi into an upright orientation with the GPIO header at the bottom and the HDMI ports at the top, management of the ambient temperature will be improved.
Raspberry Pi 4 in upright position
Source: Raspberrypi.org/blog
Orienting the components vertically will have an immediate impact on cooling, and will slow subsequent heating down, as improved convection allows the surrounding air to draw heat away from the board more rapidly. Additionally, the available surface area for cooling is increased by moving the rear of the board away from heat-insulating surfaces.
Install a fan
Raspberry Pi with fan and case
Lorenzo Toscano [CC BY-SA (https://creativecommons.org/licenses/by-sa/4.0)]
If heat can be removed from the components quickly, then the load induced temperature rise will not have as dramatic an effect on performance. One option to dissipate heat from Pi’s components is to mount a cooling fan, powered through the GPIO. Compatible fans are widely available at a relatively low cost and can be positioned to deliver cooling to where it is needed most: the SoC.
Absorb and dissipate heat with a heat sink
Designed with a maximised surface area to best utilise contact with a cooling medium – such as air – heat sinks use thermal conduction to disperse heat from electronic devices. In developing the model 3+, the Raspberry Pi Foundation acknowledged the overheating issues and elected to fit a metal shield over the SoC to spread and dissipate heat.
Whilst tests indicate that the Raspberry Pi with the metal shield (Pi 3+) performs better than without (Pi 3), for industrial applications the addition of a designed for purpose heatsink can help combat high temperatures and dramatically reduce the temperature of the SoC.
Brainboxes BB-400 with custom aluminium heatsink
Brainboxes designed a custom aluminium heatsink for the BB-400 Industrial Edge Controller, that sits in direct contact with the Pi’s SoC. The surface area of the heatsink is maximised to most efficiently utilise thermal conduction and draw heat away from the processor. When situated in the industrialised cover, the Raspberry Pi is in a vertical orientation aligned with the vent openings and so also exploits heat convection to provide the highest degree of cooling possible. In addition, the LAN7515 is replaced with an industrial spec chip, making all of the BB-400’s components rated for industrial operation (from -25oC to +80oC.)
Requested vs Actual CPU
Tests performed at 21oC ambient, actual CPU recorded after sustained operation:
On the bottom x-axis is the CPU requirements being made by an application – for example, a monitoring application may need 75% CPU utilisation for sustained periods of time to perform its job. On the vertical y-axis is the amount of CPU performance that the Pi is able to deliver. In the absence of throttling, will track with the requested CPU performance on a 1:1 basis, given that CPU throttling occurs when the component temperature rises. However, throttling/ processor underclocking due to overheating means that the actual delivered CPU performance is less than the requested.
The first thing to note is at 21oC, a typical office temperature, the Raspberry Pi 3 could only deliver a maximum of 40% CPU performance for sustained periods of time. The Raspberry Pi 3+ offers a great improvement – due to its metallic lid it can offer up to 65% CPU for sustained periods of time.
The BB-400 with its custom heatsink can deliver 95% CPU performance for sustained periods.