Today we will look at a number of different cases suitable for use with the Raspberry Pi 4. As you’ll soon see there is more to a Raspberry Pi case than just a pretty box!
The Raspberry Pi 4 is an extremely versatile microcomputer with a wealth of applications. It can be used as a Media Center, as a video surveillance system, as the heart of a custom project or even as a small personal computer.
But by itself the Raspberry Pi is “naked”, it’s a single circuit board with a number of connectors that requires an external power supply, a microSD card, and some other peripherals to make it useful.
If you’re just experimenting with the Pi or using it as part of a larger project then a case may not seem that important. But if you’re going to be using it as a stand-alone device for a permanent application then you’ll likely want to find a nice enclosure for it.
While you might just think of an enclosure as a simple box there is actually quite a bit more to it. There is no “one size fits all” case for the Raspberry Pi, and your ideal case will depend a lot upon what you want to use the Pi for.
Hopefully, after reading this article and watching the video you’ll be able to choose the ideal case for your Raspberry Pi project.
When picking out a Raspberry Pi case you’ll need to evaluate it based upon a number of factors. As to what those factors are will depend a lot upon, again, what you intend to use your Raspberry Pi for.
Here are some items you may wish to consider when choosing a case for your Pi.
The Raspberry Pi can get very hot, especially if your application is CPU or graphics-intensive.
If your case can’t dissipate that heat efficiently the microcomputer will go into CPU Throttling mode. This reduces your performance just when you need it the most.
Different cases use different methods of dissipating heat. Methods include:
- Ventilation – This is the simplest method, allowing air to flow around the Raspberry Pi.
- Heatsinks – Used for the CPU and/or GPU. Most heatsinks are fastened with thermal tape to allow better heat conduction.
- Fans – A cooling fan can assist in dissipating heat. Some fans are variable speed and are controlled either manually or by measuring the internal temperature, others are fixed speed and run constantly.
- Liquid Cooling. This is an advanced method, often used in high-end personal computers. Coolant is pumped through a heat conductor and circulated to a heatsink where it is dissipated.
Some cases use a combination of the above methods. None of the cases I’ll be evaluating use Liquid Cooling.
GPIO & Connector Access
The Raspberry Pi has a number of connectors onboard, and you may require access to some, or all of them.
- GPIO – The General Purpose Input – Output connectors provide access to the Raspberry Pi I/O and communications pins, as well as power supply voltages. The GOPI is also used to connect HATs, expansion boards that add extra functionality to the Pi.
- Camera – The Raspberry Pi has a CSI camera interface that accepts a ribbon (film) cable.
- Display – A touchscreen display can be connected to the Raspberry Pi using a cable similar to the camera cable.
- POE – There is a Power Over Ethernet cable on the circuit board.
- HDMI Display – The Raspberry Pi 4 has two micro-HDMI connectors for connecting up to two video monitors.
- USB – There are four USB connectors on the Raspberry Pi 4.
- USB-C – The Raspberry Pi 4 uses a USB-C connector for its power supply.
- Audio & Video – A 3.5 mm audio connector is provided.
- Ethernet – An Ethernet connector is provided for applications using wired networking.
The Raspberry Pi 4 also uses a microSD card that holds the operating system and acts as a “Hard drive”. This socket is mounted on the bottom of the microcomputer.
If you are using a HAT (Hardware Attached on Top) board with your design then your enclosure will need to be able to accommodate it, as well as any additional connectors it may have.
The Raspberry Pi 4 has both WiFi and Bluetooth connectivity. The antenna for both communications systems is mounted on the circuit board, and there is no provision for an external antenna.
Because of this, enclosures made of metal, such as aluminum, can attenuate the radio signal and decrease the range of both the WiFi and Bluetooth. This is something to consider if you intend to make use of these features.
This is actually one criteria that I will NOT be evaluating in these tests, as appearance is very subjective. A case that I think is beautiful may indeed be the ugliest thing you ever saw, and vice-versa.
However, it is something that YOU will likely want to factor in, especially if you intend to use the Raspberry Pi as a Media Center or as a Personal Computer where the appearance of the enclosure needs to blend in with the rest of your equipment.
You will, of course, need to balance appearance with the other criteria mentioned here. I’ll leave that up to you!
Based upon the above I will be evaluating several Raspberry Pi 4 cases for the following criteria:
- GPIO, microSD and Connector Access
- Heat Dissipation
- RF Shielding
Here is how I will perform those tests:
GPIO, microSD and Connector Access Testing
This is really the simplest test as it is just an observation. I will see if we have access to the GPIO and other connections when the enclosure is assembled.
Access to the microSD card will also be evaluated by attempting to replace the card once the case is assembled.
This test may or may not be relevant to your application. If you intend to use the Raspberry Pi as a Media Center, for example, you probably don’t require GPIO access and you’ll likely keep the same microSD card in the unit for its entire life.
If, however, your application requires a camera then you’ll definitely want to be sure that you have access to the CSI connector.
If you are covering your Pi to protect it and want to use it for a number of experiments you’ll need access to all of the connectors.
Heat Dissipation Testing
This is an important factor to consider for almost every Raspberry Pi application. Not only can excessive heat reduce the performance of your Raspberry Pi, it can also shorten its lifespan.
The Raspberry Pi 4 can run hot – very hot. A firmware update released in 2019 has improved upon this somewhat, but it is still important to have some method of dissipating heat.
In order to test the heat dissipation on the Raspberry Pi I will be using an application called Stressberry. I’ll show you how to set that up shortly.
RF Shielding Testing
Shielding the RF signal will affect the performance of both Bluetooth and WiFi. I am only testing WiFi performance, but it is likely that the results for the 2.4 GHz WiFi will also be reflected in Bluetooth performance as they use a similar frequency.
There are a number of ways to test WiFi performance. You can measure signal strength, measure the data transfer rate or perform a “real world” test by running a 4K video from a remote server on the same network as the Raspberry Pi is attached to.
I chose to measure signal strength and data transfer rate.
For signal strength I used a command-line utility that scans the WiFi networks (both 2.4 GHz and 5 GHz) and produces a wealth of information.
To test network data transfer I’ll be using a utility called iPerf.
I’ll show you how to set up all of this in a moment, but first let’s take a look at the different cases that I’ll be evaluating today.
Raspberry Pi 4 Cases
Obviously there are hundreds of cases made for the Raspberry Pi 4, so I could hardly test even a fraction of them. So I selected a variety of cases made of plastic, acrylic, aluminum and combinations of materials. Some have heatsinks (one is,effectively, a big heatsink), some have fans and several have both.
Here are the enclosures I tested.
Official Raspberry Pi Case
The official Raspberry Pi Case is a very simple plastic chassis. The entire case consists of a base unit, a removable top and four rubberized “feet” that stick on the base. Assembly time is easily under a minute.
The case has openings for all of the external connectors, plus a slot at the bottom to allow the microSD card to be exchanged. A plastic bezel allows you to observe the power and activity LEDs.
As the top can be removed this case can allow connection to the camera, display and GPIO connectors.
No fan or heatsink is provided with this case.
Pimoroni Heatsink Case
The Pimoroni Heatsink Case is literally a huge heatsink that you sandwich your Raspberry Pi into. It comes in two pieces, a bottom and top heatsink, along with some thermal pads.
The case has openings to allow access to the camera, display and POE connectors – you would need to insert cables into these connectors and thread them through the top heatsink before installing the Raspberry Pi. The top is shaped to allow easy GPIO access.
GeeekPi ABS Case
Yes, that’s actually the correct spelling of GeeekPi!
This is an ABS plastic case that comes with both heatsinks and a fan. The case comes in three pieces, a bottom plate, a shell that snaps onto the bottom plate and a top plate that also holds the fan.
If you need to install a HAT or require access to the connectors you can omit the top plate and gain access to the GPIO and all of the internal connectors.
The fan is a fixed speed, 5-volt device that has two female Dupont pins to fit it onto pins 4 (+5V) and 6 (GND) of the GPIO. It, therefore, runs as long as the system is powered.
You could also use the 3.3-volt output (GPIO pin 1) to reduce the speed, and the noise, of the fan.
Eleduino Aluminum Case
This is an aluminum case that comes with a small fan. It comes with the top and bottom and side plates, all connector openings are clearly labeled, and the micro SD card is accessible.
The case also has a slot beside the GPIO, I would assume that you could connect a 40-pin ribbon cable to the GPIO and bring it out. Of course, if you don’t need all 40-pins (which is seldom necessary) you could just bring out the connections you need on individual wires.
This is another case with a fixed-speed fan that connects to the GPIO power pins.
Smraza Pi 4 Case
This is an interesting case in that it consists of several layers of acrylic. It comes with both heatsinks and a small fan. This case also includes a USB-C power supply with an integrated power switch, which is a nice touch.
The case has openings to allow access to the internal connectors, although you wouldn’t be able to install a HAT. It also has ventilation holes on the bottom.
As with the previous cases the fan is connected to either the 3.3-volt or 5-volt pins on the GPIO.
Argon 1 Pi 4 Case
This is a fairly expensive case, but it also is by far the highest quality enclosure I’m testing. It also has a number of features that the other cases simply don’t have.
The Argon 1 case is constructed of Aluminum, except for the base which is made of plastic. It comes with a temperature-controlled fan preinstalled on a circuit card, which plugs into the GPIO. The GPIO connections are extended so that they are all accessible from under a removable plate at the back of the case.
The Argon 1 also has a power switch on the back of the case, and the power switch can also be used to put the Raspberry Pi in standby mode or to reboot it.
Heat Dissipation Testing with Stressberry
Stressberry is a utility that runs under Python and can exercise the Raspberry Pi under stress, to check its heat dissipation.
Stressberry makes use of a utility called “stress”, and you’ll need to install this as well.
Stressberry runs under Python 3, so you may also need to make that the default version on your Raspberry Pi. The recent versions of Raspbian (the operating system for the Raspberry Pi) come with both Python 2 and Python 3, but by default Python 2 is run from the command line. You will need to change that.
First you’ll want to see what version you are running at the command line. Open a Terminal session and type
and press Enter. The current version will be printed.
If you are running Python 2 then you will need to edit the .bashrc file to change that. You can do that as follows:
- At the command line type the following:
1nano ~/ .bashrc
- The Nano editor will open with the contents of the existing .bashrc file. If you get a blank file instead exit nano (Ctrl-X) and check that you spelled the previous command correctly. Make sure you typed a period at the beginning of the file name.
- Use your down-arrow key to scroll down to the bottom of the file.
- Add the following text to the bottom:
- Exit by pressing Ctrl-X. Respond yes (Y) to save the file.
- Reboot your Raspberry Pi.
You should now check the version again to ensure that you’re running Python 3.
Next we need to install the stress utility. At the command line type sudo apt install stress and press Enter.
Once this is installed we can finally install Stressberry. As Stressberry is a Python package we will use PIP, the Python package manager. Since we are using Python 3 we will use PIP3.
Type pip3 install stressberry and press Enter. The package will be installed. After you are finished you can reboot and you’re ready to stress-test your Raspberry Pi.
Stressberry has two functions:
- It runs a stress test that can take over 10 minutes.
- It can create a plot with the data it obtained from the stress test.
You run the stress test from the command line using the following command:
Replace filename.dat with the name you want to assign your output file. This is the file that will hold all of the test results. The .dat extension should be used.
Stressberry will run the tests after it brings the Raspberry Pi up to a stable temperature. It can take ten minutes or more to complete all the tests. During testing the CPU speed will be displayed, and if CPU throttling takes place you’ll observe a speed reduction.
The resulting file will be in the directory you run the program from, usually your home directory. You can examine it with a text editor if you wish.
To make more sense of the data you can create a plot and save it to a PNG image file. At the command line type the following:
stressberry-plot filename.dat -o filename.png
The filename.dat is the name of the file you created when you ran Stressberry. The filename.png is the name of the png file you wish to create.
I’ll be running Stressberry on all of the enclosures I’m testing, you’ll see the results later in this article.
WiFi Testing with iPerf
iPerf is a utility that can measure network throughput on an IP network. It can be used with wired and wireless networks.
iPerf needs to be run on at least two computers. One computer will run iPerf in server mode, the other computer(s) will run as a client.
You can obtain iPerf for Linux, Windows, Mac OSX, Android and iOs, so it can run on virtually any device.
You’ll need to install iPerf on both the Raspberry Pi and on another computer, which will act as a server. Ideally the server computer should be attached to your network with a wired connection, as opposed to using WiFi. Otherwise the readings you’ll receive will reflect the WiFi performance of that computer as well, instead of just the Raspberry Pi.
To install iPerf on the Raspberry Pi open the Terminal and type the following at the command line: sudo apt-get install iperf and then press Enter.
If your server computer is also a Linux computer (as mine was) then you’ll do the same thing there to install iPerf. Otherwise, you can download the iPerf program from their website and install it.
You need to run iPerf on your “server” machine first. For best results you should not be running any other applications that involve networking (ie. a web browser) while you run iPerf.
Before you run iPerf you’ll need to determine the IP address of the server machine, as you’ll need that to run the iPerf client. Note that this is your computer’s local IP address, not the network one assigned to your router.
If your server machine is a Linux computer you can run iPerf at the command line. Type the following: iperf -s and press Enter.
If you are using a computer with another operating system the procedure will be different, some of these versions have a GUI and some use the command line. Follow the instructions for your OS.
Once the server is running go back to the Raspberry Pi and type the following to run an iPerf client. Iperf -c XXX.XXX.XXX.XXX where XXX.XXX.XXX.XXX is the IP address of your iPerf server.
After a few seconds you’ll get an answer back, as illustrated above, which shows the amount of data transferred and the bandwidth achieved.
Incidentally, if you’re wondering about the first reading I obtained that was with the Ethernet cable plugged in. I did this to establish the maximum possible rate one could get, knowing fully well that on WiFi you could never achieve that speed.
The second test was on the 5 GHz WiFi network, notice the bandwidth reduction when using WiFi as compared to direct networking. This is why for network-intensive applications, like a personal computer or media center, you are always best using a wired connection.
Scanning WiFi Networks
One other test I performed is a WiFi scan. You can do this from the command line in Raspbian, and you don’t need to install any additional software as you just use a built-in Linux command.
Open a Terminal window and type the following: sudo iwlist wlan0 scan and press Enter.
The scan will take a couple of seconds and will then display a wealth of information regarding every WiFi connection available to your Raspberry Pi, including networks that you do not have access to.
Scan through the results and identify the network(s) that are yours, you’ll likely have separate 2.4 and 5 GHz networks. You can identify your network with its ESSID name.
Above the name you’ll see the signal strength and signal quality. These are the parameters I’m recording for all of the enclosure tests.
So now that we have our testing tools in place let’s see how the different cases affected the performance of our Raspberry Pi.
So I ran Stressberry, iPerf and the WiFi network scan on all of the cases – or at least I tried to! One of the enclosures had a problem that prevented me from getting any data.
I performed the WiFi tests three times on each enclosure and took the average results, as WiFi performance can vary over time.
Read on and see how it all turned out.
“Naked” Raspberry Pi
In order to establish a reference for the other test results I tested the Raspberry Pi without a case first.
As the Stressberry graph shows the Raspberry Pi without any fan or heatsink gets hot – very hot. During the Stressberry test I noticed the CPU speed dropping, which indicated CPU throttling was occurring.
The WiFi performance was very good, as might be expected as there was no case to interfere with the radio waves. As I had the Raspberry Pi sitting on a mousepad with nothing to lift it up this may have slightly affected the radio performance, as the antenna is on the underside of the circuit board.
So, with a base test established we can now compare the results of the Raspberry Pi in the various enclosures.
Official Raspberry Pi Case
This one definitely wins the award for the simplest assembly, you just drop the Raspberry Pi into the bottom and snap on the top. If it takes you more than a minute to build this then you’re doing something wrong!
The results of the thermal dissipation tests using Stressberry were disappointing, to say the least. The Raspberry Pi actually ran hotter than it did running “naked”, which actually was expected as the case has no serious ventilation and essentially traps the heat in. The plastic case became warm to the touch on both the top and bottom. A great deal of CPU throttling was observed, if you plan on using your Raspberry Pi as a desktop computer or media center this is definitely NOT the case to use!
Radio performance, however, was fantastic – in fact it exceeded the performance of the Pi by itself. This is possibly because the board is elevated when it is inserted into the case, raising the antenna slightly.
Of course, you could also use this case without a top, which would aid in venting some of the heat.
Pimoroni Heatsink Case
This case was also very easy to assemble, the only difficulty I experienced was in preparing the thermal pads – I found the adhesive difficult to work with. And it didn’t really “stick” to anything. However, by placing the thermal pads on the posts on the top heatsink and inserting the Raspberry Pi upside-down assembly was otherwise very simple.
The thermal performance of this case was very good, hardly surprising as it literally turns the Raspberry Pi into one huge heatsink!
One surprise was the 5 GHz WiFi performance, it was actually very good despite the antenna being covered by the aluminum heatsink. As the heatsink is not grounded I suspect (but this is only speculation) that the heatsink may have been acting as a sort of antenna.
At 2.4 GHz the WiFi was degraded. As Bluetooth uses the same frequency range this could also mean that Bluetooth performance won’t be as good with this case.
GeeekPi ABS Case
Assembly of this case was very simple, it just involved mounting the Pi to the base, snapping on the sides, mounting the fan to the top plate, connecting the fan and snapping on the top plate.
The fan is a relatively large 5-volt muffin fan, which has two leads to connect to the GPIO. It can be connected to the 5-volt or 3.3-volt power lines, I chose the 5-volt so that it would run at full speed. The fan runs as long as the Raspberry Pi is powered up.
The performance of this case was great, it really cooled down the Pi during the Stressberry test.
RF performance was also great, probably due to the ABS plastic construction.
The only issue I had with this case was the fan noise, I found its high-pitched sound to be a bit irritating. It may indeed have run quieter if it had been connected to the 3.3-volt supply.
The mounting holes on the bottom of the case might come in handy if you wanted to wall-mount your Raspberry Pi, however I’d use caution using them with metal screw heads as you’d come dangerously close to touching the underside of the Raspberry Pi circuit board.
Eleduino Aluminum Case
I had a lot of difficulty with this case, in fact my Raspberry Pi 4 would not work when it was mounted in it.
The assembly is pretty basic and it looked like a reasonable quality case. It even came with a small screwdriver, which I thought was a nice touch. The Pi mounts on the base, the fan on top and you connect the fan to two of the pins on the GPIO.
Everything seemed to line up, nothing was shorted and I connected the cables to it. I did think that it was a little hard to get the micro-HDMI cable inserted, but it did it eventually.
I powered it up and watched my display. I did indeed get the (four raspberries) during boot-up, but then the HDMI signal just died.
I took it apart and tried out the Raspberry Pi by itself, it wasn’t damaged and seemed to work fine. I then mounted it on the baseplate of the case and gave it a visual check to be sure that nothing was shorting or touching the case.
This time I didn’t even get a display at all!
I brought out another micro-HDMI cable to test it out, and while I was trying to fit it I saw what the problem actually was.
The issue is that the openings for the micro-HDMI jacks are not big enough. The case prevents you from inserting the cable all the way in.
After I discovered that I looked at a few Amazon reviews and many people reported the same issue. So I didn’t get a defect, it’s a design flaw.
It’s a shame, as it’s a nice looking case and it seems pretty solid. But it’s unusable for my purposes, and I can’t display any test data for it.
You may, however, want to consider this case if you are operating your Raspberry Pi in “headless” mode, with no video monitor connection. The mounting holes on the base would make it easy to wall-mount this unit.
Smraza Pi 4 Case
This eclectic-looking case was a bit of a challenge to assemble, at least it was for me. You build it up layer-by-layer, not inserting the screws until the final step. In retrospect, they could have had you put two of the four mounting screws in backward to hold it together during assembly. If you build one yourself you might want to try that.
Performance, however, was great. The Stressberry test shows just how cool it ran, nearly as cool as the GeekPi case. The slight difference here was probably the fan size, this case uses a smaller fan.
RF performance was also on the same level as the GeekPi, official Raspberry Pi case and a “naked” Raspberry Pi. Not really surprising considering its acrylic construction.
Unlike the GeekPi the fan was very quiet, hardly noticeable with normal ambient noise.
Argon 1 Pi 4 Case
As I mentioned earlier this case is quite different from the other ones, and it shows in the assembly.
The components are high-quality and the assembly guide is very good. But they also require precise fitting, I have to admit that I found inserting the Raspberry Pi into the case and lining up the GPIO pins to be rather difficult – at least I struggled with it. And adding the extender card to the A/V and HDMI pins also was a tight fit.
But once I had it together it was a solid assembly.
The power switch is one of the many features I like about this enclosure, although it could use a bit more tactical feedback, in fact, I was worried that mine was broken or jammed but it turns out that it is just the way it was designed. It worked properly when I had it all together.
Those criticisms aside, this is a superb enclosure. It turns the Raspberry Pi into a real small computer, with all of the connections at the back and a multi-function power switch. The GPIO access is great, although you could not directly plug a HAT into it, you not only get access to the entire 40-pin GPIO, the pins are labeled and color-coded.
Unlike the other enclosures this case requires you to install some software, this activates the power switch functions and provides temperature control for the fan.
The Stressberry data shows just how well the enclosure dissipates the heat from the Raspberry Pi. And, most amazing, it did all of that without the fan! The fan is designed to come on at a 10% speed at 55 degrees Celsius, however, even under the maximum stress the temperature never exceeded 50 degrees.
The WiF performance, however, was the worst of all of the enclosures I tested, likely due to the amount of aluminum used in the case. I thought the plastic bottom might help, as the Raspberry Pi 4 has its antennas located underneath the circuit board, but it didn’t seem to.
For applications dependent upon WiFi and Bluetooth this case would not be the best choice. But for an application with wired Ethernet, or no networking requirement at all, this would be an exceptional case.
Here is a table that summarizes the results of my testing:
Due to the problem I had with inserting a micro-HDMI cable into the Eleduino case I was unable to test it. While I could have done it using a remote desktop or SSH I did not, as it would have skewed the WiFi results to some degree. Plus I do feel that a Raspberry Pi case should allow access to all of the external connectors. For applications that run the Raspberry Pi in headless mode this may well be a fine case to choose, it does seem very rugged and it can be wall-mounted.
As for the other cases, most of them offered a vast improvement in heat dissipation over the “bare” Raspberry Pi. The exception here was the Official Raspberry Pi case, which actually made the thermal issues even worse. This could be improved upon by taking the top off the case and/or adding some small heatsinks. For WiFi performance, however, this case offered the best performance at 5 GHz.
The Pimoroni Heatsink case surprised me with its 5 GHz WiFi performance, despite enclosing the entire board in aluminum it actually allowed very good data transfer. It did attenuate the signal at 2.4 GHz however, which could also impact Bluetooth performance.
The GeeekPi ABS case was pretty nice, it had good performance all around and I thought it was very attractive. My only complaint about this case was the fan noise was rather irritating, however, I ran it at 5-volts and it would likely have been quieter at 3.3-volts. Of course, using the lower voltage would probably have decreased its thermal dissipation qualities. To be fair, I have heard computers that have had much noisier fans, so some people may not be bothered by this to the degree that I was.
My favorite case, and the one I’m keeping my Raspberry Pi in, was the Argon 1. It looked great and had features that turned the Raspberry Pi into a true desktop computer replacement. On the downside, it was the most expensive case I reviewed and it had very poor WiFi performance. In my intended application (I’m building a digital dashboard to drive two television screens) I’ll be using wired Ethernet and I don’t require Bluetooth, so I love this case.
If I had to pick the “best value” it would go to the Smraza case. Its construction with the layered acrylic is a bit odd, and may not appeal to some people, but otherwise, it scored excellent on everything. It had great thermal and WiFi performance, allowed reasonable access to the GPIO, display and camera connectors and even came with a power supply that included a power switch. For those intending to use the Raspberry Pi as a desktop computer or for a high-CPU or graphics application it would be a great value, as it is a fraction of the cost of the Argon 1.
It’s obvious from my testing that the performance of the Raspberry Pi 4 can be greatly influenced by the case you mount it into.
Now, of course, there are hundreds of enclosures that I didn’t test, including the popular Flirc case. And my networking tests were done in my basement workshop environment, which will be different from the environment you use your Raspberry Pi in. I wouldn’t put much faith in the network numbers I achieved, use them instead as relative ratings.
Hopefully the data I’ve provided here, as well as the instructions for using Stressberry and iPerf, will help you evaluate a case for your own Raspberry Pi.
Stressberry – The Stressberry Python application on GitHub
iPerf – The iPerf application website. You can get iPerf for almost any platform here.