Galileo is a microcontroller board featuring the first implementation of Intel’s Quark architecture, which is basically a 32-bit x86 Pentium class system-on-a-chip (SoC). The board is designed as an actual Arduino product, therefore it is fully compatible in terms of both hardware and software with the Arduino ecosystem. More than that, Galileo is the first Arduino board with a standard PC interface, a PCI Express 2.0 slot for expansion modules. Intel Galileo is aimed as an alternative to ARM based embedded products like the Raspberry Pi or the BeagleBone Black single board computers (SBC). In the following we will take a look at the board’s specs and discuss some of its key aspects.
The Intel Galileo is an Arduino certified board, powered by an Intel Quark SoC X1000 single core CPU with 256 MB of DDR3 RAM. Being build to specifications the board is fully compatible with Arduino Uno R3 shields. Programming the board is made in the same way and using the exactly the same tools as in the case of a standard Arduino board. Galileo is fully compatible with the Arduino IDE, while software files and schematics are available for download with no restrictions. The board is a perfect gap filler between the maker culture and traditional business models, offering quality and reliability in an open source package. Perhaps we will see more efforts like this in the future, as more large companies will submit into the Internet of Things (IoT) paradigm.
Galileo is delivered with an Arduino Linux distribution, however custom distros can be run such as Linaro or Yocto 1.4 Poky Linux for embedded devices. There have been some successful attempts at running standard 32-bit Linux distros like Debian, although limited processing power has to be taken into account. An interesting feature is that the board can be booted from its on board memory, making the addition of a SD card completely optional.
Microsoft is also looking forward to this board catching on, launching a program for offering Intel Galileo kits to developers who want to create with Windows and Visual Studio. An SDK for Windows will be released in the future, although plans are not yet clear. You can find more information or sign up on the program website.
Intel Galileo’s Quark X1000 is a Pentium class ISA compatible CPU derived from the well-known family of PC processors, featuring very low power consumption and a small form factor. The processor is single core and single thread, running at a constant speed of 400 MHz. This frequency might seem a tad low when compared to Raspberry Pi or the soon to be released Arduino Tre, which are built around ARM processors, however the Intel processor is generally more efficient in terms of instructions per clock cycle (IPC) than its ARM counterparts, offering similar real world performance to boards sporting higher clocked ARM CPUs. Unlike ARM SBCs the Galileo does not have an on board GPU and no support for audio.
The full PCI Express 2.0 x1 slot is useful modules for GSM, WiFi or Bluetooth communication or USB host. A real time clock (RTC) circuit is also available for low power consumption and optimized operation. The board features an array of industry standard interfaces, such as an TWI/I2C bus, SPI, UART serial data, A/D converter, and comes equipped with a 10/100 Mb Ethernet port, Micro SD card slot, USB host and client ports, 10 pin JTAG header and of course Arduino compatible headers for configurable 14 pin digital I/O, SPI, I2C an more, as we will see in the specifications below.
Intel has recently announced the 2nd gen Galileo board, featuring improved 12-bit pulse-width modulation (PWM), faster GPIO, power over Ethernet (PoE) and tweaks. Shipments of the new board should start in August this year.
In terms of cost, the Intel Galileo is priced at about 70 US Dollars, or 50 Euro, which is higher than the BeagleBone Black board and twice as expensive as a Raspberry Pi. The Intel package however comes complete with a 5V power adapter and cables for hooking up the board to your PC, and since it can be booted up from its on board memory no additional items are required for setting up and running the board.
|Processor and memory|
|CPU||400 MHz Intel Quark X1000 ISA compatible, single core, single thread, constant speed|
|Packaging||15×15 mm BGA|
|Architecture||Intel Pentium class, 32-bit|
|Cache||16 KB L1 cache|
|SRAM||512 KB embedded|
|DRAM||256 MB DDR3|
|Flash memory||8 MB legacy SPI|
|Storage||Up to 32 GB micro SD card|
|Features||Integrated RTC with optional coin battery, ACPI compatible with CPU sleep states|
|GPU, AV||Not available|
|Interfaces and connections|
14 digital I/O programmable, up to 6 for PWM output
6 analog inputs via ADC converter, multiplexed
Onboard GPIO LED
|Jumpers and switches||
IOREF jumper for 3.3V or 5V power
I2C address jumper for conflicts between internal EEPROM or I/O expander addresses with external I2C slave devices
VIN jumper for enabling or disabling on board power for attached Arduino shields
On board reset and reboot switches, power and micro SD activity LEDs
|Buses and interfaces||
I2C bus, external TWI pins
Native SPI bus controller, default 4 MHz for Arduino compatibility, configurable up to 25 MHz. External slave SPI only
On board AD7898 analog to digital (ADC) converter
UART serial data via Tx/Rx via 3.5 mm jack and on board pins
RTC 3V coin cell battery 2 pin
ICSP programming header
JTAG debugging header
x1 PCIe 2.0 expansion slot on back
2 USB 2.0 host and client ports. Additional USB host via PCIe
10/100 Mbps Ethernet with dedicated PHY chip
Micro SD card slot
Optional Wi-Fi via PCIe
|Board OS||Arduino Linux for Galileo or custom Linux distributions|
|Development||Arduino IDE and compatible for Windows 7, 8, Ubuntu Linux 12.04, Mac OS X 10.8.5|
|Power and dimensions|
The Galileo is a feature packed development board, fully compatible with the Arduino ecosystem, delivering open source versatility in a high quality Intel package. There might be some rough edges, GPIO might be slow for certain applications and PWM might not be as accurate, but probably these issues have already been sorted in the 2nd gen board. Arduino code (sketches) is executed as a user process, which is a method allowing for easier interaction between concurrent processes, at the cost of a little extra processing power. Anyway, this development platform is still new, it will reveal its strengths and weaknesses in the time to come, it has good potential and the pricing seems right.