Raspberry Pi 3 temperature and cooling testing :
Part 1 Inital tests
Part 3 with Fan Speed Control. (Still to come)
The tests were carried out with the new RPi 3 as it was found to get hot under heavy load, I may repeat the tests at a later date with the RPi 2 for comparisons.
For the tests I created a simple 3D printed enclosure and also 3D printed dummy HATs the OpenScad files are attached, feel free do do with these as you wish.
The OpenScad image of the test enclosure and the final printed case with RPi 3 installed
A total of eight tests were carried out to the following plan where 0 = option not installed, x = option installed
The test plan:-
Test# Fan Cover Heatsink Graph Colour
1 0 0 0 Brown
2 x 0 0 Red
3 0 x 0 Orange
4 x x 0 Yellow
5 0 0 x Green
6 x 0 x Blue
7 0 x x Violet
8 x x x Grey
The heatsink used is a ceramic part MPC222225T - AMEC THERMASOL - Heat Sink, Square, Micro Porous, 10.21 °C/W, 2.5 mm, 22 mm, 22 mm | Farnell element14
chosen because it is only 2.5mm thick and would fit easily between RPi and an installed HAT. If no HATs are being used and height above the RPi is not an issue then there may be larger more efficient heatsinks available that would provide better cooling but these tests were specifically an experiment to see if there was a solution for HAT use.
To run the tests I first installed the latest NOOBS and configured Raspbian as the operating system, and to make sure everything was up to date this was then followed by
sudo apt-get update sudo apt-get upgrade sudo rpi-update
The Test Script
I used the following shell script I called temptest for the tests which outputs the data in a csv format it includes both temperature and also CPU frequency which showed that the CPU was being throttled when the temperature reached 80'C
#!/bin/bash I=0; stress --cpu 4 --timeout 600 & while [ $I -lt 600 ]; do echo -n "$I," vcgencmd measure_temp | sed -e 's/temp=//g' | tr -d "'C\n" echo -n "," vcgencmd measure_clock arm | sed -e "s/frequency(45)=//g" let I=I+1 sleep 1 done
I ran the RPi without monitor, keyboard or mouse just an ethernet connection to my local network then I SSH'd from my linux desktop computer for windows you could use PuTTY: a free SSH and Telnet client or something similar the IP address on my system was 192.168.0.26
Then I ran the tests as root privilage
Each test was run piping the output to a testx.csv where x is the test number. time between tests allowed the RPi co cool back to idle operating temperature and the ambient temperature in the room was 22'C
./temptest > test1.csv
On completion I had eight csv files, I then used Gnumeric (a spreadsheet program) on my linux desktop to import just the temperature data and produce the following graph. The numbers along the bottom are approximate seconds and the numbers on the left are CPU temperature. The colours are as listed above for each test. If you click on the image you should get a larger view.
As I said in the other blog I will leave it for you to draw your own conclusions and I will give mine when I have done further tests
One thing observed was that the fan on full speed is quite powerful and a little noisy so reducing it's speed with a suitable PWM control would reduce the noise and could still provide sufficient airflow. This is for further testing.
A word of caution for the inexperienced
The heatsinks we have been discussing are held in place by a thermally conductive adhesive pad. In essence they are glued to the processor chip.
I would recommend that you DO NOT attempt to remove them as any twisting,pulling or prising is likely to damage the chip or its many extremely tiny soldered connection to the PCB
The Raspberry Pi may be an inexpensive single board computer but it could easily become a very expensive piece of scrap.
openscad_files.zip 1.9 KB