A Comparison of Open Source Hardware: Intel Galileo vs. Raspberry Pi
By Lynnette Reese, Mouser Electronics
Featured Products
Featured Suppliers
Resources
The Intel Galileo and the Raspberry Pi (RPi) are both
do-it-yourself (DIY) electronics hardware development boards featuring embedded processors. RPi is loosely labelled
as open source in this article, but it does not qualify as open source hardware per the strictest standards, since
some of the chips on the board are notoriously difficult to get support for, rendering deep control impossible and
cobbling creativity in the process. Realistically speaking, the highest levels of openness for hardware would
include an open core, and yet many products claim to be open source hardware that go up to, but do not include,
total control of the processor. Additionally, although RPi is a wonderful educational and media processing tool, RPi
cannot be reproduced freely, as there is a copyright on the RPi schematics. Manufacture of the board is limited to a
couple of licensees.
We do not have full, deep control of the processor in Galileo, but Intel has made an Arduino-level effort to allow
users to create whatever they want with the hardware as it’s given. Arduino products can be fully re-produced and
sold as a complete copy-cat; a nasty lack of gratitude for Arduino’s generosity. Another difference is that ARM
processors are naturally “more open” than an Intel product simply by the fact that they are licensed by many, and
there are multiple tools (including free tools) out there for ARM processors. Having said that, Intel’s effort with
Arduino to produce Galileo has been top-notch, and injects something other-than-ARM into the open source hardware
landscape. No company or board will satisfy all people (and their projects) all of the time, but Intel obviously
understands the tremendous benefits that an honest effort in open source hardware will bring to both Intel and the
open source movement in general. Essentially, Intel further legitimizes what the open source movement has known all
along: open source benefits everyone in unique ways, unlike the products of common business models.
It’s not really fair to compare RPi to Galileo, since the choice should be based upon the goal of the project. Here
we detail similarities and differences so that decisions can be made indirectly prior to purchase. Galileo has a
new, memory-rich and powerful processor (Quark) and is compatible with existing Arduino open source hardware (OSHW).
Electronics aficionados (nerds) have been working DIY projects like Heath Kits since the late 1940s. Characterized
by ads in the back of magazines, these kits really picked up in the 1970s. People met physically at swapmeets (flea
markets for enthusiasts) to trade, sell things, and exchange ideas. This community has expanded to include a very
diverse fan base, and meets in online forums and at events like SXSW or Maker’s Faire. Major electronics catalogs,
like those from Mouser Electronics, are now online (mouser.com). OSHW began in academia. OSHW was developed as a
hopeful effort to provide a simple means for education in embedded hardware, where none (at least not low cost, nor
as well-documented) had existed before, post-Heath Kit. OSHW has become better known, more widely dispersed, and is
rapidly growing since it became more modular (much like chunks of code in Open Source Software) via singular
manufacturing entities such as Arduino. Not only are sources openly accessible, but hardware is ready-made and
pieces can be simply bolted together. Detailed expertise in technology is not required for implementation.
Different Applications
The Galileo board sports a 400MHz Pentium-class System-on-a-Chip (SoC) called "Quark," that was made by Intel
cooperatively with Arduino. (Galileo is compatible with existing Arduino shields that fit the Arduino Uno R3.) RPi
is normally clocked at 700MHz, but is easily overclocked (with the consequence of excess heat.) You might think that
the comparison ends here, with RPi being faster, but don’t forget to consider details such as the number of
instructions completed per clock cycle. Both are single core processors, but RPi is apparently less efficient in how
many instructions it executes per clock cycle. According to the Raspberry Pi Foundation, "The overall real world
performance is something like a 300MHz Pentium 2, only with much, much swankier graphics." i
Raspberry Pi is best for handling media such as photos or video, and a Galileo is an excellent choice if you have
a project requiring sensors (and decent memory and processing power), monitoring, or have productivity-related
applications (Galileo has a real time clock.) RPi could be used as a networked security camera or a media server,
but without an analog-to-digital converter, analog sensors would not be easy to implement. Galileo could be used to
develop smart everyday "things" with lots of sensors, such as watches, health monitoring or fitness devices, or
simply be an inexpensive personal computer running Linux sans all things Arduino. Don’t count on running Windows on
Galileo, however, since Windows is a proprietary, closed source operating system (and there is also the problem of
faking a ROM BIOS for Windows). The Galileo datasheet mentions Windows as a compatible operating system. This
actually refers to the host PC that is used to program Galileo. The host can be a Mac, or a computer running Windows
or Linux. Intel has provided development tools for the host PC to run on Windows, Linux, or a MAC. Compilers for
each of these host environments (called "cross compilers") are free. The Galileo itself comes with an Arduino Linux
distribution.
The Quark, as an x86 device, has an existing well of software, and historically the vast majority of x86 SoCs are
implemented in desktops. (Hint: Set compilers to .586 for Quark x1000.) Intel is eyeing the next wave of technology
advances, known as "The Internet of Things" (IoT) or "Industry 4.0". IoT is a concept in which things (objects,
animals, or people) have unique embedded identifiers that automatically communicate (over the internet) with other
things (machines, computers, or objects) without direct human intervention, to automatically transfer data for the
purpose of self-regulation or for acting in concert on a grand scale. Implementation would result in big data
collections and great energy, cost, and time savings with efficiencies gained from every aspect of the interaction
of "smart" things. It’s a logical conclusion that Quark demonstrates Intel's interest in the evolving IoT. Assuming
users match to the x86 instruction set, some bleed-over from the desktop domain to the embedded domain (and IoT) is
feasible (using Linux, of course.) Except that no one really has the Internet of Useful Things worked out
yet.
Intel's architecture is kind of special, due to the long history associated with it. In 1981, IBM chose the Intel
8088 and Microsoft DOS for the personal computer. As a second-source for IBM, Intel licensed the architecture to
AMD. Over the years, the x86 architecture became a PC standard. Up until 2005, the Apple processor was not an x86,
but Freescale’s Power PC, an equally powerful, but different architecture. (Motorola spun off Freescale
Semiconductor in 2004 to concentrate on wireless.) The creation and propagation of the Linux operating system
fostered the open source movement, and this concept thrives on the internet with many open source projects and
communities. Linux can be altered to run on any architecture, and each architecture has its own tree in the Linux
community where the kernel, drivers, and so forth are maintained with respect to many different processor
architectures as other new technologies are supported in Linux.
The embedded world evolved very differently. There were too many choices for processors, which were mainly chosen
for price and features. With embedded devices, the end user is not expected to ever need to look under the hood.
Therefore, the embedded processor market fragmented into varied architectures with a very large and even confusing
array of combinations of features and processing power from many different manufacturers. iii
The Intel Galileo board is genuinely Arduino, and source code is available for download with no software license
agreement other than open source licenses. Hardware and software source files, including schematics, are provided
for download. Intel has good documentation and has seeded the community by giving away several thousand Galileo
boards.
The Galileo has some differentiating attributes such as PCI Express (PCIe) and a Real Time Clock (RTC), whereas
the RPi has peripherals well-suited for graphics-intensive applications for HD 1080p streaming video. Galileo is a
memory-rich, fairly high-performance 32-bit x86 with traits well-suited to embedded portables or wearable devices:
small in size (highly integrated), low power, and fairly low cost with respect to the value that is packed in this
SoC. Some major differences: RPi has a Graphics Processing Unit (GPU.) Galileo does not. Galileo has an
I2C-controlled I/O expander that runs at 200Hz. I/O that runs through the any of the three "GPIO PWM" blocks on the
Galileo schematic is going to be limited to only 200 updates per second. IO13 avoids the limitations of the
expander, as well as the UARTs, SPI, I2C, and the ADC. Galileo boots from on-board memory. RPi can only boot from
the SD card. Galileo has the first PCIe slot supported by Arduino.
Cost: Galileo vs. RPI
The Galileo board costs almost twice as much as the RPi model B, but there are some hidden costs with RPi, because
all that comes in the box is the board. To get RPi running, you need: a USB power supply (at least 700mA at 5V) and an SD card with boot code installed. You may also want a Keyboard, Mouse, HDMI-to-DVI cable (for a monitor), and the informed RPi user will want a powered USB Hub (for parking power-hungry USB devices.) The RPi is not fussy; an old analog TV
can be a monitor via the RCA port, but it needs a standard RCA cable. On the other hand, Galileo can be booted and programmed immediately out of the box,
since it ships with a USB cable, power
supply, and some stand-offs. Galileo boots without the need for external memory like the RPi.
Before drawing judgments on the fact that RPi is shipped with no other goodies, i.e., solo in the box, note that
Raspberry Pi Foundation is a bonafide, registered non-profit with a popular product. By 2011, RPi was being mass
produced and sold over one million units within a year. Intel is not a non-profit, however, they built the Galileo
with the input and guidance of Arduino. Arduino has built a reputation on making accessible and affordable hardware,
with an emphasis on education and open source projects. With their reputation for quality and power, and Arduino's
guidance, Intel managed strike a balance between these sometime divergent ideals.
Booting the Boards
Galileo can boot from on-board memory. The RPi boots only from an SD card (4MB or more), which needs an image that
can be found on the Foundation website. Thus, RPi requires formatting a card and copying the image before booting
for the first time.
Performance
Arguably, "performance" is subjective, and depends on what you want to do with the board. Recall that Galileo runs
the 400MHz Pentium-class Quark. RPi is normally clocked at 700MHz, but since RPi performs fewer calculations per
cycle, they are roughly equivalent in this aspect. The big difference is that RPi includes a GPU as a co-processor
and is well suited to work with high definition graphics. The RPi can provide Blue Ray-quality play back. RPi allows
itself to be over-clocked, but heat dissipation increases and it might need a fan to prevent erratic operation when
overclocked. Galileo sports a 32-bit Pentium ISA-compatible SoC that uses 1/10th the power of the Intel Atom and a
price point within reach of open source projects. Galileo could be applied in remote monitoring, but without a CAN
bus, Galileo cannot interface easily with some industrial networks. However, WiFi is available with an adapter on
the PCIe slot.
Over the last decade or so, embedded processors have begun to interact more with the end user over the internet.
Embedded devices have begun to look more like desktops in terms of interaction with people and networking, and the
demarcation is getting fuzzy. The line gets more fuzzy with the x86-based Quark in the OSHW community, since so much
software has already been developed to run on x86 from a desktop point of view…and yet Quark is an embedded
processor on Galileo. (If you have to program a processor via a host, it's embedded. Once you install the Linux
operating system for use on Galileo, Galileo is a technically a desktop.) Although there is an Open Core movement
afoot, OSHW is not always 100% open, because the processor chip is not open source. (Depending on how you look at
it: ARM cores are licensed, but not "open" to reuse without cost.) Some manufacturers will make their devices more
accessible by allowing users some control over a closed-source chip (e.g., software drivers that allow some
manipulation without exposing contents lower in the stack.)
The Major Differences
Both Galileo and RPi are excellent boards, and they both have the most important feature of all: an established
ecosystem with open sources. Mouser Electronics (www.mouser.com) offers the
Galileo, and many of the products mentioned in this article. With the Galileo, Intel takes the unprecedented step of
offering a cheap, easy-to-use chip available in an Arduino certified board to deliver the x86 architecture on an
embedded platform. Galileo also follows the Arduino paradigm of accessibility through affordable pricing. It's clear
that Intel is taking OSHW seriously, and this can only be a good thing. We will see more open source hardware from
Intel. The best way to compare is side-by-side. Several tables provide main items that can make or break the
decision to move forward with either of these boards.
Table 1: Comparison of Processors & on-Board Features
| |
Galileo |
Raspberry Pi (Model B) |
| Board Dimensions |
10cm x 7cm (slight overlap for power jack)
|
85.60mm x 56mm x 21mm (with a little overlap for SD card )
|
| Processor |
Intel® Quark X1000 – single core |
Broadcom BCM2835 – single core |
| Description of Processor |
Quark, described by Intel at IDF2013, is very low power consumption, small form factor, and low cost; ideal
for "wearables," and the Internet of Things†. |
Per ARM datasheet: For devices such as smart phones, digital TVs, & eReaders, delivering media &
browser performance, a secure computing environment. |
| Architecture |
Intel ® Pentium® Class |
ARM® ARM1176™ |
| Speed |
400MHz |
700MHziv |
| Width, Instruction Set |
32-bit |
32-bit |
| Real Time Clock |
Yes, needs a 3.3v coin cell |
No |
| Cache |
16 KB L1 cache |
32KB L1 cache & 128KB L2 cache; shared with CPU & GPU |
| RAM |
512KB on-chip SRAM, dedicated for sketch storage & 256MB DRAM, dedicated for sketch storage |
512MB SDRAM (shared with GPU) |
| FLASH Memory |
8MB NOR Flash (Legacy SPI), for FW bootloader & sketch storage |
No permanent on-board Flash memory |
| EEPROM |
11KB |
No |
| GPU |
No |
Broadcom Dual-core VideoCore IV® Multimedia co-processor |
| External Storage |
Micro-SD Card (up to 32GB), & support for an external USB2.0 drive |
SD-card, & support for an external USB2.0 drive |
| Video Support |
No |
HDMI – 1080p
RCA (analog), without audio
DSI* – for touchscreens |
| Audio Support |
No |
HDMI & 3.5mm stereo audio-out jack |
| Status Indication |
LED – Board Power |
LEDs for – board power, SD card access, LAN connected, LAN activity, 100Mbps connected |
| JTAG |
10-pin, Mini-JTAG header, to be used with an in-circuit debugger such as 909-ARM-USB-OCD with the 909-ARM-JTAG-20-10 converter (available at www.mouser.com), & with OpenOCD/GDB**for Quark,
& GUI. |
Yes, headers P2 & P3. (However, there is no current support to debug the Broadcom & SMSC USB/LAN
chip.)** |
| Compatibility |
Arduino Shields that fit the
Arduino Uno R3 3.3V / 5V shields |
Arduino board connects via USB. 3rd party boards enable support for Arduino shields with Pi. |
*DSI – Display Serial Interface
**OpenOCD support for Quark X1000 may be available, or not be full featured as of this writing. https://communities.intel.com/message/211778 & https://www.mail-archive.com/openocd-devel@lists.sourceforge.net/msg04709.html |
Table 2: General Purpose I/O
| |
Galileo |
Raspberry Pi (Model B) |
| Analog I/O |
Up to 6 Analog Inputs (Muxed via an I2C-controlled expansion header), with 12-bit resolution. |
17 general purpose I/O (GPIO) pins (access to I2C, UART, and SPI.) 26-pin header |
| Digital I/O |
14 Digital I/O that can be used as input or output |
8 GPIO pins that can be programmed as Digital Input or Output |
| PWM |
Up to 6 of the DI/O can be configured as Pulse Width modulation (PWM) |
One of the digital I/O pins can be designated as PWM. |
Table 3: Comparison of Peripherals/Utilities
| |
Galileo |
Raspberry Pi (Model B) |
| USB 2.0 |
2 ports (AB and B). USB 2.0 Full Host and Client. Arduino library support (does not convert USB input to ASCII
for you.) 3rd USB Host available over PCIe. |
2 external ports. Two USB ports and share one upstream port to the LAN9512 chip that handles Ethernet as well.
Max current draw is 100mA from USB ports, not the expected 500mA. |
| Ethernet (RJ45) |
10/100 Mbps with a dedicated PHY for Ethernet control. One RJ45 port. |
10/100 Mbps via a built-in USB-to-Ethernet adapter. One RJ45 port. |
| WiFi |
No. Can use the PCIe slot or a USB port with a USB adapter to obtain WiFi. Intel® Centrino N135 min-PCIe wireless module is recommended by Intel. |
No. Can support WiFi with a USB adapter, using one USB port. |
| SD Card Slot |
Yes, a micro SD slot. Includes an on-board dedicated SD controller. |
Standard SD slot, min 4GB, class 4 or higher. RPi must boot from a portion of the SD card. |
| PCIe |
Yes, PCI Express mini. This enables WiFi, SD card, USB Host, Bluetooth, or GSM (cellular phone technology.)
|
No |
TWI/I2C
TWI means "Two Wire Interface"
|
Yes |
No |
| SPI |
Yes. Native controller, Master SPI programmable to 25MHz. Additional Slave SPI available only through via a
USB Client connector. |
Yes |
| Serial Data (UART) |
Yes. Two, one is Tx/Rx only ported as a 3-pin RS-232 3.5mm audio-type jack. Programmable. The other has
dedicated pins. |
Yes, but no dedicated pins; uses up GPIO. |
| GPIO |
Up to 6 Analog, Muxed.
Up to 14 Digital, of which up to 6 can be used as PWM. |
17 GPIO pins (access to I2C, UART, and SPI.) Input voltage limited to 3.3v only. 26 pin header GPIO interface
|
| Reset button |
Yes |
No |
| DSI (Digital Serial Interface) |
No |
Yes (Used for char-driven LCD displays) |
| CAN Bus |
No |
No |
| GPU |
No |
Yes |
| EEPROM |
Yes. 11KB. |
|
| HDMI |
No |
Full HD 1920 X 1080 |
| DVI |
No |
No |
| VGA |
No |
No |
| On-board ADC |
Yes. One AD7898. MUXed. |
No |
| Clock |
Internal. Pins for an external clock, too. On-board RTC. |
|
| Camera |
No |
Header only. Expansion accessory required. A separate RPi Camera board exists. |
Table 4: Board Requirements
| |
Galileo |
Raspberry Pi (Model B) |
| DC Power Supply (VIN) |
Included. AC/DC adapter with a 2.1mm center-positive plug. Output rating of the power adapter is 5V at up to 3A. Galileo
must only be used with 5V power supplies. |
Not included. Micro USB-plug charger providing
5VDC and 0.7A (min) or up to 2A (max ) if you plan to use accessories. |
| Power Rating |
15W |
3.5W (Model B) |
| Ethernet Cable |
Cat5e/Cat6; not included. |
Cat5e/Cat6; not included. |
| USB 2.0 type A/B-micro cable |
Included. |
Not included. |
| Mini SD Card |
Not required. |
At least a 4MB, Class 4 or better. |
| Powered USB Hub |
If you require >2A for peripherals powered via Galileo. |
Recommended to power any USB peripherals that would take RPi current draw above 1A. |
Table 5: Comparison of Software and Development Tools
| |
Galileo |
Raspberry Pi (Model B) |
| Operating System(s) for the Target |
Arduino Linux Distribution for Galileo |
Linux (e.g., Raspbian, Debian, Fedora, ARCH Linux ARM), FreeBSD, & NetBSD. |
| Integrated Development Environment (IDE) |
The Arduino IDE.
Galileo can run x86-based Linux distros without Arduino, so IDEs for Linux also qualify.
|
Python IDE, e.g. WebIDE. ARM compilers, etc. Many choices. |
| Supported Host-resident Operating Systems |
Windows 7 and 8, Ubuntu 12.04 Linux (32- and 64-bit), Mac OS X 10.8.5 and up |
Linux |
| Example Software |
Yes, Arduino Sketches. http://arduino.cc/en/ArduinoCertified/IntelGalileo |
Yes: www.raspberrypi.org |
| Programming languages |
Programming languages that support .586 GCC and ICC compilers are supported.
|
Python, C, C++, Java, Scratch, Ruby. Any language that compiles for ARMv6. |
| Drivers |
Yes, existing Arduino libraries. See Galileo FAQ: https://communities.intel.com/community/makers |
Yes. See Raspberry Pi Foundation. |
| Boots from: |
On-board firmware |
SD card with bootcode image. |
Table 6: Applications
| Application Space |
Technology |
Galileo |
Raspberry Pi (Model B) |
| Multimedia: |
Video |
No |
Yes |
| |
Audio |
No |
Yes |
| |
Camera |
No |
Yes, with purchase of an RPi camera module. |
| Industrial/Automotive: |
CAN Bus |
No |
No |
| |
LIN Bus |
No |
No |
| Networking: |
WiFi |
Yes, via PCle or via USB with an adapter. |
Can support WiFi with a USB adapter, using one USB port. |
| |
Ethernet |
10/100. Dedicated PHY. |
10/100. Shares upstream port with 2 USB ports. |
| Tablets/Smartphones: |
DSI interface |
No |
Yes |
| Connectivity: |
USB 2.0 |
1 Host port
1 Client port
Via PCIe with USB2.0 Host support |
Yes
Two USB ports |
| |
1394 |
No |
No |
| |
Arduino Shields |
Yes, direct connection. |
Yes, with separately purchased Arduino Uno or accessory boards. |
| |
Additional Boards & accessories |
No |
Yes. RPI camera, and others. |
| Storage: |
SD card |
Mini SD |
Mini SD (slot mounted under the board.) |
View Intel Galileo2 vs. Raspberry Pi2
i http://www.raspberrypi.org/faqs
ii Ross Atkin, http://www.youtube.com/watch?v=XT5lA8BZq8Y
iii http://news.cnet.com/Intel-and-AMD-A-long-history-in-court/2100-1014_3-5767146.html and
http://jolt.law.harvard.edu/digest/patent/intel-and-the-x86-architecture-a-legal-perspective-2
Lynnette Reese is a member of the
technical staff at Mouser and holds a B.S. in Electrical Engineering from Louisiana State University. Prior to
Mouser, she completed a combined 15 years in technical marketing in embedded hardware and software with Texas
Instruments, Freescale, and Cypress Semiconductor. She started her career as an applications engineer at Johnson
Controls.