The other day I was discussing with a colleague how cold the CPU of a Raspberry Pi would get if it were left out in the harsh Sarajevian winter. With Sarajevo being the capital of Bosnia and Herzegovina, and my current whereabouts.
He assured me the thing would not get very cold and me being my stubborn self I had to test this out. “If only we had a temperature chamber”, I mused. “A temperature chamber? We are in Bosnia! Our temperature chamber is our kitchen freezer and oven! Let’s just put the damn thing in the freezer”, he retorted. So that is what we did.
The Experiment
This Raspberry Pi had a Tiny Core distribution installed, which is a very cool minimalist distribution particularly well suited for embedded applications that I would recommend to anyone who has the time to learn its quirks. Being only a Raspberry Pi version 2, we had to add WiFi connectivity via a USB dongle, and we powered the Pi with a mobile charger battery. In the end this shenanigan looked a bit like this:
After setting up the WiFi dongle driver and getting the Pi to automatically connect to the offices WiFi network at boot up (no easy feat using Tiny Core as a beginner), I SSH’d in to the Pi and used the following very simple Bash command to print out the temperature in Terminal every 3 seconds, and also save it to a CSV file.
while true
do
{
echo "$(date),$(cat/sys/class/thermal/thermal_zone0/temp)"
echo "$(date),$(cat/sys/class/thermal/thermal_zone0/temp)" >>temp_freezer.csv
sleep 3
}
done
The Results
Keeping in mind that there is not much that is scientific about this test, The Raspberry Pi was kept at around 22 degrees before the test started (measured by a DHT22 sensor from a different project and the room air conditioner read out. After putting the Pi in the freezer, we got the following results.
The Conclusion
After getting these results, we used a mercury thermometer to measure the temperature inside the freezer, which returned around -14 degrees. So, what can we gather from this experiment? A Raspberry Pi will cool in a linear fashion when placed in the cold. The Raspberry Pi CPU resting temperature is not linear when it comes to different ambient temperatures (42c-22c = 20c, 14c-(-14c) = 28c. The Raspberry Pi CPU thermometer has a pretty low resolution, which can be seen by the quantising like spikes in the results.
I am hoping that one day I can repeat this experiment in a controlled environment with a temperature chamber, as well as with the inclusion of other variables such as CPU load. But in the near future I will try and do similar experiments with Raspberry Pi CPU temperature vs CPU frequency. Hope this helps someone who needs to put their Pi in the freezer!