KKSB is a Swedish company designing and manufacturing metallic products for various open-hardware products such as single board computers including Raspberry Pi, Arduino, ODROID, Orange Pi and others, as well as mobile phone and tablet stands, and they also have a mini-ITX case planned for March.
The company approached CNX Software to review their latest Raspberry Pi 4 case, and I was interested to find out how it would handle cooling.
KKSB Raspberry Pi 4 Case Aluminum Unboxing
So I recently received the enclosure in a mostly white package.
The case comes in two parts as well as a thermal pad for the processor, mounting screws, rubber pads, and two plastic bits for the LED.
Aluminum Case Assembly
First, peel over the plastic film on one side of the thermal pad, and place it on the extrusion for the processor on the top part of the enclosure.
Remove the second plastic film from the thermal pad, and place the Raspberry Pi 4 on top so that the processor comes in contact with the thermal pad. Place the bottom part on top, and tighten it with the four screws.
You’ll notice a small opening on the side for a ribbon cable for people wanting to make use of the GPIOs. There are also two holes for wall-mounting and three more cutout lines that must be to let the WiFi signals go through (I can confirm WiFi is still working).
We just need to stick the four rubber pads on the bottom of the case, and glue the plastic bits for the LED to complete assembly.
There’s another opening on top of the MicroSD card and LEDs that should be for the MIPI CSI camera and/or the MIPI DSI display.
Upgrading Raspberry Pi 4 OS and Firmware
Before testing, I updated Raspbian and firmware to the latest version with apt:
1 2 |
sudo apt update sudo apt full-upgrade |
Note that I had to make some changes first due to issues with rpi-monitor hosting server.
Here are the various versions of Linux kernel, Raspbian operating system, and ThreadX and VLI firmware installed:
1 2 3 4 5 6 7 8 9 10 11 |
pi@raspberrypi:~ $ uname -a Linux raspberrypi 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l GNU/Linux pi@raspberrypi:~ $ cat /etc/issue Raspbian GNU/Linux 10 \n \l pi@raspberrypi:~ $ sudo /opt/vc/bin/vcgencmd version Feb 10 2020 15:15:59 Copyright (c) 2012 Broadcom version d21c2d51634b793e0b0ce2816c4e3d1cf0d87e6b (clean) (release) (start) pi@raspberrypi:~ $ sudo ./vl805 VL805 FW version: 000137ad |
Let’s access RPI-Monitor in our web browser and wait until the CPU temperature stabilizes. Note the room temperature is around 28°C.
The left of the chart is idle temperature after several hours after the update, and once we reboot and the new firmware takes effect we can see the temperature drop.
Benchmarking Raspberry Pi 4 Clocked at 2.0 GHz
One thing I forgot was that one of the last tests I did with Raspberry Pi 4 was to overclock it to 2.0 GHz, so it was still in this state when I first tested it. No problem, let’s try one of the worst cases first (now it even support overclocking up to 2.1 GHz).
I then installed & started to run the latest version of sbc-bench script:
1 2 |
wget https://raw.githubusercontent.com/ThomasKaiser/sbc-bench/master/sbc-bench.sh sudo /bin/bash ./sbc-bench.sh -c |
But stopped waiting a bit longer for the temperature to stabilize at around 57°C. Let’s start the benchmark again:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
sudo /bin/bash ./sbc-bench.sh -c sbc-bench v0.6.9 Installing needed tools. This may take some time... Done. Checking cpufreq OPP... Done. Executing tinymembench. This will take a long time... Done. Executing OpenSSL benchmark. This will take 3 minutes... Done. Executing 7-zip benchmark. This will take a long time..../sbc-bench.sh: line 600: 8767 Killed taskset -c 0 "${SevenZip}" b -mmt 1 >> ${TempLog} ./sbc-bench.sh: line 600: 9359 Killed "${SevenZip}" b >> ${TempLog} Done. Checking cpufreq OPP... Done. ATTENTION: Throttling has occured. Check the log for details. Memory performance: memcpy: 2749.1 MB/s memset: 3849.9 MB/s (0.4%) 7-zip total scores (3 consecutive runs): 6812,6802 OpenSSL results: type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes aes-128-cbc 83440.74k 102325.48k 110827.95k 112927.06k 113691.31k 113694.04k aes-128-cbc 83502.68k 102320.15k 110830.25k 113049.60k 113582.08k 113715.88k aes-192-cbc 75067.08k 89847.70k 96032.60k 97818.28k 98020.01k 98265.77k aes-192-cbc 75068.33k 90023.70k 95905.37k 97696.77k 98287.62k 98249.39k aes-256-cbc 68007.97k 80099.16k 84809.81k 86202.37k 86611.29k 86611.29k aes-256-cbc 68080.77k 80098.73k 84930.65k 86020.78k 86578.52k 86567.59k Full results uploaded to http://ix.io/2bnS. Please check the log for anomalies (e.g. swapping or throttling happenend) and otherwise share this URL. |
If we look at the log we can see the 7-zip multi-threaded test crashed once due to running out of memory on my 1GB RAM RPi 4. The throttling bit is set but it must have been a very short time since it does not show in the frequencies displayed in the log:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
System health while running 7-zip multi core benchmark: Time fake/real load %cpu %sys %usr %nice %io %irq Temp VCore 15:15:40: 2000/2000MHz 4.78 7% 1% 6% 0% 0% 0% 71.1°C 0.9938V 15:16:00: 2000/2001MHz 4.57 84% 2% 81% 0% 0% 0% 76.0°C 0.9938V 15:16:48: 2000/2000MHz 5.28 96% 50% 44% 0% 0% 0% 76.4°C 0.9938V 15:17:08: 2000/2000MHz 4.64 83% 3% 80% 0% 0% 0% 78.4°C 0.9938V 15:18:03: 2000/2001MHz 5.54 96% 50% 45% 0% 0% 0% 79.9°C 0.9938V 15:18:23: 2000/2000MHz 5.10 84% 2% 81% 0% 0% 0% 80.3°C 0.9938V Querying ThreadX on RPi for thermal or undervoltage issues: 0100000000000000000 ||| |||_ under-voltage ||| ||_ currently throttled ||| |_ arm frequency capped |||_ under-voltage has occurred since last reboot ||_ throttling has occurred since last reboot |_ arm frequency capped has occurred since last reboot |
The chart also shows the temperature peaked at around 80°C.
Benchmarking Raspberry Pi 4 at stock 1.5 GHz clock
Let’s disable overclocking reboot, and wait for CPU temperature to stabilize (around 51C this time), before restarting sbc-bench.sh:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
sudo /bin/bash ./sbc-bench.sh -c sbc-bench v0.6.9 Installing needed tools. This may take some time... Done. Checking cpufreq OPP... Done. Executing tinymembench. This will take a long time... Done. Executing OpenSSL benchmark. This will take 3 minutes... Done. Executing 7-zip benchmark. This will take a long time..../sbc-bench.sh: line 600: 5522 Killed taskset -c 0 "${SevenZip}" b -mmt 1 >> ${TempLog} ./sbc-bench.sh: line 600: 5783 Killed "${SevenZip}" b >> ${TempLog} ./sbc-bench.sh: line 600: 5928 Killed "${SevenZip}" b >> ${TempLog} ./sbc-bench.sh: line 600: 6057 Killed "${SevenZip}" b >> ${TempLog} Done. Checking cpufreq OPP... Done. It seems neither throttling nor frequency capping has occured. Memory performance: memcpy: 2662.5 MB/s memset: 3436.9 MB/s (0.4%) 7-zip total scores (3 consecutive runs): OpenSSL results: type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes aes-128-cbc 62549.75k 76757.59k 83105.54k 84516.52k 85240.49k 85224.11k aes-128-cbc 62538.52k 76772.86k 83095.47k 84608.68k 85142.19k 85180.42k aes-192-cbc 56479.84k 67217.86k 72106.92k 73357.99k 73613.31k 73657.00k aes-192-cbc 56287.55k 67448.51k 71992.75k 73364.82k 73711.62k 73591.47k aes-256-cbc 50963.86k 60062.68k 63540.99k 64658.77k 64932.52k 64929.79k aes-256-cbc 50868.59k 60066.30k 63686.23k 64503.13k 64940.71k 64951.64k Full results uploaded to http://ix.io/2bo4. Please check the log for anomalies (e.g. swapping or throttling happenend) and otherwise share this URL. |
Not throttling detected at all this time, and the temperature chart looks good with the CPU temperature never exceeding 66°C.
Conclusion
KKSB Raspberry Pi 4 aluminum case does a good job of cooling the board even when overclocked. WiFi still works, and the case provides openings for GPIO’s and MIPI CSI/DSI modules, as well as mounting holes. The company sells it for 31.92 Euros on their website. If you think that’s a bit too expensive, the KKSB Raspberry Pi 4 case black/silver is also made of metal, sells for only 15.12 Euros but lacks the extrusion for cooling the processor, so you’d have to add your own heatsink and cooling will not be as efficient.
You’ll also find cheap Raspberry Pi 4 aluminum cases on eBay, but note that many of them come with a fan, lack the extrusion for cooling the processor, the openings for GPIO and MIPI cables, and may interfere with WiFi. Just make sure to double-check the features that are important to you.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
Again an enclosure that only takes care about the SoC’s heat dissipation while the PMIC area is the other hot spot that benefits from adequate cooling as well. The thermal images here for example https://www.raspberrypi.org/blog/thermal-testing-raspberry-pi-4/ clearly show the problem.
Not blaming Microsoft’s ThreadX here for the overheating 🙂
By simply placing the processor on the bottom of the board, effective cooling could have been provided with just a thermal pad — no extrusion, no heatsink.
Looks like they did a good job with what they were given.
As Friendlyelec was advised to do and started the trend.
I still maintain that you should use active cooling if you’re using it in a desktop or high CPU load situation. I run a inaudible fan case on mine with heatsink on all the hot chips and only rise 25C over ambient when running SBC Bench at default clocks. Idle temps are 6-8C over ambient. I haven’t tried OCing but I suspect it’d be fine and wouldn’t come close to throttling.
Fans are only a solution to saves *space* while trading noise and long-term reliability. When you can achieve a comparable result without a fan it’s always a better solution.
> only rise 25C over ambient when running SBC Bench at default clocks.
33°C over ambient here with a slight ‘overclock’ to 1850 MHz (at 0.9V) and a complete passively cooled enclosure comparable to the one reviewed above: https://www.cnx-software.com/2020/01/29/raspberry-pi-4-benchmarked-with-32-bit-and-64-bit-debian-os/#comment-570469
So what’s the point having a fan?
Well, as you pointed out, only the main chip is being cooled here. A fan is most likely passing air over the entire board. It was also far cheaper than what was reviewed here.
https://www.amazon.com/gp/product/B07T2CPC2H/
Better cooling for less money.
> only the main chip is being cooled here
Sure, but there exist passive enclosures which cost a fraction of the above solution that take care of that (hint: I linked to such a thing directly above)
Well, it’s your choice, but mine is both fanless and cheaper: https://www.ebay.com/itm/CNC-Aluminum-Alloy-Protective-Case-Kit-Enclosure-Metal-Shell-For-Raspberry-Pi-4/163793095855
Plus 3cm fans become extremely noisy after a few months of work and possibly generate as much heat as they are able to move. As long as it meets your expectations it’s fine though.
If it makes no noise it cant be good kinda logic???
You don’t need a 7000 rpm jet fan to cool it. Just a gentle air flow is enough. It’s under 10 watts at 100% load.
10W? 2A at 5V?
What most of the reviews of Raspberry Pi cases are missing is whether or not the PoE Hat can be used with the case! I now have 2 different aluminum Pi4 cases that do not allow use with the PoE Hat.
Probably because of the board’s design, if the hat goes over the CPU there’s no more room for a heat sink nor for a thermal connection to the outside world. I tend to think that using a very large and very soft silicone thermal pad on the bottom could drain most of the heat from the PCB itself. It would also collect part of the heat generated by the PMIC. I’ve already experimented with sucking heat from the other side on some boards (e.g. NanoPi Fire3), and it doesn’t work that bad. You just need to use a very large pad.
So hopefully Pi day Saturday March 14th will bring a Pi4″B” with its processor on the bottom.
A good , cheap passive heat sink should be also in the offing.
Not asking for an M.2 NVME slot even…
> Not asking for an M.2 NVME slot even
Most probably some future RPi comes with such a way to expose the BCM2838’s PCIe lane prior to SoC position that requires a metal case or huge metallic heat sink at the bottom.
Currently the SoC’s single PCIe lane is ‘wasted’ to connect a good USB3 host controller while the initial DT submission showed:
So if there is an internal XHCI controller inside the SoC and they manage to get this thing to work somehow in the future they could free the PCIe lane for other purposes (and can again lower temperatures/consumption a bit since currently the PCIe PHYs add to the overall board’s consumption)
> if there is an internal XHCI controller inside the SoC and they manage to get this thing to work somehow
The implementation is Hi-Speed only and was never meant to be used by the RPi people according to https://github.com/raspberrypi/documentation/issues/1217#issuecomment-538081361
So no M.2 or mPCIe slot without a newer VideoCore SoC from Broadcom…