This article is more than 1 year old
The other end of the telescope: Intel’s Galileo developer board
Embedded Linux, meet Arduino - Chipzilla style
Review Any notions that the Arduino platform is completely wedded to the Atmel ATmega family of microcontrollers have been shattered. The ARM-equipped Arduino Tre, which is based on Texas Instruments’ Sitara chip, is coming in the spring. And here, now is Intel’s Galileo, an Arduino board based on one of Chipzilla’s x86 processors, the 400MHz Quark X1000 system-on-a-chip.
Yet it’s no less an Arduino board than the de facto standard Arduino board, the ATmega328-based Uno R3. Perhaps more so, in fact, since it has on-board features that the Uno lacks and requires add-ons to accommodate: Ethernet connectivity, a mini PCI Express connector and a Micro SD slot, for instance.
Folk who’ve already played with an Arduino will be right at home with the Galileo. The 105 x 75mm board is programmed through the regular Arduino IDE, which Intel has tweaked to incorporate a suitable x86 compiler and USB driver.
Writing and uploading a Sketch - Arduino-speak for a resident program - is exactly the same whether you’re working with a Galileo or with the Uno or any other Arduino-compatible board, such as the Adafruit Trinket, the microcontroller board I use. Fire up the IDE on a Mac, a Linux box or a Windows PC, and you’re ready to write some simple “Hello World!” code and move on to more advanced projects.
Galileo is also home to the standard Arduino GPIO connections: 14 digital, six analogue and the eight power-related pins, all presented in four sets sets of female sockets positioned on the board so they’re ready to accept add-on Shields - what the Arduino world calls add-on cards - that have been designed for use with the Uno R3. The GPIO sockets are equally ready to grasp wires to and from your breadboard. The same pins here do PWM as do those on the Uno.
Intel’s current Shield compatibility list features 17 boards that are Galileo friendly, among them various GSM/GRPS/3G Shields for cellular connectivity, plus boards for Bluetooth, RFID, NFC, solar charging, and running servos and motors, so if you need such functionality for your project, you should be able to get a Shield that will work with Galileo.
On the underside, a full-size Mini PCIe slot
Why might a Shield not work with Galileo? Bugs or drivers, says Intel: hardware errata might cause problems, but some Shield drivers hard-code ATmega register IDs, which clearly aren’t going to easily translate to x86 equivalents. Intel is offering to help Shield driver writers fix this, so there’s scope for more Shields to become available over time. Galileo supports both 3.5V and 5V Shields, and there’s a jumper to connect or disconnect the GPIO VIN pin to the board’s 5V supply. Remove this jumper if the Shield needs more than 5V.
Galileo takes power from a bundled 5V transformer connected to a barrel socket on the board. Wait a few seconds for the board to prep itself - a light on board signals its readiness - and you can connect it to your computer using the one of its two micro USB ports.
The 5V, 2A feed is the only official way to power the board. “You must use the power supply or you will damage the board,” the firm warns, adding: “Always connect the 5V power before any other connection.” (Intel’s emphasis). There are certainly no power ports on the board for battery connections other than a pair of pins placed to allow you to connect a coin cell to keep the on-board hardware clock powered. But it shouldn’t be too hard to rig up four AAs in a suitable cradle to the barrel connector.
No need for a Shield: integrated Ethernet and, to the left, a UART port disguised as audio out
The Intel board is about twice the size of a Uno and slightly larger than a Raspberry Pi. You might see Galileo as Intel’s attempt to challenge Britain’s own board micro, which, like Galileo, runs Linux. Maybe it will oust the Pi from some embedded-type applications, but for most tasks you might set a Pi to, the Intel board isn’t suitable because it has no video or audio output off the board. You could avail yourself of a Mini PCIe card with an LVDS connector and hook up an LCD panel to it, but that’s going to increase the cost some.
Even then there’s no GPU worthy of the name in the SoC itself, and the Quark chip likewise doesn’t support Intel’s media-centric extensions to the x86 instruction set, specifically MMX and SSE. So a GUI-based OS is out of the question. If you want to make use of the board’s embedded Linux, you’ll be interacting with it through SSH or Telnet over a network connection and a terminal session.
Out of the box, Galileo has 100Mb/s Ethernet, and if you want Wi-Fi or 3G, you can add a card to the Mini PCIe socket on the underside of the board. The wireless card won’t operate with the on-board Linux firmware, but the Micro SD slot provides a home for a more capable embedded Linux distro with suitable Wi-Fi drivers installed and a place to install drivers for other types of Mini PCIe too. Intel provides such a ‘fatter’ Linux as a download.
The Micro SD slot can take a card with a ‘fatter’ version of Linux than the one embedded in the board
The Ethernet port replicates an Ethernet Shield, so you can run code that makes use of Arduino’s Ethernet library without modification. I used the WebClient sample code to grab a page off Google, and the only reason the Twitter client didn’t work is because of major changes made to the Twitter API since the Sketch was written.