Compact, Powerful, Efficient and Cost-Effective ARM-Based Boards Offer Compelling Hardware Options

Contributed By DigiKey's North American Editors

What's your core competency? This rarely asked question might seem elementary at first glance, but your answer may determine the difference between your design’s market failure and success. As chips become increasingly integrated and commoditized, and as the architectures they're based on become increasingly standardized, it may no longer make sense (if it ever did make sense) to devote precious development dollars, hours and headcount to designing your own board and other hardware around them, versus focusing your resources on the more easily differentiated software that runs on that hardware.

If you've decided to standardize on an ARM®-based system implementation, the Raspberry PI Foundation's various board options provide a compelling alternative to developing your own hardware, particularly for modest production volumes. Their enthusiastic adoption worldwide, coupled with their multiple sourcing options, has led to robust availability and cost-effective prices. Board variants based on multiple CPU core generations are available; they also exhibit varying dimensions and weights, power consumption specs, clock speeds, and connectivity, memory and other peripheral allocations. The boards' standardized HAT (Hardware Attached on Top) connectors and software protocols provide further peripheral expansion support, as well as debugging and other development support. Additionally, when increased system shipment volumes mean it makes fiscal sense for you to take over hardware production, the boards' open-source specifications make this a straightforward transition.

The Table provides a summary of the four Raspberry Pi board options discussed in more detail in the remainder of this article. Since processor performance and other capabilities will be a primary (albeit not only) criteria in selecting among them, the article will conclude with benchmark code samples and other evaluation guidance.

Raspberry Pi Model A+ Raspberry Pi Model B+* Raspberry Pi 2 Model B Raspberry Pi 3 Model B
SoC Broadcom BCM2835 Broadcom BCM2836 Broadcom BCM2837
CPU 700 MHz (32-bit) single-core ARM1176JZF-S 900 MHz (32-bit) quad-core ARM Coretex-A7 1.2 GHz 64-bit quad-core ARM Cortex-A53
System memory
(shared with GPU frame buffer)
256 MByters 512 MBytes 1 GByte
USB 2 ports 1 (from BMC2835) 4 (from separate multi-port hub IC)
Integrated networking None 10/100 Mbps wire Ethernet via integrated USB adapter 10/100 Mbps Ethernet, 802.11n Wi-Fi, Bluetooth 4.1
Power rating 200 mA (1 W) 600 mA (3 W) 800 mA (4 W)
Size 2.56 in x 2.22 in 3.37 in x 2.224 in
Weight 0.8 oz 1.6 oz

*Obsolete Item

Table 1: Comparison of four Raspberry Pi options showing some of the breadth of options

All four of the above boards have the following features in common:

  • Video input via a 15-pin MIPI CSI camera interface connector
  • Two video output options: digital HDMI (1.3 and 1.4) and analog composite video (3.5 mm TRRS jack)
  • I2S digital audio input
  • Three audio output options: digital HDMI and I2S, and analog (3.5 mm TRS jack)
  • Nonvolatile storage via MicroSDHC slot
  • 17 GPIO pins, plus the HAT ID bus
  • Console interface via either micro-USB cable or serial cable w/optional GPIO power connector

Raspberry Pi ("1")

The Model A+ discussed in this article (Figure 1) is a down-sized, cost-reduced successor to the Model A, which itself had been a cost-reduced (and de-featured) variant of the original Model B. Model A+ dimensions, at 2.56 in x 2.22 in (65 mm x 56.5 mm) match those of the HAT (Hardware Attached on Top) add-on expansion cards which all four of this article's board alternatives support. This particular board variant includes the least amount of SDRAM (256 MBytes) of any of the four boards, along with offering only a single USB connector and no integrated networking support (although both can be expanded via USB- or HAT-based peripherals).

The other Raspberry Pi "1" option covered here is the Model B+ (this model is now obsolete, but will be discussed for comparison to the other available models). Its system board footprint, at 3.37 in x 2.224 in (85.6 mm x 56.5 mm) is larger than that of the Model A+ (and identical to that of the Raspberry Pi 2 and Raspberry Pi 3 products to be covered next). The expanded real estate goes to good use, with double the amount of system memory to 512 Mbytes, quadruple the number of USB ports, and embedded 10/100 Mbps wired Ethernet support.

By the way, while a 700 MHz single-core ARM11 CPU may seem quaint in the modern era of deca-core CPU-based smartphones, keep in mind that this same CPU provided plenty of "punch" to power both the original Apple iPhone® and iPhone 3G successor. If your performance needs are modest, the Broadcom BCM2835 may very well suffice, making the resultant low power consumption of the Model A+ board option particularly compelling.

The original Raspberry Pi design is based on Broadcom's BCM2835 SoC, which integrates a 700 MHz single-core ARM11 CPU.

The original Raspberry Pi design is based on Broadcom's BCM2835 SoC, which integrates a 700 MHz single-core ARM11 CPU.

Figure 1: The original Raspberry Pi design is based on Broadcom's BCM2835 SoC, which integrates a 700 MHz single-core ARM11 CPU. It comes in two board form-factor (and feature set) options; the smaller Model A+ (top) and larger Model B+ (bottom). (Images courtesy of Seeed Technology)

Raspberry Pi 2

The Raspberry Pi 2 Model B, introduced the year after the rollout of both the Raspberry Pi Model A+ and Model B+, retains the dimensions of its larger forebear and is notable in two key respects from an evolutionary feature set standpoint. First off, it doubles the amount of system memory versus the Model B+ (and quadruples the Model A+ SDRAM allocation) to 1 GByte. Secondly, and even more significantly, it migrates from Broadcom's BCM2835 to the BCM2836, translating to both a 200-MHz CPU clock speed boost and an evolution from the single-core ARM11 to a quad-core ARM Cortex®-A7.

The GPU remains the same, meaning that the Raspberry Pi 2 won't necessarily drive higher graphics and video frame rates (unless the CPU's lack of sufficient processing "muscle" had been the bottleneck in the past). However, speaking of processing "muscle", the CPU upgrade this time around can often mean significant improvements in application runtime speeds, for reasons which I'll discuss in more detail shortly. Also, echoing what I previously mentioned, don't automatically discount a quad-core 32-bit CPU even though 64-bit successors are now increasingly found in even entry-level smartphones. After all, an 800 MHz dual-core implementation of the ARM Cortex-A7 was used in the iPhone 4S.

The Raspberry Pi 2 Model B uses a Broadcom BCM2836 processor containing a 900 MHz quad-core ARM Cortex-A7 CPU.

Figure 2: The Raspberry Pi 2 Model B retains the dimensions of its Raspberry Pi Model B+ predecessor, but upgrades the application processor to a Broadcom BCM2836 containing a 900 MHz quad-core ARM Cortex-A7 CPU. (Image courtesy of Seeed Technology)

Raspberry Pi 3

Following in the footsteps of its Raspberry Pi 2 precursor, and introduced one year later, the Raspberry Pi 3 Model B further evolves Broadcom's application processor from the BCM2836 to the BCM2837, translating into an evolution from the 900 MHz quad-core ARM Cortex-A7, a 32-bit CPU, to the 64-bit capable 1.2 GHz quad-core ARM Cortex-A53. The GPU core inside the BCM2837, Broadcom's VideoCore IV, remains functionally unchanged, but its clock speeds have been boosted to 300 MHz for 3D graphics processing, and to 400 MHz for video processing. The latter performance uptick allows for full 1080p 60 Hz encoding and decoding of H.264 (MPEG-4 AVC) high-profile content. The broader importance of the GPU, and therefore its clock speed increase in this SoC and board generation, will be further discussed in a bit.

The Raspberry Pi 3 further extends its predecessors' form factor compatibility, but with a further SoC upgrade.

Figure 3: The Raspberry Pi 3 further extends its predecessors' form factor compatibility, but with a further SoC upgrade to Broadcom's 1.2 GHz (and 64-bit) quad-core ARM Cortex-A53-based BCM2837. (Image courtesy of Seeed Technology)

The Raspberry Pi 3 Model B also makes notable enhancements to the included connectivity technology options. The 10/100 Mbps wired Ethernet is once again offered, and is this time supplemented by 2.4 GHz-only 802.11n Wi-Fi and Bluetooth 4.x capabilities (both of which required additional peripherals in order to support them in prior-generation boards).

So, Which Processor is Best?

CPU clock speeds, core counts and feature set capabilities are, as the prior sections of this article have highlighted, a key differentiator between the original Raspberry Pi, "2" and "3" generations. The ARM11 inside the Raspberry Pi Model A+ and Model B+ is a relatively straightforward in-order 8-stage pipeline design, with limited out-of-order instruction completion support, and runs the ARMv6 instruction set. Although specified to run at 700 MHz max, users report good success in overclocking it to 800 MHz; this particular core implementation also includes the architecture's optional floating-point unit (FPU).

ARM11's successor, the ARM Cortex-A9 found in the Raspberry Pi 2 Model B, is also fundamentally a 32-bit architecture. Like the BMC8285, the BMC3286 is frequently found to be stable when overclocked, this time from 900 MHz to 1.1 GHz. The ARM Cortex-A9 architecture is notably advanced from the ARM11, offering an out-of-order, speculative issue, superscalar 8-stage pipeline. The ARM Cortex-A9 runs the successor ARMv7-A instruction set; the core implementation found in the BMC3286 also includes the optional floating-point (improved versus the version found in the ARM11) and "NEON" SIMD co-processors. Of course, the BMC3286 embeds four processor cores versus only one in the BMC3285 precursor.

Finally, there's the quad-core ARM Cortex-A53 found in the Raspberry Pi 3 Model B. It, too, is an 8-stage pipelined processor with a 2-way superscalar execution pipeline, but this time is a full 64-bit implementation supporting the latest-generation ARMv8-A instruction set. NEON SIMD and floating-point coprocessors (both once again enhanced versus the implementations found in the ARM Cortex-A9) are once again available for your use. Also, whereas the BMC3286 only runs up to 1.1 GHz and then only in an out-of-spec overclock configuration, the BMC3287 is guaranteed to operate at 1.2 GHz with stable overclock to 1.4 GHz reported by some users.

Which processor option should you pick? The answer is application-dependent, therefore reader-specific. On the one hand, you don't want to select a CPU that will be too slow for your needs, especially if you want to reserve some performance "headroom" for inevitable future software evolution. On the other hand, it makes no sense to pay for much more processor than you require; keep in mind that your pick will have not only impact price, but also power consumption. CPUs aren't the only reason why you might want to select one Raspberry Pi board over another; you’ll need to factor in memory requirements, network connectivity options, and other attributes.

Also, higher clock speeds may mean little if your software spends most of its time in idle loops waiting for input. Note too that advanced architecture features such as superscalar and out-of-order support will only lead to notably higher achievable IPC (instructions per clock) only if there's low instruction-to-instruction dependency in your software. Similarly, a dearth of thread independence will lead to a limited-at-best throughput advantage for a multi-core CPU versus the simpler single-core alternative, and 64-bit instruction set theoretical advantages may not pan out in your particular application (not to mention their greater memory footprint demands). Conversely, keep in mind that the AArch32 improvements found in the ARMv8 instruction set will likely boost performance even if the ARM Cortex-A53 is only running 32-bit code.

Graphics Augmentation

Another available on-chip processing opportunity further complicates (or depending on your perspective, liberates) your SoC selection process. Conceptually, you can consider a graphics processor (or in this case a graphics core) to be a massively parallel processing "engine", ideal for pixel-processing tasks but also for various broader digital signal processing and other operations. The technique, known as GPGPU (general-purpose graphic processing unit), is gaining in popularity but requires software support in order to unlock the hardware potential.

Unfortunately, the VideoCore® IV GPU found in all three generations of Broadcom SoCs discussed in this article does not (at least at the present time) support OpenCL, an open standard set of programming languages and APIs for heterogeneous parallel programming maintained by the Khronos Group (existing OpenCL support in Raspberry Pi 2 and 3 is currently limited to harnessing the CPU's various resources). However, when Broadcom released the full set of VideoCore IV specifications (PDF) in open-source form in October 2014, it provided an alternative means of accessing and harnessing the GPU for general-purpose use.

Raspberry Pi enthusiast Pete Warden (also a Google Research Engineer and former Founder and Chief Technology Officer of Jetpac, later acquired by Google) for example, has figured out how to use the GPU to dramatically accelerate object recognition operations using his former company's Deep Belief deep learning SDK in conjunction with an assembler/disassembler for the QPUs (SIMD quad processing units) found in VideoCore IV (view his solution here: https://petewarden.com/2014/08/07/how-to-optimize-raspberry-pi-code-using-its-gpu/). The open-source community has also figured out how to use those same QPUs to performance-boost FFT processing. Many other project examples, often including Github-hosted open source code examples, also exist; I'd suggest using keyword searches such as the following to uncover them:

  • "Raspberry Pi GPGPU"
  • "Broadcom VideoCore IV GPGPU"
  • "Raspberry Pi OpenCL"
  • "Broadcom VideoCore IV OpenCL"

Cameras and Conclusions

Deep learning's pattern recognition capabilities, as a recent article by me highlights (and Pete Warden's project exemplifies), are notably applicable to various image analysis applications. But how do you get those images into the board? One popular option is the MIPI CSI-based Raspberry Pi Camera Module (Figure 4), based on OmniVision Technologies' OV05647 5 Mpixel CMOS image sensor. Keep in mind that even if deep learning isn't your thing, the Raspberry Pi boards are great options for computer vision applications, especially considering their enthusiastic embrace by the OpenCV open source computer vision library community.

The Raspberry Pi Camera Module integrates the MIPI SPI interface.

Figure 4: The Raspberry Pi Camera Module integrates the MIPI SPI interface that's native to all of the Raspberry Pi system boards discussed in this article; its 5 Mpixel resolution will be sufficient for many computer vision tasks.

More generally, a plethora of software options is available for your open source adoption and incorporation; Wikipedia's lengthy list of entries is a great jumping-off point. Similarly, while software simulation can provide initial insights into which Broadcom SoC generation (therefore Raspberry Pi board generation) you might want to select, the boards are inexpensive enough that you might want to just purchase one of each and do hands-on evaluations in addition or instead; the form factor-compatible Raspberry Pi Model B+, Raspberry Pi 2 Model B and Raspberry Pi 3 Model B are especially amenable to hardware swap-outs and software try-outs.

At the end of the day, I encourage you to not forget to have some fun! While the Raspberry Pi community's size, diversity and energy may produce a sometimes-overwhelming volume of output, even a bit of research can quickly uncover valuable "nuggets" that will get your next design to market quickly, robustly and cost-effectively.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

About this publisher

DigiKey's North American Editors