Contributors

Overview

Have you heard about small Linux-based development boards like the Raspberry Pi or Beaglebone Black, but been confused about which one is best for you? This guide will compare the specifications, performance, power usage, and development experience of four popular Linux-based development boards to help you choose which is right for you!

This guide will compare each board with an emphasis on their features and capabilities for maker and electronics projects. All of these boards run a version of Linux and are great for putting sensors, gadgets, and other hardware on the internet. However, you'll see there are quite a few differences in the hardware and capabilities that might make you prefer one board over the other.

Performance

To compare performance of the boards I used the nbench benchmark tool. This is an old tool that was originally created to measure the performance of early Pentium-class computers. When nbench runs it performs a series of tests which are meant to mimic real world workloads, like compressing data or training a neural network. Each test result is combined to build a score for the memory, integer, and floating point performance of each system.

For this test I compiled nbench for each board using GCC 4.7. I chose a minimum of optimization settings as the goal was to compare each board and not necessarily produce the fastest results.

Arduino Yun

Beaglebone Black

Intel Galileo

Raspberry Pi Model A

Raspberry Pi Model B

Memory Index

1.104

5.661

0.669

2.509

2.570

Integer Index

1.840

6.032

1.198

3.305

3.291

Floating Point Index

0.038

1.591

0.621

2.064

2.002

Looking at the results, the Beaglebone Black has the strongest memory and integer performance. However the Beaglebone Black's floating point performance is slightly behind the Raspberry Pi. This can be explained because the ARM Cortex-A8 processor on the Beaglebone Black has a 'VFPLite' floating point unit which isn't as fast as other ARM FPUs. If you only care about performance and don't have a floating point heavy workload, the Beaglebone Black is a good board to consider.

Another interesting comparison is the Arduino Yun and Intel Galileo. Both boards run at the same 400mhz clock speed, but it's apparent the MIPS architecture of the Yun has slightly more performance than the Intel architecture of the Galileo. Floating point performance on the Yun is very low because it doesn't have a hardware floating point unit and must run those operations in software.

Finally, both the Raspberry Pi model A and model B are almost identical in performance. This result is expected because there is no difference between the processor on either board. The model B board only has more memory and peripherals compared to the model A. From a performance per cost standpoint, the model A board at $25 is quite impressive.

Power Usage

To compare power usage of the boards I measured the amount of current drawn by each board as it sat idle, and as it ran the nbench benchmark tool. The data from this test can help describe the low and high range for power consumption from each board.

Current usage was measured using an INA219 breakout connected to an Arduino and measuring the current drawn to each board's 5V input (either through a barrel jack or USB micro B connector).

Each board was connected to a minimum of peripherals during the test. The Beaglebone Black, Raspberry Pi model B, and Intel Galileo were connected only to a network through their ethernet port. The Arduino Yun was connected to a network through WiFi. The Raspberry Pi model A was not connected to a network, and instead connected to a USB keyboard and HDMI monitor.

From the results above it's interesting to see the wide range in power usage. The Raspberry Pi model A is at the low end with ~150mA of average current draw. At the high end the Intel Galileo board consumes well over 500mA of current, even at idle! This large difference is likely a result of the difference in peripherals and supporting chips on each board. The Galileo has a lot of peripheral chips like an I/O extender, analog to digital converter, ethernet adapter, etc. which all consume power, whereas the model A board is just the Broadcom processor and very little else.

Both the Beaglebone Black and Raspberry Pi model B have similar power usage under load, but the Beaglebone Black is noticeably lower at idle. Even with its greater performance in the benchmark, the Beaglebone Black is slightly better at power usage than the Raspberry Pi model B.

Finally, it's interesting to see the impact of WiFi with the Arduino Yun results. While running over WiFi the Yun demonstrated low power usage compared to the other boards. To see how running other boards with WiFi would compare, I ran a quick test to measure the power consumption of the Raspberry Pi model A board at idle and under load with a small USB WiFi adapter connected. Power usage with the WiFi adapter increased by about 30-150mA, depending on network activity, which puts it in line with the Arduino Yun results. In general running a board with WiFi doesn't appear to be a dramatic cost in power usage.

Temperature

To understand how hot each board can get, I measured the external temperature of each board's CPU while running nbench. Temperature was measured using an LM35D temperature sensor held against each board's CPU with tape. The temperature sensor was connected to an Arduino analog input, and a precision voltage reference was used with the Arduino analog reference input.

Note the Arduino Yun's CPU is covered by a metal RF shield. I chose not to remove this shield and measured temperature of the shield directly above the CPU.

From the results above you can see the Intel Galileo board runs quite hot, at around 60°C / 140°F. The CPU on the Galileo does not have a heatspreader or large package to absorb heat so higher temperatures like this are likely expected. According to Intel's datasheet the Galileo processor can run up to 70°C, which is in line with the data that was measured here. In general be careful of touching or obstructing the CPU on the Galileo since it is very hot to the touch.

Another interesting result is the Beaglebone Black compared to the Raspberry Pi model B. Although the Beaglebone Black has better performance and power consumption, it appears to come with a trade off of noticeably higher temperatures (about 5°C / 10°F higher).

Most of the boards run at or below 40°C / 104°F which is not excessively higher than ambient temperature (about 22°C / 72°F at the time of these tests).

Development

The software and development support of a board is just as important as the hardware. Below is a summary of the available operating systems and development tools for each board.

Arduino Yun

Operating system is based on the OpenWrt distribution and limited by only 16MB of space available to the entire operating system. Don't expect to find all the tools and utilities in a desktop Linux environment!

Out of the box Python 2.7 is available for development. Other languages such as PHP or Perl can be installed through the opkg package manager.

Unfortunately there is not enough space to run GCC and compile C/C++ code on the board. A cross-compilation toolchain must be setup to compile any custom code for the Linux environment.

All access to the I/O is done exclusively through the ATmega32U4 processor. Programming the ATmega processor is simple with the Arduino IDE, much like programming an Arduino Uno/Leonardo.

Communication between the Linux environment and ATmega processor must be done through a serial connection. The Bridge library provides a way to communicate and send tasks from the ATmega to the Linux environment.

Real-time control of devices is easy by writing code to run on the ATmega processor. Many of the shields, devices, and libraries that are compatible with the Arduino Uno/Leonardo are compatible with the Yun.

Summary

In summary which Linux-based development board is right for you? The answer is, it depends! No single board does everything well, and your needs will dictate which board is best for your project. However, some questions to help guide you to the right board include:

Are you new to Linux or programming?

Stick to a board with a large community of users and good support for programming tools, like the Raspberry Pi. Check out the Learn Raspberry Pi series here on the learning system to get started.

Do you need compatibility with Arduino shields or libraries?

Look into the Arduino Yun since it has the same processor as the Arduino Leonardo. Be careful of using the Intel Galileo as it has some quirks and incompatibilities with Arduino shields--research what's known to work in their support forums.

Do you need to read analog inputs?

Pick a board with an analog to digital converter like the Beaglebone Black, Arduino Yun, or Intel Galileo. Don't forget you can add an external ADC to your development board too!

Do you need real-time control of I/O?

Look at a board like the Arduino Yun or Beaglebone Black, which have a small microcontroller built in for running real-time programs.

For other systems like the Raspberry Pi, you might consider adding a Trinket or other inexpensive microcontroller for real-time I/O control.

Do you need the most performance possible?

The Beaglebone Black showed great performance in benchmarks. The Raspberry Pi is close, and even a little faster with floating point operations.

Do you need WiFi?

Do you need to run graphics or media applications?

Although this guide didn't cover graphics, the Raspberry Pi GPU is quite powerful and can play games like Quake III or watch movies at full 1920x1080P resolution.

Still not sure?

Don't limit yourself to just one board, consider picking up a couple inexpensive boards! A Raspberry Pi model A and an Arduino Uno are a great combination of boards. The Raspberry Pi has a full Linux environment with great performance vs. price, and the Arduino gives you real-time control of a lot of I/O.

OUT OF STOCK NOTIFICATION

YOUR NAME

YOUR EMAIL

You have been successfully subscribed to the Notification List for this product and will therefore receive an e-mail from us when it is back in stock!

For security reasons, an e-mail has been sent to you acknowledging your subscription. Please remember that this subscription will not result in you receiving any e-mail from us about anything other than the restocking of this item.

If, for any reason, you would like to unsubscribe from the Notification List for this product you will find details of how to do so in the e-mail that has just been sent to you!