An experiment: A Raspberry Pi 4 for daily computing

Published: 2024-09-28

Recently I've started a small experiment: I want to try answering the question whether a modest Raspberry Pi 4 with 4gb RAM could be my daily computing device. This is a highly subjective topic, so the answer varies a lot depending on anyone's needs, don't take these opinions as a reference.

So, for a start I've formatted an SD Card using the latest Raspberry Pi OS 64bit (July 2024, at the time of writing).

§ The hardware

My Raspberry Pi 4 has 4gb Ram and was produced in 2018, before COVID so I paid an honest price at the time. I wished I had the 8gb model.

This Raspberry Pi does not support OpenGL 3.3 so I am missing opportunities to use the GPU in some contexts.

I use an XC SD card which has relatively good performances (a 32 Gib Samsung Extreme C10 V30 U3). It is possible to install a M.2 module (only through USB3) which performs much better than an SD card and has better reliability. However, that pales in comparison to using an M.2 SSD through a PCI Express lane, which however is available only on the RPi4 compute module or on the newer Pi 5. Note: NVMe drives or other power hungry PCI express technologies strongly recommend getting a full 12V DC external adapter, which kind of defeat the purpose of an embedded all-in-one device.

I've been monitoring the temperature for a bit. According to this article the Raspberry Pi 4 will aggressively throttle the CPU at around 80°C, which I want to avoid to further impact the already scarse performances:

CaseCPU temp (°C)
Normal load (Firefox, mpv)Heavy Load (rustc)
Joy-It case, no cooling61-63+80 (throttling)
Joy-It case, cooling (fans)38-4050-52
Neocase case, thermal pads42-4557

Fans give the best cooling but are quite noisy (a pair of cheap 3cm fans). "Heavy Load" in this context means keeping the CPU under stress for a few minutes. Using the Neocase it's easy to notice how effective is at dissipating heat, the case gets pretty warm.

§ The software

  1. Raspberry Pi OS ("RPiOS" from now on) is currently based on Debian 12 (bookworm). My current daily driver is Debian/testing (trixie) so RPiOS is not exactly the cutting-edge I'm used to. Some packages I use won't work out-of-the-box and need some tuning. RPiOS ships with Wayfire as the Wayland option but I couldn't make it work in a reasonable time. Installing my configuration (based on the Sway window manager) is not as straitghtforwarded as I wished, currently I boot to the linux console and then manually launch Sway.

  2. Rust: I'm quite sure that I won't be able to do my work compiling stuff in Rust. The compiler is just too much of a resource hog. I'll probably have to offload this work on a remote machine (my laptop is just fine).

  3. Firefox: Unfortunately another resource hungry application, one that I basically use the whole day. Disappointed to see that the Github website is really heavy on these devices. Starting from Firefox 116 the Webrender should at least allow fluid video playback. RPiOS ships with a slightly custom version of Firefox which I assume is optimized for the device (in particular it comes with a WebExtension that pulls from YouTube videos encoded with h264 instead of VP8/9). I think Chromium may have better performance but this browser is not an option for me, there's less room for customization which is needed to keep a sane experience (adblocking & Co.). I am using all sorts of extensions and websites that require less resources, but it's still just usable.

  4. Kitty terminal emulator: the Raspberry Pi 4 does not support OpenGL 3.3 and without hardware acceleration kitty runs visibly slower. I've switched to using foot and gave up on using tabs.

  5. Emacs: Emacs 28.2 (shipped in Debian/bookworm) does not correctly alias the foot terminal terminfo, the solution being applying a one-line patch to my config, see foot#1820 or upgrade to Emacs 29.x from the backports to Debian/bookworm (which I did). The initial byte-code compilation of my packages configuration is much slower (this was expected) but that's just on the first-time run. Other than that I don't see significant differences when using Emacs. I expect that coding in Rust with Rust Analyzer (the language server assisting coding) will be much slower.

  6. Waybar: the calendar widget is not working, due to a different Debian/bookwork library (see Waybar wiki).

§ Conclusions

I could just buy a Raspberry Pi 5 (maybe with 8gb) which on paper seems powerful enough to be a desktop replacement. It has, though, the disadvantage of requiring active cooling which would be a step back. See some benchmarks here.

First class filesystem performances are achieved with an M.2 SSD module plugged to the PCI Express lane (CM4 or RPi5) but that comes at a cost of an external power adapter.

Again, the experiment is about using a stock Raspberry Pi 4 as it is, without pimping it.