The New Raspberry Pi 400 Beats Its Predecessor in Energetic Efficiency
Comparing the performance of Raspberry Pi 400 vs. model 4B by monitoring the CPU temperature in real time
This practical demonstration is based on the article part 4: Monitoring Raspberry Pi 4 performance in real time, the last of the mini-book titled Hands on Development with Raspberry Pi 4. This serie covers the Raspberry Pi setup (part 1), installing Docker and Docker Compose (part 2), deploying Theia IDE using Docker (part 3) and monitoring RPi sytem metrics with the TICK stack (part 4 mentioned above).
The goal of this article is to describe a quick hands on exercise to acquire the insight of how much less heating the Raspberry Pi 400 is compared to its predecessor, the RPi4 model B. And for that we will use all what we learn in the four articles of the mentioned serie.
Quick overview of the Raspberry Pi 400
The new model of Raspberry Pi was born from the fusion between Raspberry Pi keyboard and the most recent model 4B of this popular board. What the Raspberry Pi Foundation has done is to put a Raspberry Pi 4 inside the casing of the Pi keyboard.
From outside it seems just a keyboard, except when you look at the back side and find the typical connections that you can see in any Pi board: the slot for the microSD card, one USB-C power input, two microHDMI ports, two USB 3.0 ports, one USB 2.0 port, the RJ45 ethernet connection and the 40 interface GPIOs.
This simple upgrade has made Raspberry Pi finally become an off the shelf computer suited for working in common office tasks. It’s like pushing it out from the geek world and make it reach the general public, becoming a low cost portable computer to be used for web navigation, e-mail and document editing.
But what’s there’s inside is not just the tiny Pi 4, but an upgraded version, i.e. Pi 400 board, that adds the following improvements over its predecesor:
- Clock speed increases up at 1.8 GHz, vs. 1.5 GHz of the former Pi 4. In some Phoronix benchmarks Pi 400 has shown to be 18% faster thanks to this improvement.
- The 400 is more energetic efficient than Pi 4B because it has been found that it doesn’t overheat when overcloking to 2.147 GHz. This efficiency applies also to the normal clock speed, and it means a longer life for the board.
In summary the thermal performance has improved overall, and this is what we want to check with the experimental setup that supports the quantative results of this article. Additionally, in the annex we will give you the details so that you can reproduce it with your own board.
In the case you are interested in knowing more in depth the Raspberry Pi 400 hardware, you can read this excelent article by Jeff Geerling, showing several images of what you can see if you open the casing of the keyboard.
Now it’s time to go to the test and measure the CPU temperature of both models under the same physical enviroment and software load.
What factors influence the CPU temperature?
First of all let us enumerate the main factors that affects the heating of the board:
- Air temperature. This is the more relevant aspect since it establishes the theoretical minimum temperature in the case of an ideal fan cooling system, i.e. you could never cool down the board below the air temperature (unless you use liquid cooling).
- CPU thermal dissipation, that is a function of the CPU SoC (System On Chip) design and the software processes running in the board. We will let the Pi reaching the permanent regime after starting the operating system, i.e. Ubuntu Mate 20.04, without any specific software task running.
- Raspberry Pi enclosure. The more closed the case, the more difficult to reduce the board heating, and hence the CPU temperature will be higher.
- Cooling system. It will typically be a small fan on top of the board. If so, we call this kind of heat dissipation system as forced cooling. The alternative is pasive cooling, where the air moves freely around the board, without forcing a current like with the fan. Hence, this last case has lower dissipation capability.
For the Pi4 model B we have a typical open case with a fan externally operated at 5V. The actual one used in our test setup is shown in the next figure:
For the Raspberry Pi 400 the enclosure is the keyboard case itself. Be aware of the fact that the Pi is inside a closed case, so its capability for dissipating heat will be lower than that of Pi 4B enclosure.
For our tests these will be the boundary conditions:
- Air temperature, 22°C at the time of the test.
- Physical characteristics of the CPU and enclosure, as per the images above.
- Forced cooling (fan) vs. passive cooling (no fan) for the RPi 4B.
- RPi 400 will operate with passive cooling in all cases.
Controlling these features we will be able to attribute CPU temperature differences to the physical characteristics of each board, and thus we will conclude which one is better from the point of the view of self-heating. The lowers self-heating, the lower power consumption (better energetic efficiency) and the longer life for the CPU itself.
Cooling performance comparison
In this section we provide the results of the experiments. For the reader interested in reproducing these results with his own Pi, you have the detailed steps in the annex at the end of the article.
First, let’s see how the temperature evolves in RPi 4:
- When running with passive cooling the CPU temperature is about 62º.
- Switching on the fan (forced cooling) the temperature reduces up to 46ºC.
Hence we can see how important is the cooling system for the board, accounting for 16ºC reduction.
If we wait some time so that the system achieves the permanent regime we can find that the CPU temperature stabilizes at that value. Check this fact in the following figure:
But the most surprising thing appears when running the test for the RPi 400, for which we only have passive cooling. The average temperature is 34ºC , that means 12ºC lower than RPi 4B with forced cooling. This reveals how much effort the Raspberry Pi foundation has made in the chip design to solve the overheating problem we found both in RPi 3, and even more in RPi 4.
Let’s recap and provide the conclusions from these results:
- Comparing the two boards in the same conditions (passive cooling), the CPU of the Raspberry Pi 400 is permanently at 34 ºC in average, while Raspberry Pi 4 is above 60ºC, i.e. more that 25ºC respect to the improved 400.
- In the best scenario, i.e. Raspberry Pi 4 with forced cooling, its CPU temperature is still 12ºC above the one of Raspberry Pi 400 (46ºC of the RPi 4B vs. 34ºC of the Pi 400).
The last part of the article provides the steps so that you can reproduce the test with your own board.
Annex: Replicate the results with your Raspberry Pi
First we will provide the details for the configuration of the hardware, then the software to run in both boards.
Raspberry Pi 400 demonstration setup
The Pi 400 board is embedded inside the keyboard case. Hence we have no particular hardware setup, everything comes packaged as is. Since there is no fan it works under passive cooling conditions.
For the Pi 4B there is some work to do: Select an enclosure and include a fan. Find the details in the next paragraph.
Raspberry Pi 4B demonstration setup
The Pi 4B is integrated with a SSD disk that runs the operating system. The details for making this setup are given in the first article of the serie that we mentioned at the beginning of the article, Part 1: Getting the most from Raspberry Pi 4
Next we introduce the hardware in one of the many commercially available enclosures. In our case we selected one that comes with a fan integrated on the top face. This provides the forced cooling when powering the fan, and passive cooling if switched off.
Once the hardware is in place and both Raspberry Pi’s are running under Ubuntu Mate 20.04, we can proceed to install and run the software that will provide the temperature measurements.
Installing the software in the boards
We will use the TICK stack, the measuring system described in the article Monitoring Raspberry Pi 4 performance in real time (part 4 of the serie mentioned at the beginning of the article).
Make sure you have installed Docker and Docker Compose in both borads. If not the case, please refer to Part 2: Installing Docker in Raspberry Pi 4 for detailed instruction. Then clone the code in the Raspberry Pi to a folder called CPU_temp:
$ git clone -b rpi4 https://github.com/therobotacademy/InfluxBD-Telegraf-Chronograph.git CPU_temp
This is the same repository mentioned in that article Monitoring Raspberry Pi 4 performance in real time. The only difference is that we are cloning the rpi4 branch, that contains the Telegraf configuration to acquire the CPU temperature.
Change to the folder of the repository, and type in the following command in order to deploy the Docker stack of containers:
$ cd TIC
$ docker-compose up -d
Once all services are running load the visualization tool (Chronograf) by visiting the URL http://RPi4_IP:8888.
Following the instructions in the referenced article Part 4: Monitoring Raspberry Pi 4 performance in real time, upload the file that contains the temperature dashboard definition, located at ./dashboards/Temperature_vs_CPU_load.json of the repository.
That’s all, you can now watch the nice graph that we showed in the results section. Before concluding the article, be aware of how we are recording the CPU temperature in the InfluxDB database. For that purpose we only need to add the line [[inputs.temp]] at the end of the INPUTS section of the Telegraf configuration file, i.e. telegraf/telegraf.conf. This line is the call to the Telegraf temp plugin, whose definition you can find at https://github.com/influxdata/telegraf/blob/release-1.16/plugins/inputs/temp
For upcoming articles regarding IoT projects, applications’ deployment using Docker, and work with Kubernetes in Raspberry Pi stay tuned to my Medium.com channel.