- How does Pi deal with overheating?
- What is the maximum operating temperature of a Raspberry Pi?
- How does Raspberry Pi deal with high temperatures?
- CPU Underclocking
- Increasing Pi’s CPU throttling threshold
- Are there other ways to avoid overheating?
- Get vertical
- Install a fan
- Sink Heat
- Requested vs Actual CPU
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 70°C and 85°C 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 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?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 some 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 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 slower transistor switching reduces power consumption requirements and therefore generates less heat inside a device.For Raspberry Pi 3+, a ‘soft’ temperature limit of 60°C has been introduced. This means that even before reaching the hard limit at 85°C, 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 80°C ‘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 timescales, continuous operation at the upper end of the range does pose some risk to the longevity of the device.
Are there other ways to avoid overheating?
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.
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.
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
If heat can be removed from the components quickly, then the load induced temperature rise will not have 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. For an industrial prototype, however, installing a fan may not be the best solution. Moving parts like fans require maintenance in industrial environments to ensure they don’t get clogged with dust. Also, assuming the Pi will be connected to other I/O and possibly extra circuitry in the form of one or more breadboards, the addition of another external element will create a bulky prototype not suitable for deployment straight to the factory floor.
Designed with a maximised surface area to improve contact with a cooling medium – such as air – heat sinks use convection to disperse heat from electronic devices even when no airflow is present. In developing the model 3+, the Raspberry Pi Foundation elected to fit a metal shield over the SoC to improve convection cooling and dissipate more heat than the model 3.
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 purpose-designed heatsink can help combat high temperatures and dramatically reduce the temperature of the SoC.
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
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, actual performance will track the requested CPU performance on a 1:1 basis, given that CPU throttling only occurs when the component temperature rises. However, processor underclocking due to overheating means that the actual delivered CPU performance can be less than the requested.The first thing to note is at 21oC, a typical office temperature, the Raspberry Pi 3 without cooling could 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 – ideal to utilise the wonders of Raspberry Pi outside of the environments it was designed for, and making it suitable in industrial settings.