I have written several times already about the recently-released Raspberry Pi 4 Model B (see my first impressions, how-to setup, my hands-on experience, and my thoughts two months in). Now I'm going to look at one of the practical aspects that I think a lot of people have been wondering about - is it (finally) good enough to use as an every-day desktop system?
We've been through this several times before, when the original Raspberry Pi, the Pi 2 and the Pi 3 came out - and each time the answer was "only if you have enough patience". Although the amount of patience required decreased each time, it was still too slow on many everyday tasks, or too limited in configuration (primarily memory) for most people to be satisfied using it. So maybe this time it will make the grade?
SEE: How to build a successful developer career (free PDF)
I am going to look at several areas in this post that I think have an impact on the usability of the Raspberry Pi 4 Model B as a desktop system.
The first is software - assuming that you are going to use the Raspbian operating system, does it have the necessary utilities and applications to be useful? The second is performance (this is the one most people are interested in). Over the span of the previous Raspberry Pi models, we have gone from the original model, which would have required someone with the patience of Job to use it as a desktop system, to the Raspberry Pi 2 and 3, with each new system improving performance, but still not really performing at a level that most users would tolerate for everyday desktop tasks. So the hope now is that the Raspberry Pi 4 will be fast enough for the job. We'll see. Finally, I will look at some hardware considerations such as connectivity, peripherals and of course the latest round in CPU temperature issues.
In my opinion the Raspbian GNU/Linux operating system has been a success story in its own right over the past five years or so. When Simon Long was hired to take responsibility for the Raspberry Pi desktop it started a long, slow, careful improvement. Today I would say that Raspbian GNU/Linux is as good as pretty much any Linux distribution around, in terms of quality, completeness and stability. Yes, there are still a few irritating issues remaining (I would really like for my latest Logitech Bluetooth peripherals to work), but all in all it is really good, and the Raspbian desktop in particular is exceptionally easy to use.
Raspbian is distributed in three different versions: "Lite", which is a text-only version that is probably not interesting for most desktop users; "With Desktop", which has the Raspbian PIXEL graphical desktop with minimal other applications; and "Recommended Software", which has the PIXEL desktop and a lot of utilities and applications that are frequently used on the Raspberry Pi.
If you are planning to use a Raspberry Pi as a common desktop system I would recommend installing the "With Desktop" rather than the "Recommended Software" version, because the packages included in that are more typically of interest to educational and hobby users. You can always add whatever utilities and applications you want, or need, to the base system after installation.
The first and simplest way to add application packages is via the Recommended Software utility, which is found in the Raspbian desktop Preferences menu. You can see from the category list what sorts of things are included in this utility; in addition to the obvious LibreOffice and Claws Mail, there is the VNC Viewer remote desktop client. A lot of the other things in here are educational or hobbyist oriented, although there is also a rather nice Minecraft game specifically adapted for the Raspberry Pi.
Another way to get a wider range of software is the Add / Remove Software utility. This gives you access to a much larger variety of software (basically everything in the Raspbian repositories), still organized by categories.
If neither of these GUI utilities fits your needs or taste, you can always use the Linux apt utility. While this is not something I would recommend for beginners or inexperienced users, it is a real blessing for experienced users, and welcome news for those who have cursed a few other common Linux distributions that have taken upon themselves to remove the apt utilities when they provide their own package management applications.
The Raspberry Pi 4 systems I have been using for this post have the standard Raspbian with Desktop distribution, plus LibreOffice and GIMP (the Gnu Image Manipulation Program) installed. Those who have read my previous blog posts about using Raspbian might notice that I have not installed Midori or any other web browser. I am sticking with the standard Chromium included in Raspbian, both because it has been optimized for use on the Raspberry Pi, so it should be "better", and so that if it creates performance issues or is difficult to use, I want to know about it.
This is the area where there have been problems when trying to use previous models of the Raspberry Pi for everyday desktop work. If you had the patience for it, they were somewhat usable - the longest wait was typically to get a new application started, once it was running they weren't intolerably bad (but then again, would "tolerably bad" be something that you really wanted to tolerate every day?). This time I got a very pleasant surprise from the Rasbpberry Pi 4. It boots very quickly, and once it is up and running it consistently starts new applications quite reasonably as well. It is still nowhere near as fast as my latest laptops, but I don't expect that from a system which is loading everything from a relatively slow SD card. It gets applications going fast enough that it doesn't bother or distract me, and once they are running I can no longer tell a significant difference between the Raspberry Pi 4 and any of the other systems I use.
There are a few specific situations where I notice a small difference. While writing text in either LibreOffice or Chromium, if I need to backspace a long way, and I simply press and hold the Backspace key, the display falls behind the actual changes, so when I let go of the key it continues erasing characters for a little longer. This used to happen with a lot of older laptops, when the display system couldn't keep up with a long, steady stream of updates, but I don't consider it to be a significant problem, and it takes very little effort to get used to it.
Another area of performance that is interesting on the Raspberry Pi is memory usage, and the question of how much memory to get. This is one of the areas where things started getting interesting in my testing for this analysis. Based on information from several utilities, it appears that Raspbian uses about 450MB of memory when it is idle immediately after booting. That's not bad.
When I was using the 1GB model, I was able to run LibreOffice and GIMP simultaneously without trouble, but when I added Chromium to the mix, the whole system basically went out to lunch. Typing response became erratic, and screen updates (such as bringing a window to the foreground) just about ground the whole system to a halt. It seemed a bit strange to me, because when I used the Task Manager to check resource usage, it said that the system was using about 700MB of the available 950MB, so I didn't think memory shortage should have been an issue. (Tip to others who want to try this: in the Task Manager, under View, be sure to un-check the "Show memory used by cache as free" option.)
It wasn't very difficult to ascertain that it was a memory problem, though. First, I could see that the CPU usage was only hitting a max of about 60%-70%, and second I figured out that I could run LibreOffice and GIMP together, or Chromium alone, and all was well, but if I tried all three, and the memory usage went over 700MB, everything slowed way, way down.
When I switched to the 2GB model, things got a lot better. With the same three major applications running, performance was still good, including both input and screen updates. Task Manager reported that there was a total of about 1.3GB of memory being used - interesting, since this was the same programs and the same load as I had tested on the 1GB system. I assume what that means is that some processes were allocating memory for buffers or cache which was proportional to either the total amount of memory in the system (most likely) or the amount of free memory. Either way, the Raspberry Pi was obviously much happier with 2GB of memory, so I would say that is definitely worth the CHF 10.- price difference.
Finally, I switched to the 4GB model (by the way, when I "switch" like this I move the SD card from one system to another, so there is no difference in the operating system configuration or applications). I could not see any difference in the performance between the 2GB and 4GB systems. The memory usage was more or less the same, as was the input and screen updates rate. I tried starting a few other applications, and the performance still did not degrade.
So the summary for this part would be that if you plan to use your Raspberry Pi 4 as a desktop system running a significant number of applications, you should definitely get at least the 2GB model. The price difference is small, and the performance benefit is large. You can't get a much easier decision than that.
The "elephant in the room" when it comes to Raspberry Pi hardware is, of course, the CPU temperature and possible overheating. This has been an ongoing issue since the very first Raspberry Pi Model A, and if anything it has gotten a bit worse as each new model has come out and the CPU speed has been increased. The bad news is that as far as I can tell from my tests so far, it isn't any better with the Raspberry Pi 4, and it might actually be a bit worse. The surprising news, at least for me, is that this problem is actually somewhat dependent on the amount of memory in the Raspberry Pi; as I will explain next.
First, a quick explanation of how I determined the CPU temperature and possible overheating. Raspbian includes a utliity called vcgencmd which can report various interesting and useful bits of information about the CPU and Video Core. The specific one I used here was "vcgencmd measure_temp", which I put in a loop that updated every 5-10 seconds. In addition, if the CPU temperature is getting "too high", a thermometer symbol (shown at right) will appear at the top right corner of the Raspbian desktop. This will be shown when the CPU temperature is between 80 and 85 Celsius; if it goes over 85 degrees, the symbol changes to a full thermometer and the operating system starts throttling the CPU speed to reduce the temperature.
When I first started paying attention to the CPU temperature I was running on the 4GB model, working on some documentation for workshop, with LibreOffice and GIMP running (and not much of anything else). I happened to touch the top of the case and noticed that it was very warm; when I checked it with vcgencmd, it was right around 80 degrees. This unit was in the "official" Raspberry Pi case, and when you look at that critically from this perspective, you realize there is very little allowance for airflow through that case to cool the CPU. Like, none. I took the top off of the case, and the temperature went down several degrees very quickly, so it was safely below 80 degrees. But I could still get it back above 80 fairly easily by just scrolling the text up and down in LibreOffice Writer.
I switched to the 2GB model, which is in a different case that has an air gap between the case and the lid, so at least some air circulation is possible. The idle temperature was a couple of degrees lower, as I expected - but of course I don't know if that was because of the smaller memory or the better ventilated case.
I was once again able to drive the temperature up to the 80-85 degree range without much trouble, doing the same operations with LibreOffice and GIMP. Removing the lid made a significant difference again, so the gap wasn't a "miracle cure" anyway.
My final attempt was with the 1GB model, which is mounted in a PiBow Coupé 4 case that has no lid at all. If anything stays cool this should, and it did, at least cooler than the other two. I did manage to get it up to 80 degrees, but I couldn't get it significantly above that.
I decided that I need to investigate this overheating issue more. There are at least three ways to attack this problem that I can think of offhand: heat sinks, a better ventilated case, or a cooling fan. So I have ordered each of those, and hopefully within a week or so I will be able to pass along some more information.
Another Raspberry Pi issue that has been a sore point for a lot of people is the lack of an on/off switch. I have defended this, or at least shrugged it off, because I think for the original intended market of the Raspberry Pi (education) it was just not significant. But if you want to use a Pi 4 as a desktop system, this might matter.
For those who aren't familiar with the situation, you start up a Raspberry Pi by plugging the power cord into it, or flipping a switch in the power cord or power supply itself. You shut down and power off by shutting down Raspbian (from the desktop drop-down menu or by running something like "shutdown -h now"), and the last thing it does is blink the disk access LED 10 times, as a signal that it is safe to remove power. Then you unplug the power cord or flip off the power supply switch.
To say that is "less than elegant" is probably an understatement, but the real problem is that if you remove power before Raspbian has finished shutting down, you can corrupt the filesystem on the SD card. Now, this has never happened to me, but I have heard of it happening from a lot of different sources.
There are, or will be, some alternatives available at a price. A number of add-on boards (HAT) incorporate a hardware on/off switch, sometimes with a simple power board, or others with various hardware add-on functions that include a switch. If having a physical on/off switch is important to you, I would recommend looking into one of these.
I have used the Element14 case for my Raspberry Pi 2 and 3 systems, it has an integrated on/off switch and Real-Time Clock, and I have been very pleased with it. Something like this would be excellent to make a professional-looking desktop system and solve the on/off switch problem. The drawback, of course, is the price as it generally costs about $50.
Even if the software and performance are good enough for your purposes, you should also consider the peripherals before you make a final decision about using a Raspberry Pi 4 on your desktop. It is not all as straightforward as you might think, and even if there isn't a "showstopper" here, there may very well be some issues that you should keep in mind as you decide on the hardware configuration and the peripherals (such as keyboard and mouse) that you use.
If you can't even get the hardware setup that you want/need, you're not going to be interested in using it whether the performance is good enough or not. For the purposes of this post, I'm going to assume that you want to set up a "serious" desktop system, which means that you are willing to spend at least enough money to get a reasonable hardware configuration.
The Raspberry Pi 4 Model B comes in three configurations, with 1GB, 2GB or 4GB of memory. If you're thinking of using it as a desktop system, you need to get the 2GB or 4GB model. It's that simple. The price difference is insignificant, in comparison with what the entire setup is going to cost, and the one sure way to doom a system to inadequate performance is to configure it with insufficient memory. But after the tests I have made so far on the temperature problem, I'm not sure if the 4GB model might be more susceptible to overheating than the 2GB. As I said, I plan to do some more testing to try to determine that.
You're going to want a case to protect it from dust, dirt, coffee, flying paperclips and such. The official Raspberry Pi Case is the best looking I have seen so far, at least for just the RPi 4 board itself. As more HATs and other add-ons become available for the Pi 4, this may change. I am particularly looking forward to things like the "mini-PC" cases you can get for the Pi 2 and 3. Again, this decision might be influenced by the temperature problem, due to the amount of ventilation (or lack of ventilation), and perhaps the ability to add a cooling fan on or in a case.
You're also going to need a power supply. Even without considering the problems with the Pi 4 and some "smart" USB-C power supplies and cables, I would recommend getting the official 15 Watt USB-C power supply. You don't have to worry about compatibility and you don't have to worry if it will provide enough power.
You're going to need a keyboard and mouse, and here the choices get a little more varied and interesting. Of course one obvious option is to buy the official Raspberry Pi keyboard and mouse. But those are corded devices, so they take one USB port each, and the Pi 4 only has four USB ports, so that's a pretty big bite. (There is one other issue here for me - there is no official Raspberry Pi keyboard with a Swiss layout, the closest they have is a German keyboard. Sigh.)
If you do decide to go this way, make sure that you plug them into the ports with the black spacer (the two on the left), because those are USB 2 ports, and you really don't want to use up the USB 3 ports for a keyboard and mouse.
READ MORE: Best Raspberry Pi alternatives (September 2019 edition)
Using a wireless keyboard and mouse is probably a better choice, but again if you need to use one USB port for each of them, that's not great. Using a keyboard/mouse combination which has a single receiver would be a better choice, either a "desktop set" that comes with a matched receiver, or something like the Logitech Unifying receiver, where you can pair a number of peripherals with the same receiver. Again, be sure to use a USB 2 port for the receiver.
The other alternative would be to use Bluetooth devices, because the Pi 4 (like the Pi 3) has built-in Bluetooth support. In this case you need to be a bit careful, though, because my experience has been that some of the latest Bluetooth 4.x mice (at least) will not pair with the Raspberry Pi 4 (or 3). I have tried a Logitech M720, MX Anywhere 2S, MX Vertical and MX Ergo trackball, and none of them will pair with a Raspberry Pi. On the other hand, all of the older mice and keyboards I have tried, such as the Logitech M590 mouse and K380 keyboard, and a Kensington Wireless Trackball all paired with no problem.
Finally, you're going to need at least one display. The Raspberry Pi 4 has two micro-HDMI connections, so you could have two displays if you wanted, but of course it works just fine with one. The important thing to remember here is that the connections on the Pi 4 are micro-HDMI, not full-sized and not even mini-HDMI like the Pi Zero has. If you don't have a micro-to-full-size HDMI cable, you should get one. There are various adapter plugs and cable available, but using them can introduce problems with space or reliability of the connections. I don't know offhand what the maximum resolution is; I use two 1920x1080 displays and have no trouble with them at all.
So, what is the bottom line here? Is the Raspberry Pi 4 usable as a desktop replacement? I would say yes, the performance is good enough, the configuration is flexible enough, and the price is certainly right. In fact, I have been using one the entire time that I have written this post, including text editing, picture editing, Internet searches and of course the various peripheral and connectivity tests I have made, and the 2GB and 4GB models performed very well throughout. I would not recommend the 1GB model, though, because it is simply too easy to run out of memory.