Thursday, April 25, 2019

Raspberry Pi 4 predictions

I’ve been thinking about what’s wrong about the Raspberry Pi lately and my wish list for the Pi 4. So I thought I’d put some of my thoughts and predictions about the Pi 4 down in a blog post. I have absolutely no inside knowledge: this is 100% speculation.

In the announcement blog post of the Pi 3A+ in November 2018 it was admitted that the current generation of Raspberry Pi had reached the end of the road and that anything new will require a fairly radical redesign. The Pi is by far the best selling single board computer ever having sold over 23 million since its launch in 2012 to end 2018. So they are in no hurry and are likely to take their time and come up with a good architecture that will set them up for painless and regular incremental improvements for years to come.

Rasbperry Pi hardware release timeline 2012 - 2019

The only thing I can predict with near certainty is that the the primary peripheral bus will USB3.  One of the most common criticisms of the current generation of Pi is its reliance on the USB2 bus with its theoretical maximum bandwidth of 480Mbps. This is particularly problematic for the ethernet port which is implemented as a USB peripheral. 1G ethernet is now the norm, but the Pi until the very last iteration came equipped with a 100Mbps ethernet port. Even the last Pi 3B+ which did come with a 1G ethernet port can only achieve about have of that bandwidth because of the USB2 bottleneck. The Pi4 will most likely also feature 1Gbps ethernet but through USB3 or direct to the SoC (the System-on-Chip, the heart of the Pi) so that the full ethernet bandwidth can be realized. 10Gbps ethernet is also an option, but it’s still very expensive and uncommon, so not likely.

The form factor and expansion header pinout and related software APIs are very unlikely to change significantly. There is far too many products and tutorials out there relying on that not changing.

The RAM is due an upgrade. The original 2012 Pi 1B featured 256MB which over the years kept doubling to the current 1GB. That’s arguably enough for the ‘mission’: a education and prototyping tool. But many of its direct competitors now have 2GB standard. I think 2GB RAM is probable but not a certainty. But as mentioned before the architecture and board layout will be such that they can increase RAM to 2, 4 or maybe even 8 or 16GB without any drastic re-engineering. Pi RAM will always be soldered on board. Modular RAM like on laptops and desktops would push the bill-of-materials way beyond the $35 target.

The SoC is also likely to be significantly different to the current generation. My hunch is that they’ll abandon the Videocore processor used in the SoCs used to date (Broadcom BCM2835, BCM2836,  BCM2837, BCM2837B0) and go for the more mainstream ARM Mali GPU. A little known fact about the Pi SoC is that it’s a Videocore processor with ARM co-processors. It’s Videocore first, ARM second. The first thing that runs when a Pi is powered up is the Videocore firmware (often referred to as the ‘binary blob’). This is closed source code running on undocumented hardware. It configures the video system, external RAM and the ARM processors and then hands over control to the ARMs and the next stage bootloader which in turns boots the Linux kernel. The Videocore firmware is also responsible for converting the raw video from the camera MIPI interface into a H.264 MPEG stream for the operating system.

I never give this closed-source nature a second thought until a few years ago when I attempted to use a Raspberry Pi for a commercial project. We wanted to use an Omnivision OV5640 (in theory backward compatible with the supported OV5647). But since all this was handled in the closed source ‘binary blob’ there was no way to tell the Pi to recognized the OV5640 even though it’s interface was identical. (We did ask the Pi Foundation if it was possible to pay for a custom modification to the firmware, but we were told ‘no’, and using the OV5647 wasn’t an option either because it was impossible to source).  So a move to a more open video / GPU system supporting a wide range of camera modules would be greatly welcomed. Proper 4K monitor support would also be expected.

Of course since the Raspberry Pi Foundation don’t make silicon their SoC choices will be constrained by what their hardware partner (currently Broadcom) are willing to provide. But they are now a large customer and I’m sure their wishes will be listened to. And maybe, just maybe, they are big enough to have a custom SoC made for them.

What else for this SoC? Probably still quad core (but with an upgrade plan to support 8 or more cores without re-engineering). Definitely ARM 64 bit Cortex-A like the current Pi.

I have a strong hunch the storage system will be overhauled. The microSD card bandwidth is another common criticism of the Pi. The new (2019) microSD express standard supports bandwidths up to 985MB/s is far more suited to the access patterns of an operating system than the original SD card which is more suited to cameras and smartphones.

The last few iterations of the Pi hardware introduced some bonus peripherals: built in WiFi, Bluetooth, Power-over-Ethernet. I think we can expect another bonus peripheral in the Pi 4. One tantalizing possibility is a GNSS (GPS) receiver. I doubt they’d ever add a discrete GNSS chip to the board, but it’s becoming common to have this function integrated with mobile device SoCs.  If present it’s just a matter of routing out the antenna to a small U.FL antenna connector. In addition to positioning applications (up to cm level with RTKLib if raw GNSS data is provided!) GNSS also provides a super-accurate time standard for the system clock. Environment sensors are also strong candidates (accelerometer, gyro, compass, pressure, temperature, humidity). Maybe even a mic!

What else? Power management is rather weak on the Pi: it’s just not battery friendly. A completely idle Pi still uses 100s of mA of current. It really should be possible to put it into a sleep mode using tens of mA like Android phones which use similar technology.

The OS? same as before Raspbian and NOOBS being the primary choices. At some point Raspbian needs to take the leap into ARM 64 bit  (the official Raspbian distribution remains 32bit for backward compatibility with older hardware). Also expect Microsoft to release Windows 10 for it and maybe finally we’ll see a decent port of Android (I believe the proprietary Videocore mentioned above is preventing a quality Android port). Apple won’t feature (or care).

Cost? I can’t seem them deviating from the usual $35 price range, but I think they can now get away with pushing that just a little. An extra $5 or $10 won’t cause too much grief, especially if they provide a ‘Model A’ with the ‘cherries’ removed.

When? On average they’ve been doing one major hardware iteration once per year and that usually comes in the early months. Early 2020 would seem to be in keeping with their release cadence.