Well, first of all, hello – and I'm glad to be back. I've spent the past two and a half years teaching at the Amsterdam University of Applied Sciences (AUAS). I initially thought that I would be able to keep up this blog while doing that, but it didn't take long for me to realize how impractical that was. Now that I am done at the AUAS, I am very pleased to be writing here again.
What better way to resume than with a brand new Raspberry Pi system? To me, this one confirms that the people at Raspberry Pi Towers really are a bunch of hard-core geeks who came of age with computers at about the same time that I did.
In the 1980s, the Commodore 64 and the Sinclair ZX were the stuff of geeky dreams, and are still a source of nostalgia for those of us who remember them. So a Raspberry Pi in a keyboard brings huge smiles to a lot of old faces.
SEE: Hiring Kit: Python developer (TechRepublic Premium)
The product announcement from Eben Upton gives a nice overview of the system, and some of the motivation and ideas that went into it. A more thorough post about actually designing and building it from Simon Martin makes for interesting and entertaining reading and fills in a lot more details.
I particularly enjoyed the description of trying to create a completely new system while the most fundamental part of it – the Raspberry Pi board itself – was moving rapidly ahead at the same time. There is also a Product Brief (PDF) which gives a few more details.
The Pi 400 is available as a "Unit", which means only the keyboard system itself and absolutely nothing else, or a "Kit", which includes the Pi 400 along with a power supply, mouse, HDMI display cable, 16GB SD card preloaded with Raspberry Pi OS, and a Beginner's Guide. The keyboard and Beginner's Guide are available in English (US and UK), German, French, Italian and Spanish.$125 at Amazon (US)
When I saw the announcement in the Pi Blog, I immediately checked the Pi-Shop.ch and was pleased to see that they had them in stock – but only the German version, with French and US English listed but out of stock. I ordered one immediately, and as usual it was delivered the next day.
I am going to divide the remainder of this post into separate sections for the hardware and software.
One of the biggest decisions that was made in the design of the Pi 400 was that it would not be simply a standard Raspberry Pi 4 packaged in a keyboard: they actually designed a new board. The new board is much larger, with some of the components spaced out more, and there is a heat sink built into the case, so the Pi 400 should not have the temperature problems that have plagued the Raspberry Pi 4.
In the limited amount of use and testing I have done so far, I haven't seen the CPU temperature get above 40 degrees – a huge improvement over the Raspberry Pi 4, which idled at about 60-70 degrees, and would hit 80 degrees (where CPU speed-limiting would kick in) quite easily.
The keyboard itself is relatively small, it doesn't have a separate number block, and the key spacing is fairly close. I don't find it to be difficult or uncomfortable to use, but on a scale of 1 (awful) to 10 (wonderful), I would not put it any higher than 5.
The keyboard has a couple of interesting features. There are only 10 F-keys across the top, but F11 and F12 are overlaid on F1 and F2 with the Fn-key. Also, Fn-F10 is predefined as a power on/off control; with power on, if you press Fn-F10 for more than 2 seconds the system does an orderly shutdown (Note: shutdown, not sleep); with power off, if you press Fn-F10 power comes on again and the Pi 400 boots up.
There are three LEDs on the upper right corner of the keyboard; two are ordinary NumLock and CapsLock indicators, the third is, uh, something to do with power on and/or disk activity indicator. I'm not entirely clear on this yet, because when I first booted up, with an SD card out of one of my older systems that hadn't been updated in a while, that LED was clearly a disk activity indication: it blinked irregularly when the disk was accessed.
But after I installed all the latest Raspberry Pi OS updates (with the disk activity LED blinking merrily along the entire time), and then rebooted, it seems to have changed to a simple power on/off indicator, and doesn't blink any more. Well, even that is not exactly right, because it blinks just a bit when the system is booting, but once it is up and running, it never blinks again. Oh, and when you shut down, the power LED simply goes off, it doesn't do the "blink 10 times when shutdown is complete" trick.
My favorite thing about the keyboard, though, is the "Raspberry" key instead of the usual "Windows" key.
All of the external connections are located on the back of the Pi 400, as shown above. Going from right to left in that picture:
- Security lock connection (often called a "Kensington Lock")
- RJ45 Wired network
- 3 USB connections (two USB 3 and one USB 2; the other USB 2 connection has been stolen for the keyboard)
- 5V DC power (USB C connection)
- 2 micro HDMI display/audio connections
- Micro SD slot (note this is a click-lock type, not the push-and-pray that has been in Pi 3 and Pi 4 systems)
- GPIO header (Pin 1 and Pin 40 are indicated on the keyboard case, if your eyes are good enough)
The Pi 400 does not have a 3.5mm analog audio/video jack, and it doesn't have the CSI (camera) and DSI (display) connections, so those who need/want them will have to stay with the standard Raspberry Pi 4.
I have seen some discussion (and complaints) about the fact that the USB ports are on the left side, which means that if you use a corded mouse (such as the official Raspberry Pi Mouse) and you are right-handed, you will have to run the cord around the keyboard, which some people claim makes things "messy". The simple solution is to use a wireless mouse (duh!) with a USB dongle so you don't have to deal with a cord. In my opinion an even better solution is to use a Bluetooth mouse, and don't bother with USB at all.
This is the first new Raspberry Pi model that I can remember that doesn't require a new Raspberry Pi OS (previously Raspbian) release. I couldn't find any explicit mention of this anywhere, so I finally just took an SD card from one of my Raspberry Pi 4 systems, stuck it in the Pi 400 and powered it up. Much to my surprise and pleasure, it booted right up.
However, it had been up for less than a minute when it hung, with strange green vertical bars overlaid on the display. Power cycling brought it back up, but it continued to hang every few minutes even after I had managed to install all the latest OS updates. Without going into a lot of detail about the sweating and cursing that went on as I tried to figure this out, I will just say that it now looks like this problem is related to the Display Overscan setting in the Raspberry Pi Preferences. This setting is supposed to be used for correction when you have a black band around the border of the display, but I have found that when this is Disabled, which expands the background to fill the monitor, the Pi 400 hangs very frequently; with it Enabled, I have not had it hang at all yet. Very strange.
There is very good news about the Bluetooth software. Those who have followed my blog previously might know that there has always been a problem connecting newer Bluetooth devices, where "newer" means something like Bluetooth 4.0 or BLE (Bluetooth Low Energy) equipment. I have never been able to get a Logitech M720, MX Ergo, MX Anywhere or MX Vertical to connect, for example. With the latest updates applied to the operating system, that problem is fixed. Hooray!
Other than that (yes, it is strange to be saying "other than hanging/crashing"), I haven't seen any significant software differences or issues. I have only been using the Pi 400 for a couple of days, but I can at least say that so far everything works, and most things are noticeably faster – obviously because of the higher CPU speed. I even don't mind using Chromium on this system, and that's actually saying a lot...
In the hope of identifying exactly what software versions were involved in the change of behavior of the power LED, and in the future might be involved in fixing the OS hanging problem, I started looking for release or update information.
The first obvious place to look is /etc/os-release, but that just says things like "Raspbian GNU/Linux 10 (buster)", so it is of no help in determining when the latest updates were installed. Then there is /boot/issue.txt, but that only says "Raspberry Pi reference 2020-08-20", which at least tells me what installation image it came from. On other systems that were initially loaded some time ago, this file says things like "2019-07-10", but that still doesn't give any information about what updates have been installed since it was loaded. The only other thing I can think of is "uname -a", which reports the Linux kernel version, such as 5.4.51. That helps a bit more than either of the two previous static bits of information, but relating the kernel version to specific updates is tedious. It would be nice if there was a place to find the latest update identification.
That's about it for the first few days' report. Overall I'm pleased and impressed with the Raspberry Pi 400. It is a useful addition of a new and different system to the Raspberry Pi family. Beyond the obvious aesthetics, and the "warm and fuzzy memories" effect for dinosaurs such as myself, I think that one of the most important features is fixing the CPU overheating problem.