Skip navigation

I'm not a fan of Ikea. In fact, it's a place I usually try to avoid, until I discovered that you can hack it's ultra-cheap tables into retro video game systems! You know the one I mean: PIK3A: The Raspberry Pi 3 IKEA Retro Gaming Table.


You guys have been busy making your own versions, which I'm thrilled to be reading about. Keep those photos and top tips coming.


But in the meantime, meet PIK3A Mark II.

PIK3A MkII 01.png

Hackin' the LACK

LACK_TV_Stand.pngThis is, in many respects, the same build as the PIK3A Mk I. The idea came about when I initially bought the square LACK tables that we mounted a monitor in, and added controls to. I was casually keeping an eye out for a table that'd accommodate two players, with six buttons each. You know. A Street Fighter II machine!


There were definitely options, but the table size makes them prohibitively intrusive for the average living room. So I needed a way to reduce it, while maintaining the full control set.


The answer presented itself in the LACK TV stand; a narrow, 90cm by 26cm table that boasts a shelf and a table top deep enough to accept the joysticks and buttons. By dispensing with the monitor and going straight into the TV, the unit is easily accommodated in your average (well, as average as us element14 types ever really are) front room.


There isn't much to explain about the build that isn't already covered in the PIK3A Mk I. I cut two access holes in the bottom so I could get to the joystick and buttons for each player, and drilled start and coin buttons into the edge as before.


I kept the Raspberry Pi 3 external, mounting it in a case underneath the table top, in the centre. It's still nicely hidden, and there's only a short length of USB cable from the controls into the RPi. The benefits of this are that you don't need any extensions or panel mount connectors for the micro USB input or HDMI output. It also makes it easy to get to the SD card, should you need to.


There's no need for any acrylic or polycarbonate sheeting over the top either, given that there's no screen, making this a quick, simple yet highly effective variation on the PIK3A.


That said, one nice tweak might be coming up with a way to eliminate the HDMI cable and send the video to the TV wirelessly. Any thoughts on that?



Posted by chaltun Mar 16, 2016

I would like to purchase the Raspberry Pi3 and I would like to run Kodi on it. I understand that there is an sd card that goes into the Pi with Kodi on it. Can anyone advise me where I can purchase it and how do I apply it to the Pi3. Kindly help if you can. Many Thanks


Raspberry Pi 3 temperature and cooling testing :


Part 1 initial tests.

Part 2 with a HAT tests.

Part 3 with Fan Speed Control. (Still to come)




The BeagleBoard  has capes, the The specified item was not found.  has Shields but the Raspberry Pi has HATS (Hardware Attached on Top) - an add-on board to provide additional functionality but which can closely cover the SOC chip and restrict the cooling airflow. There are many of these available some of which you can find here  Raspberry Pi Accessories


Following on from my initial temperature tests I then decided to see what effect adding a HAT would have on the running temperature of the RPi 3. However as I did not have any of these I decided to 3D print a dummy one to  RPF specifications here a OpenSCAD source for this is attached to Part 1.


One thing I should mention here though is that real HATs also contain electronic circuits that may generate some additional  heat.


I started out with one that sits 10mm above theRPi 3 PCB and repeated the tests as described in part 1.


10mm dummy HAT



Not surprising there was very little difference in the results to the initial tests with enclosure cover installed, so close it was impossible to distinguish when plotted.


I therefore decided to try one that sits just 5mm above the RPi 3 pcb  which is about as close as I would expect to get, for this I needed to make a cutout to clear the HDMI connector. and a slot for the GPIO pins.  (after printing and fitting I realized I should have added a cutout  for the Audio connector too but as this is further away from the fan I didn't feel that the slight offset would make much difference.)


5mm dummy hat



The results for these tests were again very similar to the original "with cover" tests but this time there was a noticeable increase in the maximum temperature reached on those tests that maintained a temperature below the 80'C threshold where the processor reduces its operating frequency to help keep the temperature down. This was approximately 10'C as you can see on the graph of the results below. I tried to make things easier to see with this chart (hopefully).  The tests are T1 to T8 no HAT and T1H to T8H with a HAT installed.

The original test plan is:

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


And the results, if you click on the chart you should get a larger image.



Without a fan the 80'C threshold is reached much sooner but as you can see the heatsink still has an effect in delaying this.


Still to come:  Part 3  Adding temperature control to the cooling fan to reduce noise.

I was using a project by Mike Davis (A Raspberry Pi Data Logger for about $25 (Temperature Probe and ThingSpeak).. All is working fine for one sensor but I have 3 and am unable to figure out a loop to get it to upload all three. I can see all three sensors in the /devices/ directory. Any help would be appreciated.


Here is code from Mike I'm using:

import os


import glob


import time


import sys


import datetime


import urllib2




baseURL = ""




#initiate the temperature sensor


os.system('modprobe w1-gpio')


os.system('modprobe w1-therm')




#set up the location of the sensor in the system


base_dir = '/sys/bus/w1/devices/'


device_folder = glob.glob(base_dir + '28*')[0]


device_file = device_folder + '/w1_slave'




def read_temp_raw(): #a function that grabs the raw temperature data from the sensor


     f = open(device_file, 'r')


     lines = f.readlines()




     return lines




def read_temp(): #a function that checks that the connection was good and strips out the temperature


     lines = read_temp_raw()


     while lines[0].strip()[-3:] != 'YES':




         lines = read_temp_raw()


     equals_pos = lines[1].find('t=')


     if equals_pos !=-1:


         temp_string = lines[1][equals_pos+2:]


         temp_c = float(temp_string)/1000.0


         temp_f = temp_c * 9.0/5.0 + 32.0


         return temp_c




while True: #infinite loop


     tempin = read_temp() #get the temp


     values = [, tempin]


     g = urllib2.urlopen(baseURL + "&field1=%s" % (tempin))




Recently we built a Plex Media Server using the Raspberry Pi 2, at the time the Raspberry Pi 2 was the most powerful board in the Raspberry Pi range. But on February 29th 2016 the Raspberry Pi Foundation announced their latest board, the Raspberry Pi 3.



Photo Credit - Raspberry Pi Foundation

Technical Specifications

  • Broadcom Quad Core 64bit CPU 1.2GHz  (BCM2837 SoC)
  • Broadcom BCM43438 WIFI and Bluetooth connectivity
  • 1GB RAM
  • VideoCore IV GPU and 3D now clocked at 400MHz and 300MHz respectively.


Raspberry Pi 3 Improvements


The new Raspberry Pi 3 is now 66% faster than the Raspberry Pi 2 and is approximately 10X faster than the original Raspberry Pi. The CPU of the Raspberry Pi 3 is an ARM Cortex A53 clocked at 1.2GHz per core, giving us the most powerful Raspberry Pi ever!

So how can this help our media server project?


  • Faster CPU, more CPU power enables our Raspberry Pi 3 to index our media library quicker.
  • 64bit CPU, 32bit operating system. The new Pi 3 CPU is 64bit, and while the Raspbian operating system is still 32bit, the extra headroom is still utilised giving us a speed boost.
  • Scaling CPU. The new Raspberry Pi 3 CPU can scale, enabling it to power down when not in use but spring into life when needed.
  • WIFI. The built in WIFI of the Raspberry Pi 3 is really fast. Working to 'n' standard, we can send HD video from our Pi 3 to any device on the network...wirelessly!


So here is our guide to building a Plex media server using the Raspberry Pi 3.


For this project you will need


  • A Raspberry Pi 3Raspberry Pi 3
  • A laptop running Windows/Mac or Linux
  • A minimum of 8GB SD card (Class 10 for best results)
  • A minimum of a 2A power supply but for best results use a 2.5A power supply2.5A power supply
  • An Ethernet cable connected to a router.
  • An external USB hard drive, preferably powered by an external power supply.


We start the project by installing the latest version of Raspbian on to an 8GB or greater SD card. It is vitally important that we use the latest version of Raspbian with the Raspberry Pi 3 as it has tweaks that enable the Pi 3 to really fly. The best tutorial on how to install Raspbian on an SD is provided by the Raspberry Pi Foundation and can be found on their blog

With Raspbian installed we now need to boot our Raspberry Pi. Insert the microSD into the Raspberry Pi, then attach any peripherals such as keyboard, mouse, HDMI, Ethernet to the Pi. Lastly attach the power cable to boot the Pi.

When your Pi has booted to the desktop, click on the menu to the top left of the screen and go to the Preferences menu. From there select the Raspberry Pi Configuration application.

In this application we need to change the boot behaviour so that the Pi boots to the terminal and is logged in. We’ll also change the memory for the GPU to only use 8MB of RAM

With these changes made, save and exit the application. You will be asked to reboot, do so before progressing.

With our Pi rebooted we now find ourselves at the terminal. It may seem a little scary at first but the terminal is the best way to work with a Linux computer.


Setup our software

Our next goal is to install the software necessary for our Pi.

First we update our list of available software and then upgrade the software. We will use an operator to join two commands together. The first command updates the list of software and if that completes successfully, then the last part of the sequence, a software upgrade is started and any suggested files are auto installed.

In the terminal type.


sudo apt-get update && sudo apt-get upgrade -y


Now we are going to upgrade the distribution, Raspbian, software. To ensure that our operating system is fully up to date. In the terminal type.


sudo apt-get update && sudo apt-get dist-upgrade


Once completed and the terminal is returned to you enter the next command to install the HTTPS transport package to enable access to HTTPS content over the Internet.


sudo apt-get install apt-transport-https -y --force-yes


Next we shall download a key that will authenticate our downloads to ensure they are safe


wget -O -  | sudo apt-key add -


With the key downloaded we now add a new repository to our list, this repository is provided by who has worked on the packages that will power our Plex install.

In the terminal type


echo "deb jessie main" | sudo tee /etc/apt/sources.list.d/pms.list


We now update our list again, to ensure that we now have the latest updates for the Plex Media Server.


sudo apt-get update


Lastly we install the Plex Media Server software.


sudo apt-get install -t jessie plexmediaserver -y


The install will only take a few minutes and once completed the Plex Media Server will automatically start as a background service on your Pi.

At this point it is worth rebooting your Raspberry Pi 3 as proceeding without a reboot caused a bug when trying to configure the Plex server via the browser.

To reboot in the terminal type.


sudo reboot


With the Raspberry Pi 3 we saw the introduction of built in WIFI! Yes we no longer need USB dongles to connect. The WIFI chip on the Pi 3 is a BCM43438 which is rated up to Wireless N which gives us plenty of bandwidth to stream video over WIFI.

Connect to WIFI (Optional step, can be skipped if using Ethernet)


Connecting to WIFI from the terminal is rather easy, but looks rather scary!


Firstly we need to find out the name of our router, the SSID.

In a terminal type


sudo iwlist wlan0 scan

Look for the name of your router. It should look something like this, replace MY_ROUTER with the name of your router.




Next look through the text for your router and see if you can spot a line similar to this.


IE: IEEE 802.11i/WPA2 Version 1

So now we need to add our network details to a file called wpa-supplicant, in the terminal type.


sudo nano /etc/wpa_supplicant/wpa_supplicant.conf


In the text editor, navigate to the bottom of the text and add the following. Obviously change the ssid and psk to match the name of your router and the password you use to get online.




Save your work by pressing CTRL + O then press Enter. Next Press CTRL + X to exit the editor.


The changes should be automatic, but it is prudent to make sure by typing the next two lines one after another.


sudo ifdown wlan0
sudo ifup wlan0


You can check your IP address by typing


ifconfig wlan0


Your IP address should pop up for the interface wlan0, which is our WIFI card.

The best test to check that this works is to reboot your Raspberry Pi and see if it auto connects to the WIFI. To reboot type.


sudo reboot


Fix IP address of the Pi


To ensure that we can discover our Pi on a network we will now fix the IP address of the Pi.

First we need to find out the IP address, in the terminal type.


hostname -I


Write down your IP address!

Now let's fix the IP address, in the terminal type


sudo nano /boot/cmdline.txt


At the very end of the line we will add the IP address that we earlier wrote down. So type




With the IP entered press CTRL + O, then Enter to save your changes.

Now press CTRL + X to close the file.

Now reboot your Pi to make the changes permanent.


sudo reboot


With your Pi rebooted we shall now test that we can access the Plex server. On your laptop or desktop PC open a web browser and type your IP address followed by :32400/web so for example I typed.




This will now open the Plex Media Server software and we will need to read and accept the Terms and Conditions before progressing.

Once Plex has loaded take a few moments to get familiar with the interface. Specifically the libraries, which will house your media collection.

The SD card of our Raspberry Pi is rather small, so let's add an external hard drive and store our media there.

Plug in your USB drive. Nothing will happen in Plex until we mount the drive. In Linux, mounting a drive means that it is ready to be used. On your Raspberry Pi, in the terminal type




You will see a lot of text whizz up the screen but keep a look out for your hard drive.

So now lets create somewhere to link our hard drive to the Raspberry Pi this will be a directory called “library”. In the terminal type


sudo mkdir /mnt/library


Now we shall open a text editor and add a line of code to mount the drive on boot. For our drive we used a FAT32 formatted drive. As this is the only USB drive it will be given the assignment “sda” and if the drive has one partition, where our data is stored, then it will be “1”. This gives us the location of our media which is “sda1”.


sudo nano /etc/fstab




So now we shall mount our drive, got to the last line which starts with a “/” and make a new line under it. Enter the following and try and keep your spacing similar to those above.


/dev/sda1    /mnt/library   vfat   defaults    0    0


To save your work press CTRL + O followed by Enter. Then to exit press CTRL + X.

Reboot your Raspberry Pi.


sudo reboot


Once the Pi has booted back up navigate to your content by typing.


cd /mnt/library


Now we need to see where our content is, so to find it type




You should see lots of directories and files, just as you arranged them on your main computer.

Our next step involves enabling access to the files for any user. As our server will be in our home we shall enable access to all of the content for all of the users. Typically this is not the done thing for big servers in production but for our server this is fine. So to enable access we need to type


sudo chmod 777 -R /mnt/library


On a Raspberry Pi 2 this took a few minutes to complete, but thanks to the Pi 3 and its new processor this time is greatly reduced. But the time will vary depending on the amount of files in your library.

So now that we our drive ready to serve our media, let's start using it!

Back to our laptop/PC and open your web browser to your Plex Media Server.

You will be prompted to add a library, so go ahead and do so. Now which library you add depends on what you have. I chose to add a couple of TV series. When ready click on “Add Library” to import the media.





Depending on the amount of media that you have to import this process may take minutes or hours, so please be patient and wait for the process to finish. One thing we can confirm is that the Raspberry Pi 3 indexed our library in a significantly quicker time than the Pi 2.

When the media is imported, Plex will try its best to grab the metadata, the information about the content such as genre, IMDB data, actor details etc.





Music for all


Importing a directory full of music is also made easy, it is just another library of content to Plex. Importing is handled in the same manner as video media, Plex will also search for the artists, albums and genres of your music, providing information on the album and artists thanks to meta data.





Multi User Access & Chromecast



Plex streaming to a Windows tablet


The huge benefit of Plex is that any user on the home network can access any of the media in the library. So children can watch their favourite films on the mobile device, parents can listen to music or podcasts or share their family photos on their laptops.


Plex can also be streamed to a chromecast device, enabling high definition movies to be enjoyed on the big screen.

Listen to all of your music across your entire home and all you need is a Raspberry Pi and a little Linux know how

Raspberry Pi 3 temperature and cooling testing :


Part 1 Inital tests

Part 2 with a HAT tests.

Part 3 with Fan Speed Control. (Still to come)




This experiment started out after discussions following a post by shabaz   here Raspberry Pi 3 Cooling / Heat Sink Ideas

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.

The fan used was MC25100V2-0000-A99 - SUNON - Axial Fan, MAGLev® Motor, Medium Speed, Vapo, MC Series, 5 VDC, 25 mm, 10 mm, 3.002 cu.ft/m…


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



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


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


ssh pi@


Then I ran the tests as root privilage


sudo -s


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.


Edit: 10-March-2016

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.


Ras Pi Gaming Table

Posted by mconners Top Member Mar 8, 2016

This will be my interpretation of the Ras Pi gaming table as highlighted here PIK3A: The Raspberry Pi 3 IKEA Retro Gaming Table posted by spannerspencer.


I have most of the parts on hand, but I am still waiting for a key component, the screen. I had one, I thought, but it turned out to be inoperative.


So I ordered one from ebay and expect to have it pretty soon.


I'm pretty much sticking to the plan as described, with a few minor changes.




There is what I have so far.


Ikea Lack Table

6 Arcade Buttons

1 Arcade Joystick

USB Jack

Ras Pi 3

Arduino Micro Compatible board


I switched up the table color to green, and one of the buttons to red.


Also the little PCB next to the Pi 3 is an arduino micro clone. It is important that the microcontroller on the board is a 32U4 as is found on the leonardo, because that one supports the keyboard emulation.


The Microcontroller Board

I guess I can get into why I chose the microcontroller board that I did. I have an Arduino Leonardo, but I chose not to use it. The main reason for this was the size and the fact that the headers were already attached.

I purchased a board where the headers were not soldered on so I could ensure that the controllers were firmly attached. As I mentioned above I needed something with a 32U4 and the OSOYOO Micro AT mega fit the bill. It's not a direct copy of the Arduino Micro, it has a few less IO ports, but it was adequate to do the job. I'm fortunate to have a logic analyzer, a Digilent Analog Discovery, that I purchased when I took the EdX class Embedded Systems : Shape the World that they advertise here on E14, got it at the student discount, so it was a good deal, anyway I was able to use it to ensure that the pins I needed were mapped correctly, because the board layout didn't match anything that I had seen. I could have wired up an LED and a resistor on a breadboard and accomplished the same thing, but this was easier, and it motivated me to solder up a batch of clip on probes that I bought a while ago. I purchased the board on amazon and they were about $8 each, shipped.


The Buttons and Joystick

The buttons and joystick were also purchased on amazon. I know MCM and CPC sell them, but I'm a cheap old guy so I managed to get them for ~$25. That was well worth it. They seem like quality parts and I'm happy with the purchase.


The Table

I live in the country. The nearest city is about 25 miles away. I live on 50 acres and I like it that way. The nearest IKEA is about 100 miles away. So, my old friend Jeff Bezos provided again. I paid $20 for a $10 table, but I didn't have to leave the house. I chose green instead of red because I like green better. But i did swap out the green button that Spencer used for a red one to keep the same color scheme.


The Pi

I have a Pi 3, but I also have a Pi2, so I don't know which I'm going to use yet. I am running retropie on a Pi2 right now, so I know it's up to the task. I hate to tie up my newly acquired Pi3 for this. I have a bunch of WiFi dongles that I bought for cheap, so I may go with the Pi2. We'll see as I get closer to build time.


The USB Jack

I don't know why, but when I saw this as part of the original build, I got really excited. It was not listed on the BOM so I had to ask for the part number.


2UB3001-W05101 - MULTICOMP - CABLE, USB A JACK TO USB A PLUG, 100MM, BLACK | Newark element14

I love the through hole mounting and the dust cap. This will give you access to one of the Pi's USB ports, this way you can add a keyboard, or a hub, or whatever. Since this thing will really be running the full RetroPie distro, you can add NES, SNES, or Playstation controllers if you decide to play with any of the other available emulators.



Got the Buttons Installed

I managed to make the cutouts and get the buttons installed. Now to wire it all up.





I got all the buttons wired. It gets crowded in there. I tested it out by connecting to an external monitor. All the buttons seemed to work.

My Arduino Micro style board worked great.


I'll take some more pics and post them soon.


Well, it's together and functional. I ended up going with the Ras Pi 3, and I paired a bluetooth keyboard with it to give me a little more control over the machine.





Mostly done!!!


Summary & Lessons Learned


Now that this project is mostly complete, I have to say this was one of the most rewarding Ras Pi projects I have embarked upon. My kids and I have had a blast playing with this thing.

There are, however, a few things I would do differently if I were to duplicate this effort in the future


One, I would go with bluetooth speakers. Even if going with an earlier version of the Pi. A bluetooth dongle is an inexpensive addition, but having it built into the Pi3 is a plus, it would be more convenient to add a bluetooth soundbar of some type to add sound rather than drill holes and mount the speakers in the table.


Two, I would add an hdmi extension to be able to connect the device to another monitor if desired.


Three, I was only able to use 16 gauge wire to attach the buttons. This was what was available at the local hardware store, I would go for 20 gauge wires in a second build.


Four, I would probably add a few more buttons, just for a bit more flexibility.


I still haven't decided if I will put an acrylic top over the screen or not.


All in all, though, this was an awesome project. Only the future will tell what derivative works will grow out of this.

Note: This is part 1 of a 2-part post. For part 2, click here: Raspberry Pi 3 Dynamic Current Consumption, Power and Temperature Tests

To see an implementation using a heat pipe, see the Outdoor Pi 3 Image Recognition Security Camera project (aka HAL-CAM 9001)


Inspired by Christopher's cstanton  Raspberry Pi Operating Temperature report (with thermal photos from Gareth Halfacree) regarding the heat dissipated by the Broadcom chip on the Raspberry Pi 3, and the discussion with bwelsby we started searching around for ways to keep the Pi cool.

Ceramic heat sinks have an innovative structure (vias or micro-pores) which allow a heightened thermal conductivity compared to traditional aluminium heat sinks. They also can have the advantage that they won't affect radio frequency (RF) communications as much, when positioned close to the wireless antenna that is present on the Pi 3.

Furthermore, ceramic heat sinks are not electrically conductive and therefore there is no risk of accidentally shorting something on the Pi.

Back-of-the-envelope calculations (we don't have all parameters since we don't have a copy of the Broadcom datasheet to examine the device operating conditions in detail, nor a copy of the schematic to examine if we can measure device power consumption isolated from the remainder circuitry) suggests that a heat sink with thermal resistance of around 10 degrees C/W might be effective to keep the Broadcom chip's internal temperature below 120 degrees C when the ambient temperature is below around 40 degrees C. These are guesstimates until practical measurements have been taken.


Armed with this information, I searched for a suitable sized heat sink and I found a cheap aluminium one. However bwelsby and cstanton suggested that there may be issues with the heatsink getting in the way of connected HAT boards on top of the Pi, and Brian suggested examining ceramic heatsinks.

In summary, I think these parts may be suitable although measurements still need to be done:

22x22x2.5mm MPC222225T22x22x2.5mm MPC222225T

15x15x2.5mm MPC151525T15x15x2.5mm MPC151525T

(Optional) 20x20x10mm 5V DC fan MC33873(Optional) 20x20x10mm 5V DC fan MC33873

(EDIT: after some discussions below, it looks like this Sunon 'DR-MagLev' design fanSunon 'DR-MagLev' design fan is a far better choice, it is 25x25x10mm, quieter, higher throughput, and more efficient with overall lower power consumption. There is also a 25x25mm finger guard25x25mm finger guard).


The Broadcom chip is about 14x14mm in size, and ceramic heat sinks do exist in approximately that size. However it is possible to attach a larger heat sink if desired.

The photo below shows the parts that were examined. All of these ceramic heat sinks come with adhesive tape on the underside; the protective tape is removed and the heat sink will stick to the top of the integrated circuit.

The photo at the top of the blog post shows the largest 22x22mm ceramic heatsink.


The photo below shows a heat sink closer to the size of the Broadcom chip, 15x15mm. It also shows a 10x10mm heat sink on top of the USB hub/Ethernet controller chip, however this is really not needed. It doesn't get very hot according to the thermal photos in the previous blog post.


The memory chip on the underside gets hot too. If desired, the 15x15mm heat sink could  be attached there too. The 22x22mm one is too large for that location due to nearby components (the memory chip has a lower height than the Broadcom chip on the top side).


So, I plan to attach a 22x22mm part to the Broadcom chip on the top of the board, and possibly a 15x15mm heat sink to the memory chip on the underside. I don't think a fan will be needed unless a very small enclosure with no natural ventilation was used, or if the Pi was in a very warm environment.

In that case, a fan may be an option. I tried the MC33873 fanMC33873 fan and it generates a usable level of air that can be felt from a distance of 10cm or more. However it does generate a small amount of noise too (possibly inaudible if the Pi will be behind other items such as a TV, but I think there is still a risk it could be audible. The voltage could be reduced from 5V to lessen the noise). It could be mounted on the heat sink as shown here although I think a small gap would be good to allow forced air to hit the entire top face of the heat sink. (The red dot on the fan was placed by me so that I could see it spinning). The fan could be secured with epoxy adhesive. The overall height is less than the height of the USB connectors on the Pi 3. The problem with this is that a HAT board cannot be plugged on top if there is a fan in the way.


A very nice solution would have been to put the fan on the side (to the left side of the photo above) so that the fan could blast air across the entire top face, and the underside of the board. However the display connector (the long white thing on the edge of the board in the photo above) is in the way and would block the flow of air which is extremely unfortunate. The Pi 3 wasn't designed with air flow in mind : ( However it might be possible with some 3D-printed duct design to achieve something that could work.


To summarize, some heat sinking ideas have been suggested however it is for further examination to see how well they perform. It will be good to see what solutions people come up with over time.

Filter Blog

By date: By tag: