The Raspberry Pi 3 is a great little beast with plenty of CPU power – it can easily run a Minecraft server or even a WordPress blog.
But you might be surprised that the board gets hot and not like the old Pi2 board, the Pi3 can reach over 85°C (185°F) before it begins to throttle down.
There has been numerous reports on the net about the board even reaching over 100°C (212°F) as the inbuilt thermal sensor is inaccurate and showing the wrong core temperature. This leaves the average maker with a problem since it is a big risk to have the board potentially exceed the specifications.
There is multiple options to solve this issue. You could avoid high CPU load – this is the most obvious solution to the temperature problem but I guess that most PI enthusiasts want to squeeze as much performance out of the little board. This leaves us with the option to attach some kind of passive or active cooling to the little board and due to the size of the Pi 3 our options are not limitless.
Cooling down the Raspberry Pi3
Parts that you will need for this project
- The Pi3 board itself – I bought mine from Banggood
- A case for the raspberry board – I use the official case
- Heat sinks, I bought the aluminum but copper might be a better option
- A small fan – preferably with with 2 pin molex connector
Step 1 – fitting the heat sinks
When you order the heat sink make sure that they come with pre fitted with heat silk from 3M, the thermal conductive adhesive tape makes it a whole lot easier to fit the heat sinks in the Raspberry Pi.
Notice that you need to make sure that the surfaces of the Pi is completely clean, use rubbing alcohol (isopropyl) since it won’t damage the board.
In the images below you can see how I have mounted the aluminium heat sinks on my little Pi3 – should perhaps have ordered copper as it is better for transferring heat.
Make sure that you align the heat sinks with the chips – croked orientation might damage the CPU since heat will distribute unevenly which is a bad thing.
Step 2 – Modding the case / enclosure
The next step isn’t for the faint hearted. But I recommend that you cut a circular hole in the top plate using a hole saw cutter. If you are careful you should be able to make a hole that is aligned with the center of the plate.
I used a cheap hole saw cutter from and exacto knife for the finishing touch. The exacto knife was great for removing the small craters but be careful since it is a notorious dangerous and sharp tool – I must admit that as dedicated Maker I have cut myself more than once.
Next I mounted the fan on the backside of the topplate using hot glue. I considered whether I should have used screws or nuts instead but decided that it was much better looking with a hidden attachment. Hot glue is incredible strong and easily be removed again using only isopropylic alcohol.
Notice: You should ensure that the fan is able to spin with the Raspberry’s 5V power supply – it is waste of time to mount a fan that can’t run with only 5V.
I only had 12V fan and was not sure that it was able to be operated on undervoltage. Luckily it seems to spin fine although it requires an initial push but this is not a problem as we seldom loses power in my neighborhood.
Step 3 – connecting the fan
Well this is quite easy as the GPIO pins can be used to drive the fan using the ground (black) and 5V (red) pins directly of the Raspberry PI board. You could also mount a controlled fan where you with a Python script could start and stop the fan – but I choose the simple “always-on” fan solution as the fan is pretty silent and the computer is running in my office.
Step 4 – Finish
Now I assembled the enclosure again but first I ensured that the fan didn’t touch any of the components in the little pocket computer.
If you also use the official case you can choose not to install the side plates, this will give a better airflow since air can escape the case. I installed the side plates since I thought that the case visual appearance is important too. I have measured the difference with and without sideplates to 1.5°C-2°C.
Conclusion – Measuring the temperature
The Raspbian OS has an inbuilt command that calls the inbuilt temperature sensor.
Although I mentioned that this is not exactly 100% accurate it still gives you an identification of the operation temperature of your Raspberry PI 3.
So what was my results ? I succeeded lowering my CPU temperature from 62° to a modest 42° which is actually a giant difference if you do the math – temperature lowered by 33% in five minutes.
Leave a comment – how much have you lowered the temperature and can you recommend other solutions?
What if you want to measure the temperature constantly on Raspberry pi3 – this can be useful if you are stress testing the little board or running a game server and want to ensure that CPU throttling doesn’t kick in.
I have seen different Linux scripts that supposedly should be used for this scenario but the easy way is to use the watch command.
watch -n 10 vcgencmd measure_temp
-n 10 specifies the interval where the command should be executed – here we of course use vcgencmd measure_temp