When the original Raspberry Pi was released in 2012 it kick-started a whole movement of hobbyists, developers, and educationalists who used the platform to create, hack and teach. The Raspberry Pi succeeded for three important reasons. First, it was a full computer on a little board, it had a desktop and you could write computer programs on it; Second, it had a set of GPIO pins, similar to those find on microcontroller platforms like the Arduino; Third, it only cost $35.
Three years after the original launch, the Raspberry Pi Foundation has addressed the performance issue by releasing the Raspberry Pi 2.
If there was one complaint about the Pi, it was about its overall performance when running desktop applications. Now, three years after the original launch, the Raspberry Pi Foundation has addressed the performance issue by releasing the Raspberry Pi 2. It has a quad-core processor and double the RAM of the Raspberry Pi 1.
I ordered a Raspberry Pi 2 just days after the launch and since its arrival I have been taking it through its paces, and this is what I found out.
The Raspberry Pi isn’t the only SBC on the market today and in terms of performance and features many of the alternative SBCs beat the Raspberry Pi 1 quite easily. However, with the possible exception of the ODROID C1, the Raspberry Pi has always won on price. With the launch of the Pi 2, the Raspberry Pi Foundation has kept the same sweet price point, but has managed to boost the performance of the board.
Here is a detailed look at how the Raspberry Pi 2 compares to some other SBCs:
|Device||Raspberry Pi 2||Raspberry Pi 1||HummingBoard i2eX||Creator CI20|
|CPU||900MHz quad-core ARM Cortex-A7 CPU from Broadcom||700MHz ARM11 Broadcom CPU||1GHz i.MX6 dual-core Cortex-A9 CPU||1.2GHz dual-core Imagination MIPS32 CPU|
|GPU||Videocore IV||Videocore IV||GC2000||PowerVR SGX540|
|Storage||SD card slot||SD card slot||SD card slot||8GB onboard flash, SD card slot|
|Connectivity||4 x USB, HDMI, Ethernet, 3.5mm audio jack||4 x USB, HDMI, Ethernet, 3.5mm audio jack||2 x USB, HDMI, Ethernet, 3.5mm audio jack, infra red remote control receiver||Ethernet, 802.11 b/g/n Wi-Fi, Bluetooth 4.0, 2 x USB, HDMI, 3.5mm audio jack|
|OS||Linux, Windows 10||Linux||Linux, Android||Linux, Android|
|Connectors||Camera interface (CSI), GPIO, SPI, I2C, JTAG||Camera interface (CSI), GPIO, SPI, I2C, JTAG||Camera interface (CSI-2), GPIO, UART, SPI, I2C, PCI-Express Gen 2, mSATA II, RTC with backup battery||Camera interface (ITU645 controller), 14-pin ETAG connector,
2 x UART, GPIO, SPI, I2C, ADC
Like the Raspberry Pi 1, the Pi 2 can run a variety of Linux distributions. The easiest way to install an OS for the Pi is to use the New Out Of the Box Software (NOOBS) package. This package boots the Pi and then allows you to pick which operating system you want to install. You can even install multiple operating systems and dual-boot via a boot menu.
NOOBS for the Pi 2 is still maturing. At the moment it only provides Raspbian (a Linux distro based on Debian Wheezy), and OpenELEC. All the other OSes like RASPBMC, Pidora, and RISC OS currently only work on the RPi 1. However, things are moving quickly and I expect that more support for the Pi 2 will come soon.
One of the big announcements that was made at the time of the RPi 2 launch was that Microsoft will be releasing a version of Windows 10 that supports the Raspberry Pi 2. This release of Windows 10 will be free through the Windows Developer Program for IoT.
What yet isn’t known, is what will be included in that version. It will obviously be a cut down version, but how cut down it will be remains to be seen. Microsoft is looking at the emerging IoT market and the release announcement clearly says that Microsoft sees this developer community as “as an amazing source of innovation for smart, connected devices that represent the very foundation for the next wave of computing.” In other words, don’t expect Microsoft to give away free desktop equivalent version of Windows, so that you can sell your old PC and replace it with a Raspberry Pi. I could be wrong, time will tell.
The one major operating system that the RPi 2 doesn’t support is Android. The RPi 1 didn’t support it and at the moment there is no news that the situation will change with the Pi 2. The Raspberry Pi Foundation doesn’t see Android as a priority, and there appears to be some porting difficulties due to some missing drivers from Broadcom. However, this could all change.
Like the CuBox and the HummingBoard, the Raspberry Pi 1 and 2 are official platforms for OpenELEC. The Open Embedded Linux Entertainment Center (OpenELEC) is a small Linux distribution that turns the RPi 2 into a Kodi (previously XBMC) media center. Installing it is simple enough via NOOBS or via an image file available on the OpenELEC site.
The distro boots quickly and the interface is smooth and responsive. I was able to use it with the Yatse, the XBMC / Kodi Remote app without any problems. The app found the RPi2 straight away and I was able to control Kodi easily.
In terms of performance, I tested the power of the RPi 2’s CPU and GPU by playing two HD video files. Both files were encoded in H.264, the first at 4429 kbps, and the second at 15038 kbps. Both were full HD resolution. The good news is that both videos played fine. There was no stuttering or artifacts, and the sound played via the HDMI. The only downside was that the UI was slow when the videos were playing. Bringing up the on-screen-controls to pause, stop, etc., resulted in the mouse jerking and jumping, however the UI still actually worked. In comparison the same files on the CuBox played equally as well, and the UI remained responsive.
One of the attractions of the Raspberry Pi (and in fact other SBCs) is the ability to connect hardware (LEDs, motors, servos, sensors etc) directly to the board and control/monitor that hardware within a computer program. The advantage of the Pi over a microcontroller board, like the Arduino Due or the MBED board, is that the GPIO (General Purpose Input/Output ) pins can be controlled from a variety of programming languages, and not just C or C++.
In the video review I demonstrate how the Raspberry Pi 2 can be used to flash a LED. Of course, this is a very simple circuit, however it demonstrates the ability of the Raspberry Pi 2 to interact with the outside world.
For those interested in getting this working with a RPi 2 then here is the Python program I used:
import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BOARD) GPIO.setup(7, GPIO.OUT) while (1): GPIO.output(7, GPIO.HIGH) time.sleep(1) GPIO.output(7, GPIO.LOW) time.sleep(1)
The first part imports the modules needed for working with the GPIO pins and the module needed for the sleep() function. The next bit sets pin 7 as an output, and then the loop just sets pin 7 HIGH (i.e. on) and then LOW (i.e. off) with a one second delay between each action.
Since the RPi 2 is quite new then I needed to manually update RPi.GPIO before it would work. However I think the latest version of Raspbian has the updated GPIO module. But for those interested, you can find more help with updating RPi.GPIO on Adafruit’s How to Fix Error Loading RPi.GPIO Python Library On Your Brand New Raspberry Pi 2. There is also a useful primer on building the LED circuit.
If you liked the Raspberry Pi 1, then you will love the Raspberry Pi 2. The performance jump from the Pi 1 to the Pi 2 is excellent, and the extra memory really helps the desktop performance. Because the Raspberry Pi Foundation has managed to keep the price the same then there is little to complain about. Android support would be nice, but the Pi has thrived so far without it, so it isn’t a deal breaker by any means. The promise of Windows 10 is intriguing and the current support for Linux is excellent. So, go buy a Raspberry Pi 2, you won’t be disappointed.