Comparison between Raspberry Pi, BeagleBone Black, Arduino, and Intel Galileo
I've been teaching an embedded systems course in PUC's CS department for a while, where we use the msp430f5529 experimenter board. It really serves the purpose of learning the bare bones of embedded systems, but unfortunately they tend to be unreliable and sometimes it gets to EE-oriented.
Part of the perks of teaching at a university is that you can apply to university programs and get to play with cool stuff. In advance. For free. So I applied to the Intel Galileo university program, and they kindly donated 20 boards we'll use this semester.
So here's a picture of 4 popular embedded boards: Raspberry Pi, BeagleBone Black, Arduino Uno and Intel Galileo:
If you look closely you'll guess which one is which :)
The following lines compare each one of them, just in case you're wondering which one to use for your next embedded project.
Raspberry Pi (Model B)
Processor: ARM1176JZF-S (ARMv6k) 700-800 MHz
Memory: 512 MB RAM, 128 Kb L2 cache, SD card for OS.
On-board peripherals: Ethernet, 2 USB host ports, true HDMI, Camera connector, Audio, Analog Video.
GPIO and interfaces: 26-pin GPIO header with 1 UART, 2 SPI, 1 I2C, 1 PWM and several other GPIO.
Operating Systems: Raspbian (Debian), ArchLinux, PiDora (Fedora) and some others.
Some remarks on the model B+:
- Thank god they fixed the USB power supply issue. If you want to connect power-hungry usb devices be sure to get a B+ model. That should fix a lot of reliability issues.
- It was about time they changed the full-size SD card for a micro SD.
- If you'll be doing audio stuff then also get the B+, they'v designed a less noisy power source.
- 9 more GPIO pins
- 2 more USB ports
This is the big sister of the first embedded board I played with, the BeagleBoard xM /nostalgia
Processor: AM335x Cortex-A8 (ARMv7) 1 GHz
Memory: 4GB on-board memory, 512 MB RAM, 256 Kb L2 cache, SD card for OS. On board-memory can be a huge improvement in performance and overall reliability.
On-board peripherals: Ethernet, 1 USB OTG, mini HDMI
GPIO and interfaces: 92-pin GPIO header, including analog inputs, LCD and MMC headers, I2C, PWM and SPI.
Operating Systems: Debian, Ubuntu, Android and others.
I'm just getting started with this one, so I can't comment on long-term reliability or issues.
Processor: Intel Quark SoC X1000 400 MHz (x86). Since this board is based on the x86 architecture it might be possible to see a port of windows embedded for this board.
Memory: 8 MB on-board memory, 256 MB RAM, 16 Kb L2 cache, SD card for OS. SD card for OS. The on-board memory is enough to get it running, though.
On-board peripherals: Ethernet, mini-PCI, 1 USB client, 1 USB host, serial port.
GPIO and interfaces: Same header as Arduino, including analog inputs, PWM, UART, I2C and SPI.
Operating Systems: Linux, based on the Yocto project. Since this is not a full-blown linux distro there's lots of functionalities not available, such as a package manager, man pages or vim.
Not an embedded board per-se, but I thought it would be unfair to leave it out of the discussion:
Processor: ATmega 328p, 8-bit, 20 MHz. This allows this board to use several thousand times less power than the other embedded boards.
Memory: 32 Kb on-board memory, 2Kb RAM, 512b EEPROM.
On-board peripherals: None, although it has a lot of expansion boards called "shields" that add a lot of functionality (including satellite modems). The USB port is only for programming the board.
GPIO and interfaces: 25-pin header, including analog inputs, PWM, UART, I2C and SPI.
Operating Systems: N/A
Which one should I buy?
- Do you want to operate this with a small battery? Then your only choice is the Arduino. Also consider taking a look at the very cheap msp430 launchpads.
- Are you getting started with programming? Then the Rapberry Pi is a good choice. Its community is huge and using google as a problem solver will come in handy. The galileo is also a good choice, but expect to have less support from the community.
- Already know arduino but want some more? The Galileo is an excellent choice, since you'll be using almost the same IDE and language. If you want to dive into Linux then the Galileo is also useful.
- Are you used to fighting with linux setting ups? The BeagleBone Black will is a good option. Although you might feel a bit short on expansion board alternatives.