BB-440 Industrial Edge Controller powered by Raspberry Pi
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 for a specific operating temperature range where 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 extreme 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).
Ambient Temperature + Load Induced Temperature Rise = Component Operating Temperature
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 temperatures can reach, and even exceed, the upper level of its operating range 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 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.
Over temperature warning (80oC - 85oC)
Over temperature warning (over 85oC)
CPU underclocking is the process of limiting the frequency at which pulses 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 60oC has been introduced. This means that before reaching the hard limit at 85oC, the clock speed will be 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 timescales, continuous operation at the upper end of the range does pose some risk 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.
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 an upright position
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 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
Adding a low cost heatsink to the SOC and blowing air across the board (with your fan) will provide enough cooling for most applications, even ones that heavily load the processor.
For an industrial prototype, however, installing a fan may not be an option. 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 (See Chapter 1 – How to Connect a RPi to Industrial Sensors), 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 BB-400 with custom aluminium heatsink
Brainboxes designed a custom aluminium heatsink for the BB-400 Industrial Edge Controller (181-7467) , 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 Utilisation
Tests performed at 21oC ambient, actual CPU utilisation 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, 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 (181-7467) 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.
CommentsAdd a comment
A minor technical detail - unless the core voltage is reduced at lower frequencies, the speed of transitions is usually not reduced by operating at a lower frequency. Rather, the reduction is the number of transitions per unit time. The highest currents occur during the transitions. Slow transitions frequently cause increased power dissipation, as the transistors spend more time in the linear region. On some processors, lower speeds may allow operation at a lower CPU core voltage, which also reduces power. I haven't checked if the Pi's processor falls in that category.
@BradLevy Yes you are absolutely right. To have a much bigger impact on the amount of heat generation, the core voltage would have to be reduced in addition to the clock frequency. I believe the raspberry pi, as it currently stands, reduces the core voltage when the Broadcom SoC starts to throttle it’s clock frequency to lower values. There is a useful command available which allows the core voltage to be monitored. The command ‘/opt/vc/bin/vcgencmd measure_volts core’ can allow a user to see what’s happening to the core volts when throttling starts.
[Comment was deleted]