When the Raspberry Pi 4 was announced on 24 June, and the associated (required) Raspbian Buster update was announced the following day, there were still some significant bits and pieces of both hardware and software that were either not available yet, or had not made their way through the distribution channels to availability for ordinary consumers.
That situation has improved quite a bit (although there are a few things that I still can't get here in Switzerland), and I have had some time to try out the new Raspberry Pi 4, so the following is an update as to what I have done and learned in the past two months.
SEE: Six in-demand programming languages: Getting started (free PDF)
Perhaps the best place to start is with the USB-C power "problem" that has drawn a lot of attention and commentary. TechRepublic has a good (and correct, unlike many others) description of the problem. A lot of other places, of course, vastly overreacted to the situation, so please pay attention and think a bit when you read about this. Basically, a flaw in the hardware design of the Pi 4 causes certain USB-C chargers and cables to incorrectly identify the type of device it is, and as a result of that they don't provide any power to it. If you run into this problem, the simplest work-around is... get ready for this... use a different charger, or a different cable.
The most obvious specific suggestion is to use the official Raspberry Pi Foundation USB-C charger. I know, it can make your head spin to think of something as complicated as that, but there you have it. Some of my favourite "headlines" about this problem over the past few weeks were the ones which declared the Raspberry Pi 4 "useless" because of this, or simply said that they are working on a solution to be implemented in the next production run, without bothering to mention that using a different power supply was very likely to solve the problem.
I haven't seen this problem myself yet, because I made a point of getting an approved power supply with it. Another thing that a lot of the breathless articles about this fail to mention is that whatever power supply you use, it needs to be able to deliver a maximum of 3 amps at 5.1 volts, and a lot of ordinary smartphone chargers are not up to that. Having learned that lesson several times over, as the Raspberry Pi 2 and Raspberry Pi 3 each increased the power requirements, I have pretty much given up trying to save money by using whatever 5V power supplies I might have around here, and I just get the right ones to begin with.
However, I thought that I might be able to reproduce the problem by using the power supply from my Huawei phone; I assume that it is "smart" in at least some way, because if I charge that phone using any other power supply / USB-C cable combination it works but the phone just says "Charging". If I use the power supply and cable that came with the phone, it says "Quick Charging". Unfortunately (or fortunately, depending on your perspective) that did not produce the problem, the RPi 4 booted just fine and works perfectly with that charger.
In the articles I have read, the only units specifically named as having this problem are Apple MacBook chargers, so I don't know if there are any others. If anyone else has direct personal experience of another one not working, it would be interesting to hear about it in the comments.
So, moving on: over the past few weeks as cases, cables and other peripherals have become available, I have purchased one Raspberry Pi 4 of each memory capacity (1GB, 2GB and 4GB), and three different cases for them.
Lined up together on my desk, they look like this:
The one on the left is 4GB, with an official Raspberry Pi case; the middle is 2GB, with a generic case; the right is 1GB with a Pi-Bow Coupé 4 Rainbow case. The first (obvious) thing to notice about these is that there is no physical difference between the models with different amounts of memory. That means all of the Pi 4 models will fit in any of the (properly designed) Pi 4 cases. The next thing to note is that the memory is not in any kind of socket or other removable/replaceable connection, so you can't expect to increase or upgrade the memory yourself after purchase.
While it is relatively difficult to determine the memory size by just looking at the board (you have to know which chip to look at, and have eyes that are much better than mine), it is very easy to find out on a running Raspbian system. I prefer to look at the Linux "top" utility, which shows the total amount of memory installed. There are plenty of other ways to find this information under Linux, of course; one of the more thoroughly informative about memory availability and use is "cat /proc/meminfo".
On the other hand, a command that I have mentioned before, "cat /proc/device-tree/model", does not give this much detail, it only identifies all three variants as "Raspberry Pi 4 Model B Rev 1.1".
In my previous post about the Raspberry Pi 4, I mentioned some difficulty with connecting the micro-HDMI display output. At that time I was only able to get a simple adapter plug, but since then I have gotten an actual micro-to-HDMI 1 meter cable, and I have also gotten a smaller "pigtail" adapter.
As you can easily see, the problem with the plug adapter is that the HDMI side of it is so wide that it obstructs the other micro-HDMI port on the Raspberry Pi, so it is not possible to use two of them side-by-side. The pigtail adapter solves that problem, and if you already have enough HDMI cables to use with that, then you can save a bit of money. The standard cable, in 1-meter or 2-meter length, is of course the cleanest way to connect displays. The prices, here in Switzerland (at the Pi-Shop.ch, in Swiss Francs), are: Plug: 5.9, pigtail: 7.90, Cable: 1-meter 10.90, 2-meter 12.90.
Next on the "things to look at" list is how does it actually work with two displays connected. In the screen shot below, I have two 1920x1080 resolution displays connected, and they were recognized and configured automatically as an "extended desktop".
Raspbian includes a "Screen Configuration" utility (in the desktop drop-down menu, under Preferences), which you can use to arrange the relative layout of the two displays.
I have also tested this with two displays of different resolution, and it works. The one problem/limitation I have noticed is that it doesn't recognize and configure the change when a display is plugged/unplugged while Raspbian is running, and I have to reboot each time to get it to update the configuration.
Ok, that's enough about hardware for now, let's move on to the Raspbian software.
There have been a number of updates released since the Raspbian 2019-07-10 ISO was posted, so make sure you have those installed. For those who might not remember exactly how to do this, the (condensed) command that I use is:
sudo sh -c "apt update && apt dist-upgrade && apt autoremove"
There are a few subtleties about this command; first, it uses the newer "apt" rather than "apt-get", so it will take care of the rather irritating problem with the Debian Buster repository name changing, if you have run into that; second, it gets all three necessary update commands on a single line (I am a notoriously lazy typist); third, each of those three commands will only execute if the previous command succeeded; and finally, yes, all three of those commands really are necessary. This first one updates the local repository information, the second actually downloads and installs whatever updates are available, and the third cleans up any packages that may no longer be required.
SEE: How to build a successful developer career (free PDF)
The best news for software since the Raspbian Buster release is that Scratch 3 has been released for the Raspberry Pi 4. This is no small achievement, it took a lot of hard work from quite a few people to create an "offline" version of the Scratch 3 desktop that works on the Raspberry Pi. If you are interested in this sort of thing, the blog post about it makes for some good reading. While Scratch 3 will theoretically run on any Raspberry Pi model with at least 1GB of memory (meaning the Pi 2 or later), they recommend that it be used on the Pi 4 2GB or 4GB models, because if you try to run anything else simultaneously with Scratch 3, on a 1GB system, it can run out of memory and fail.
For this reason (among others), Scratch 3 is not included in the base Raspbian distribution (not even in the "full" version with recommended software). The easiest way to get it is to go to the "Recommended Software" utility (again, in the drop-down desktop menu under "Preferences"), and select it for installation from the "Programming" list. Download and installation only takes a minute or two, and it is then added to the "Programming" section of the desktop menu.
If you use Scratch, and you would like to have it in the Launch Bar at the top of the screen, you can right-click on that part of the bar (where the browser, file manager and terminal icons are), and choose "Application Launch Bar Settings". Then simply go to the application list in the right side of the window (the items there correspond to the contents of the desktop drop-down menu), find the application that you want, and click Add. You can then change the order of the items in the Launch Bar using the Up/Down buttons in the middle of that window.
One last short note about using the Raspbian desktop. When I wrote the bit above about adding Scratch to the Launch Bar, I remembered that ever since the kerfuffle about Wolfram/Mathematica some time ago, there have been quite a few comments and questions about getting those programs back onto the Launch Bar (they used to be there by default). In addition, it has always sort of irritated me personally that the Launch Bar icon for Chromium is the generic "internet" globe object, not the actual Chromium symbol. Since I often have more than one browser installed on my Raspberry Pi systems, I like to know for sure which one I am launching.
So, by going to "Application Launch Bar Settings" as described above, and first deleting the "Web Browser" object and then adding Chromium back again (so it got its own icon), then adding a few other things, I have ended up with this. Now, obviously I've gone a bit overboard here, but the point is to show that you can add whatever you want, and arrange it any way that you want.
That's certainly enough for today. I hope that some parts of this information have been useful to at least some people. I was hoping to get into installing alternative Linux distributions on the Raspberry Pi 4, but that is going to have to wait for another day.
Whatever you are doing with your Raspberry Pi, have a lot of fun at it!