Raspberry Pi 2 Available: ARMv7 and Windows 10

Raspberry Pi 2 Available: ARMv7 and Windows 10

The original Raspberry Pi, launched three year ago this month, has been very successful. Raspberry Pi founder Eben Upton noted recently that over 4.5 million Pis have been sold since launch, vastly exceeding the initial goal of 1k units. This popularity can be attributed to many things, but one of them was a consistent hardware platform. Similar to gaming consoles, each Raspberry Pi has almost the exact same hardware, enabling developers to code apps that were guaranteed compatibility. Thus, laymen can find value in Raspberry Pi even without any intention of developing on the platform. In fact, Kodi (XBMC) has announced that the Raspberry Pi is the most popular hardware for their software.

Reaching the $35 price point was difficult however, and one peculiarity of the Raspberry Pi is its downright ancient ARM11 CPU inside the Broadcom BCM2835 SoC. While the ARM11 CPU was a watershed moment for mobile computing when it launched (it was at the heart of the original and 3G iPhones launched in 2007 and 2008), to continue using it in 2015 is a large concession. Not only is it slow, but the ARM11 core does not use the most popular ARM ISA, ARMv7, and instead relies on the older and less popular ARMv6 ISA. Thus, most software does not run natively on the Pi and must be recompiled.

Many online software repositories maintain ARMv7 sections for everything-but-the-Pi as well as a special Raspberry Pi ARMv6 section. Considering the popularity of the Raspberry Pi, this actually works okay, but the lack of a modern CPU has left the door open for competitors. Projects such as Vero, ODRIOD, and Imagination’s CI20 have all differentiated themselves with much more powerful and modern CPUs albiet some of them at higher prices.

This morning, the Raspberry Pi foundation changes that by introducing Raspberry Pi 2 at the same $35 price point. Working with Broadcom, the Raspberry Pi foundation has attempted to maintain as much compatibility as possible by changing only two features of the design. The new Broadcom 2836 SoC replaces the older 2835 SoC, but is nearly identical other than the CPU. The 700 MHz ARM11 CPU is replaced with a quad-core set of 900 MHz ARM Cortex-A7s, which use the more standard and modern ARMv7 ISA. Additionally, the memory has been doubled and increases from 512MB to 1GB. Otherwise, the Pi 2 is exactly the same as the Raspberry Pi 1 B+.

  Raspberry Pi 2 Model B Raspberry Pi Model B+
SoC Broadcom BCM2836 Broadcom BCM2835
CPU 4x 900 MHz ARM Cortex-A7
(ARMv7 instruction set)
700 MHz ARM1176JZF-S
(ARM11 family, ARMv6 instruction set)
GPU Broadcom VideoCore IV @ 250 MHz Broadcom VideoCore IV @ 250 MHz
Memory 1GB DDR2 512MB DDR2
USB 4x USB 2.0 Host 4 USB 2.0 Host
Camera Interface 15-pin MIPI (CSI) connector 15-pin MIPI (CSI) connector
Video Output HDMI 1.3a
Composite video 3.5mm jack
HDMI 1.3a
Composite video 3.5mm jack
Audio In via I²S interface via I²S interface
Audio Output HDMI
3.5mm jack
I²S interface
3.5mm jack
I²S interface
Storage via MicroSD via MicroSD
Network 10/100 Ethernet 10/100 Ethernet
Max Power Consumption < 5 Watts 3 Watts
Power Connector MicroUSB MicroUSB
Size 85.60 mm × 56.5 mm (3.37 in × 2.22 in) 85.60 mm × 56.5 mm (3.37 in × 2.22 in)
Price $35 without MPEG2 and VC1 codecs
$40.60 with MPEG2 and VC1 codecs
$35 without MPEG2 and VC1 codecs
$40.60 with MPEG2 and VC1 codecs

While the ARM Cortex-A7 is one of the slowest A series CPUs, it is miles ahead of ARM11. We did an overview piece on the Cortex A7 when it launched, and stated that it should offer similar performance to the A8 but at significantly lower power requirements. Comparing the A8 to the ARM11 in the iPhone 3GS review, we found the A8 to be about twice as fast. If you consider the Raspberry Pi 2 contains four Cortex-A7s compared to a single ARM11 in the Raspberry Pi 1, the difference is gargantuan. The Raspberry Pi foundation is claiming a speedup of 6x depending on the workload.

CPUs built on the ARMv7 ISA can execute code written against the ARMv6 ISA. Therefore, unless using hand coded assembly specific to the old Raspberry Pi 1 CPU, most existing software should be compatible with the Raspberry Pi 2. Thus, at launch the Raspbian image supplied by the Raspberry Pi foundation actually still uses ARMv6 libraries in userland. Over the next few months they will be evaluating replacing these libraries with standard ARMv7 Debian libraries.

Raspberry Pi 2’s ARMv7 ISA compatibility also opens the doors to operating systems that have never properly worked on the Raspberry Pi before, notably Ubuntu, Android, and Windows. Ubuntu and Android are a somewhat obvious availability, but Windows is a particularly interesting announcement. The Raspberry Pi foundation states it has been working with Microsoft for the past six months to bring Windows 10 to Raspberry Pi 2, and it will be available free of charge “for makers”, which I assume means non-commercial use.

This is a huge announcement by Microsoft, as providing compatibility for arguably the most popular maker device cements their messaging that Windows 10 can run on anything and they won’t be missing out on IoT. The Windows 10 experience on Raspberry Pi 2 will likely be very similar to Windows RT – i.e. no desktop apps. However, Microsoft is doing the work to make sure that universal applications that run on the Surface Pro 3 also run on the Raspberry Pi 2. This is a key part of the Windows for IoT initiative.

While the ability to run Windows 10 is big, it is also important to keep performance expectations in check. In our original Surface review, we noted that the device felt slow and performance benchmarks were low – and that was with much faster 1.3 GHz ARM Cortex-A9 CPUs. Windows software has improved tremendously since then, but there is no getting around the fact that 4x Cortex-A7s at 900 MHz will be a new low for Windows. However, Windows Phone has used such processors before, so perhaps Microsoft's Windows 10 will carry forward enough optimizations to surprise us. Additionally, I imagine a lot of Raspberry Pi 2 Windows 10 devices will be running purpose-built maker applications, hiding task switching or general OS use performance.

Windows 10 on Raspberry Pi 2 also highlights an odd split in Microsoft’s development strategy, with this announcement coming just weeks after announcing that Windows 10 would not be coming to Microsoft’s Surface ARM devices, the original Surface and Surface 2. While Microsoft’s brief announcement means that it’s still not clear if the Pi 2 version of Windows 10 is a full-featured version –IoT use is very different from desktop use, after all – it would certainly look odd if the relatively low-powered Pi 2 was receiving features that the Surface tablets do not.

This is an official page up discussing the Windows 10 support, but it does not contain any details yet. Microsoft is directing interested users to join their Windows for IoT development program to receive additional details in the future. Personally, I would be interested to try to make a large touch screen surface with just a cheap Raspberry Pi 2. While it may not run the bevy of x86 Windows applications, it would certainly be a fun project considering how touch optimized Windows 10 is. The same could be said for Android.

The Raspberry Pi 2 is available today from distributors element14 and RS Components. Software distributions are available at the Raspberry Pi Foundation page.