Raspberry Pi, BeagleBone Black & Arduino

Just for makers, students and enthusiasts or can these single-board computers provide a rapid development environment for the professional embedded developer?

  Raspberry Pi Arduino BeagleBone
Model Model B Uno Black
Processor Core ARM1176JZFS/Videocore 4 GPU AVR ARM Cortex A8
Processor Broadcom BCM2835 AtMega 328 Texas Instruments AM3359
Clock Speed 700MHz 16MHz 1GHz
RAM 512MB 2KB 512MB DDR 3600
Storage SD Card 32KB 2GB & Micro SD Card
Video Out HDMI, AV NA HDMI
Maximum Video Resolution 1080p30 H.264 NA NA
Audio Out Via HDMI, 3.5mm Audio Jack NA via HDMI
USB 2 Host 1 Host 1 Host, 1 Client
Ethernet 10/100 Mbs NA 10/100 Mbs
Power Source USB, 5V DC Jack USB, 5V DC Jack USB, 5V DC Jack
GPIO 8 14 46
Peripherals
USART
SPI
I2C
SPI
I2C
Timers
Analog
SPI
I2C
CAN
Timers
Analog

Hardly a day goes by without an announcement of a new single-board computer. The so-called ‘Raspberry Pi’ effect has made a huge impact on the adoption of such boards. But while there is no doubt the Raspberry Pi is responsible for the single most important step up in interest in small board computers, it is by no means alone. There are many others that have been around for years. The Arduino is probably the best known and also probably the most licensed small computer board design on the market. Between them, the Raspberry Pi and Arduino are the most popular single-board computers available. They can be found in literally thousands of projects made by ‘makers’ or electronics enthusiasts ranging from a web server for your fridge to an autonomous long distance quad-copter. The extent of the open source eco system of Arduino’s microcontroller-based projects, source code and extension boards (called ‘shields’) is staggering. The adoption of the Raspberry Pi is certainly growing rapidly. With its ARM-based microprocessor and the Linux operating system, it is spawning projects and applications very different to that of Arduino.

The concept of a single-board computer is not new of course. Semiconductor manufacturers have been selling them for years as a way of easing the adoption of their latest microcontroller device by providing a low cost evaluation platform equipped with various peripherals and IO on which embedded developers can base their new design. The BeagleBoard is an example of such a development board, designed by Texas Instruments in 2008 for embedded developer students to learn open source hardware and software development based in TI’s OMAP3530 System-on-Chip (SoC). Several board iterations later, the credit card-sized BeagleBone Black is rapidly joining the ranks of Arduino and Raspberry Pi as a serious competitor.

While there is no doubt that all three boards can, and will continue, to be used for teaching electronics theory, amateur construction projects, and the like, can professional embedded developers use them as a basis of a new commercial design?

 

Arduino

Firstly, Arduino is not just one board. It represents a family of boards. All but one are based on Atmel’s well-supported and popular ATmega series of 8-bit AVR-based microcontrollers, and the Arduino family is available in a variety of size, IO and memory configurations. The Uno is the most popular board in the range (Arduino refers to it as the reference design) and uses an Atmel ATmega328 device running at just 16 MHz. IO includes 6 analog inputs and 14 digital I/O of which 6 can be used as PWM. The MCU provides 1 kB EEPROM, 2 kB SRAM and 32 kB Flash memory. The Arduino Due is based on an Atmel SAM3X8E ARM 32-bit Cortex-M3 microprocessor. Improved IO provides 54 digital IO of which 12 can provide PWM output, 12 analog in and 2 analog out. 512 kB Flash is available together with a total of 96 kB SRAM. It is clocked at 84 MHz, the fastest of all Arduino boards.

Figure 1 – Arduino Uno

All IO and power are available via two rows of connectors. And it is this standard layout that has enabled a host of 3rd party “shields” that provide everything from WiFi, LCD screens, ZigBee to name a few, expansion modules that sit on top of the board. Arduino also supply several of their own, from motor control, Ethernet and a wireless prototyping shield. A free download IDE makes programming and target upload extremely easy. The IDE makes use of a C-derived language that gives ease of access to the board’s IO capabilities. Programs or ‘sketches’ as Arduino calls them can be programmed via USB, but professional developers might prefer using the STK500-based bootloader via the board’s in-circuit serial programming (ICSP) header. The attractions for the embedded developer are many. The board design and IDE are all open source and released under GPL. The Creative Commons Attribution Share-alike licence allows for both personal and commercial derivatives although the caveat is that any own-developed boards are released under the same licence. If you are faced with creating some straightforward low-volume industrial applications you might well consider using the existing boards as-is together with necessary shields. For higher volume designs more control of BOM cost would dictate board designs from scratch. For applications that are not too compute-intensive and require interfacing to a wide range of sensors, Arduino is ideal. You can pretty much interface or connect it to anything. Likewise for designs that are space constrained, the Uno or the smallest board, Arduino Mini, would be good candidates. (For a complete listing see arduino.cc ). Developers should feel rest assured that the Arduino design has been extremely well proven. Professional tools include an Eclipse plugin and an IDE from Visual Micro.

 

BeagleBone Black

The BeagleBone Black is a relative newcomer and is the only board developed by a semiconductor manufacturer - Texas Instruments. Part of a community-supported development platform aimed at both embedded developers and ‘makers’, it claims to be able to boot Linux in under 10 seconds. Its immediate predecessor, the BeagleBone, established the board’s size and IO pinout that has now been established as the default for a range of Arduino-like shields that are called ‘capes’. Straight away though the BeagleBone Black can be seen to be very different and far more powerful than Arduino.

Figure 2 – BeagleBone Black

It is more a single-board computer rather than an embedded platform. Standing alone rather than part of a series, the ‘Black’ uses a TI Sitara AM335x 1 GHz 32-bit ARM Cortex-A8 applications processor. 512 MByte DRAM and 2GB Flash is on board. Equipped with a 3D graphics accelerator and a NEON floating-point accelerator the Black sets its sights on higher performance applications. Connectivity includes USB, Ethernet, HDMI and access to up to 65 GPIO pins via 2 x 46 pin headers that are also used for the expansion capes. Whereas with Arduino you are limited mainly to using the Arduino IDE and running single programs, the BeagleBone Black excels itself with software support. Just connect power, keyboard, mouse and screen and the Black boots the preloaded Angström Linux distribution. Other OS options include Android and Ubuntu distributions. These and several more can be downloaded from the community site – beagleboard.org. Although initially, the amount of capes available from third parties is not as diverse as Arduino’s shields, they are steadily growing as the Black finds more followers. Given the Black’s higher performance capabilities, the capes available tend to be far more sophisticated than some of Arduino’s.  Like Arduino, the BeagleBoard community encourages adoption of the BeagleBone Black’s design for commercial applications. All the hardware design files are available under open source licence. Developers are asked not to incorporate the board into a commercial design as-is unless it has been fully reviewed and approved by the BeagleBoard community.

The BeagleBone Black has some pleasant surprises when it comes to software development. Beginners and more experienced developers will be pleased to find that out of the box, the Black runs its own web server that gives an introduction to the board’s capability. Also, several web pages illustrate and run Bonescript code that provides Arduino-like access to IO. Commands such as digitalWrite() and pinMode() will be very familiar to those used to Arduino. There is also a local replica of the popular Cloud9 IDE running on the board that provides an IDE suitable for most applications. All the normal Linux commands and network utilities, such as SSH, are available. While the Bonescript commands provide a good way of getting to know the board, professional developers are more likely to gravitate towards languages such as Perl, Python and C++ that are all supported together with popular IDEs such as Eclipse, GCC or via TI’s Code Composer Studio. With its well-documented access to IO, and depth of software support, BeagleBone Black-based designs are an ideal basis on which to create applications requiring Internet connectivity, good IO connectivity and medium CPU performance.

 

Raspberry Pi

Figure 3 – Raspberry Pi – Model B board

The board responsible for much of the recent interest in single-board computers is Raspberry Pi. Initially aimed at college and university students, the Pi has proved to be a firm favourite with a much broader spectrum of the community. Junior schools, Scout groups and makers have all found applications for the Raspberry Pi. From a technical perspective, the Pi shares more in common with the BeagleBone Black than Arduino. Based on a Broadcom BCM2835 SoC it has an ARM1176 MPU core running at 700 Mhz, and is equipped with 512 Mbytes of RAM. You’ll need to install a 4 GB or larger SD RAM card. Various Linux distributions such as Fedora, Debian and Raspian are available for the Raspberry Pi, but it should be noted that it is not preloaded like the BeagleBone Black. While not a factor that would worry a professional developer, it is another step that an amateur constructor might find initially daunting. Onboard USB, Ethernet, HDMI and composite video output headline the Pi’s connectivity. A single expansion header provides access to GPIO in addition to SPI, I2C and power.

While it does not provide GPIO expansion on a daughter board arrangement such as capes and shields, the Raspberry Pi benefits from a number of third party prototyping boards and modules adequate for most designs. But the Raspberry Pi has an audio out jack, something the others do not have on the standard board. The diversity of Linux support ensures that all the popular programming languages such as C/C++, Perl, and Python are all supported. Visually based programming tools such as Sketch have proved to be extremely popular with students. But the Raspberry Pi has something rather special in the Broadcom SoC device in the shape of a VideoCore 4 GPU. This provides Blu-Ray quality playback at H.264 and supports the OpenGL ES2.0 and OpenVG library specifications. No surprise that the Raspberry Pi really suits a broad range of HD video applications and has plenty of software support for such designs, something that the Arduino and BeagleBone Black do not have.

 

Conclusion

Each board reviewed offers professional developers an opportunity to speed the design and prototype phase of a new project. The choice of programming language, IO requirements and application, together with the developer’s own skill set will greatly influence the board chosen. If embarking on a new design using a lot of sensor IO, a developer without this experience might consider a board that offers better IO tutorials and support. Whichever board approach is chosen, developers can be assured that adopting one that many other engineers are using with access to specialist forums will be much less painful than starting a new design completely from scratch.