As per the title, what are the maximum and minimum operational temperature ratings of the Pi before it stops reliably working? Could this also depend on the SD card in use?
6 Answers
From the RPi FAQ:
What is the usable temperature range?
The Raspberry Pi is built from commercial chips which are qualified to different temperature ranges; the LAN9512 is specified by the manufacturers being qualified from 0°C to 70°C, while the AP is qualified from -40°C to 85°C. You may well find that the board will work outside those temperatures, but we’re not qualifying the board itself to these extremes.

- 22,538
- 11
- 90
- 139
-
9
-
14This is the Application Processor (Broadcom BCM2835), CPU of the board. – bayindirh Jun 15 '13 at 08:32
-
3And it stands to reason that as the device is powered, the heat produced could factor.. IE: Starting it at -40 deg C may fail, but if it's been left running, the components should be warmer than ambient and thus not at -40. The environment should factor. -40, here I come, I'm parking some Pis outside in Canada. :) – James T Snell Oct 31 '14 at 04:41
-
3@Doc Funny you should mention that eh. ;) I've parked one outdoors (within tupperwear, air/water tight, but no insulation) at -20 C for a few hours, and did not notice the actual core temp (from the built-in sensor) drop below + 20 C. – goldilocks Jul 09 '16 at 20:20
-
I have them (I call it a Piduino) running outside in an insulated control enclosure to control solar panels which follow the sun, and it gets way over 100 F in there, yet have never noticed any throttling. Not to say it isn't happening, but it doesn't seem to affect performance. – SDsolar Apr 05 '18 at 01:53
-
@SDsolar 100F is about 38C, far below the heat certified, so that is consistent with the other poster. – Christophe May 02 '18 at 09:38
-
2is there any way to detect the
LAN chip
temp, since its dead temp is much lower thanSoc Chip
, I believe the/opt/vc/bin/vcgencmd measure_temp
command can only reportSoc Chip
temp, correct? – Shawn Jul 01 '18 at 01:59
It'll go way down to < -70°C according to the article: Raspberry Pi proven to be stable when submerged in liquid nitrogen.
UPDATE 29JUN2020: The above link is nolonger working. A similar article can be found here.
-
5Brilliant article that one is! :D Just need a steady supply of liquid nitrogen now :) – Piotr Kula Jan 10 '17 at 08:06
-
3
-
-
-
1Keep in mind this does not mean that all Pis will work at these temperatures. Different models of Pi and even different individual units of the same type may fail at these temperatures. – Elliot Alderson Jul 03 '21 at 14:10
My experience with Raspberry Pi 3: The SoC will start to throttle down at approximately 80 degrees Celsius, and will, in my experience, never allow itself to be warmer than 85 degrees Celsius. This is of course the core temperature - the temperature outside the chip will have to be much lower to facilitate efficient heat exchange.
While you (probably, don't take my word for it) cannot destroy the SoC by leaving it uncooled, the performance will be severely impacted. (Same goes for the power supply, BTW). In our lab, we started noticing frame drops and significant degradation of video processing capability, only to find out that 1) it got too hot without the heatsink 2) the voltage dropped below 4.6V due to 5V supply wires that were too long.
In any kind of extreme scenario, it is most likely that your processing power will decrease first, and other problems will appear much later, if ever. This can lead huge waste of time when trying to hunt down software bugs ("why is my program suddenly running so slowly?!?"), only to discover that the wires are too thin, or the heat sink is too small, so beware!
Regarding the low boundary, you should check all the components. I recently booted Raspi3 at -12C cold and the camera did not work (first time in weeks, but other times the temperatures over night were not so low). After 15 minutes of waiting I rebooted it and it started working normally.
Also, I think that the networking/USB chip on the board itself is not rated below 0 C. If you need such extremes, I suggest waiting for Compute Module 3, which will have range -20 to 80C, simply by not providing the problematic chip at all :)

- 316
- 2
- 5
I see the OP's question has been answered authoritatively, but here are my 2 cents worth of experience:
With the basic clear plastic no-fan enclosure and heat sinks the ARM AP runs at about 50C (122F), and my Pi3 works fine. When I take off the top part of the plastic shell the temperature drops to 47-48.
So my conclusion is that the enclosure is not causing any measurable harm in this regard.
The command to return the CPU temperature in stdout is vcgencmd measure_temp
I see in comments that uhoh
mentions that if you want to use the temperature in a Python program, the command os.popen('vgencmd measure_temp').read()
will return the textual version of the temperature number.
------------------------------------------------------
Here is the way I use Popen to get the temperature into an integer variable:
from subprocess import Popen, PIPE
.
.
.
cmd = 'vgencmd measure_temp'
p = Popen(cmd,stdout=PIPE, stderr=PIPE, shell=True)
stdout, stderr = p.communicate()
CPUtemp = int(stdout)
.
.
etc
The above is taken from this code:
Ping a website and have an output turn on if online/offline?
This post shows how to use fping
in a few different ways even though the results come in as stderr
Also includes a cradle-to-grave example which makes use of the data and plots it live as it comes in. It shows Python and gnuplot. We don't see enough of these whole-system examples here.

- 2,348
- 8
- 25
- 43
-
1just make sure there is good air movement in environments with very high temps to begin with :) – stevieb Sep 16 '16 at 18:28
-
Excellent point. My room temperature is 75F which is just under 24C, and the door is open to outside so there is good air flow. – SDsolar Sep 16 '16 at 18:48
-
Why would you have Pi3 with "light load"? Then you may use Pi 1 and have no problems whatsoever. – xmp125a Jan 10 '17 at 12:51
-
I changed my mind about the enclosures with the fans. To control the noise I run the fan at 3.3 Volts. They work great. I now have them on all my Rpi3B systems. FYI, most fan enclosures come with only 2 heat sinks. I went ahead and bought extras so I can put one on the chip underneath. The enclosures have a cutout ready to accept them. – SDsolar Apr 07 '17 at 18:07
-
1This is very helpful! (will up vote in 12 hours when my quota for the day expires). It seems that
os.popen('vcgencmd measure_temp').read()
makes the temperature (text) available within Python as well. as doescommands.getstatusoutput('vcgencmd measure_temp')[1]
– uhoh Mar 19 '18 at 12:24 -
1TNX for the Python commands. That approach to using
os.popen
and.read
like that could come in very handy. Not to mentioncommands.getstatusoutput ... [1]
I tend to use Python with external commands a lot but hadn't run across either of those. Well done. btw, the more questions you answer the more points you will get and the restrictions will get lifted pretty quickly. This particular SE is a tough crowd, but they definitely recognize valuable contributions to the database. – SDsolar Mar 19 '18 at 16:38 -
1I maxed out on up votes today; while I spent several hours looking for some things I kept running across (what I felt to be) helpful posts with zero votes. I haven't figured out what makes some SE sites more generous and others not as much. – uhoh Mar 19 '18 at 20:10
-
The trick is to ask a good question with lots of info on what the problem is, how you tried to solve it, then posing a question that can fit in the title. That is #1. #2 is to search through past questions (like this one) and add a decent answers with specifics like links to outside websites (and always type in an excerpt from each one to protect against link-rot). Always remember that the goal here is to build a database that people Google into and find their answers quickly. Question titles and specific detailed answers is the way to earn points on any SE site. . And have fun! – SDsolar Mar 20 '18 at 00:04
-
One more thing. Figure out who the best people are on the various SEs are and look for their posts. You can find them by going through past questions and looking at the questions with many high votes. Once you find one (Here I suggest
goldilocks
) you can search for their name. Others here are true wizards. Likejoan
She has an amazing website. She wrote thepigpio
library.
http://abyz.me.uk/rpi/pigpio/ When I started I would earn 2 points at a time by going through old questions and adding a relevant tag or two. It takes time but works. Plus you will learn a lot. – SDsolar Mar 20 '18 at 00:17 -
By the way, as I work and need info, I very often Google a question then find a Q&A in one of the SEs that are from 2013 or so has the precise thing I need. And I
ALWAYS upvote both the question as well as the answer
It is most helpful when the answer gives me everything I need, even if it references a web site where the answer came from.I like going from Google to having my answer in under a minute
It happens a lot. SE has been around a long time. So in comments I always annotate the correct answer by saying something like "Thank you from March 2018" to remind people how it's used. – SDsolar Mar 20 '18 at 00:23 -
I just added a section about how I am now using pOpen. You can see some of my code here: https://raspberrypi.stackexchange.com/questions/8752/ping-a-website-and-have-an-output-turn-on-if-online-offline/82302#82302 – SDsolar Apr 05 '18 at 01:47
-
if you're using raspbian why not just read /sys/class/thermal/thermal_zone0/temp? Divide by 1000 to get degrees C. Seems to have more precision compared to vgencmd as well. – Pathead Jun 20 '19 at 22:19
The following is a little outside of the question, but a general use case that might give some ideas.
This can be adapted to any kinds of inputs, gpio sensors, internet datas.
How to graph the CPU temperature overtime?
Install gnuplot
Gnuplot can graph datas in the terminal, does not require any X server and use very little ressources.
It works smooth even on the slowest raspberry pi's model 1/zero.
sudo apt install gnuplot
Script example to build a gnuplot
file:
temperature
script to store the data overtime.
#!/bin/sh
echo $(date +%s ; cat /sys/class/thermal/thermal_zone0/temp) | tee >> temperature.plot
Give execution rights to this script:
chmod +x temperature
Detach and run in 1s loop till next reboot:
nohup watch ./temperature &
Later, graph the datas:
gnuplot -e "set terminal dumb $(tput cols) $(tput lines);plot 'temperature.plot' using 0:2 with lines"
This is a barebone example, temperature in Celsius * 1000, and seconds since the start, to be extended in your own scripts suite.
To kill the watch
loop, killall watch
Happy hacking ;)

- 159
- 5
This is an old question, but there are new answers:
The original question will soon be 10 years old, and the "official documentation" quoted in the currently accepted answer has been revised. The RPi FAQ is in the same location, but the relevant FAQ is now here: What is its operating temperature? Does it need a heatsink? But this FAQ is not particularly informative - nor consistent with other documentation.
As of today, all models of Raspberry Pi employ a closed-loop thermal management system. Briefly, this means that the manufacturer ships a built-in system, coded in firmware, that seeks to limit the temperature to 85℃ by reducing the clock frequency and/or the core voltage. Thus, the operating temperature and the performance of the RPi are closely related.
There are additional details available in The Foundation's hardware documentation: Frequency management and thermal control. RPi 4 owners can learn how to configure the RPi 4's DVFS parameters by editing parameters in /boot/config.txt
. There is also an opportunity to reduce idle power consumption using the cpufreq-set
command (from the cpufrequtils
package).
You will also note that The Foundation has modified their stance on the use of heatsinks & fans with the RPi, acknowledging that performance improvements are possible through more efficient removal of heat.
Finally, RPi 4B users who operate their systems in headless mode will benefit from setting the dvfs=1
mode in /boot/config.txt
.

- 21,900
- 3
- 33
- 70
while sleep 1;do tput sc;tput cup 0 $(($(tput cols)-2));cat /sys/class/thermal/thermal_zone0/temp;tput rc;done &
will display the cpu temp in the top right corner of the console. For monitoring. – NVRM Sep 30 '19 at 19:49watch /opt/vc/bin/vcgencmd measure_temp
(outputs new measure per each two seconds) sounds like an easier / cleaner way than your approach to constant temperature monitoring. But, I might be wrong. – trejder Oct 07 '19 at 12:30cat
approach works on all linux, whilevcgencmd
is specific to the pi. – NVRM Oct 07 '19 at 16:27[1] 1083
or[2] 1192
. A one-time shot and command exits back to console. So no look, and not quite readable values of temperature. – trejder Jun 26 '21 at 17:31