Advertisement

Blog

Arduino/Intel Galileo Project Monitors Your Inbox

The list of official Arduino boards continues to grow and, continuing with the famous-Italian-person trend, now includes the Galileo. The Galileo is Intel's toe-dip into the Arduino waters. It features the company's Quark SoC X1000 — a 32-bit, x86 system-on-a-chip that can run at up to 400 MHz with 512 kB of built-in SRAM.

The Galileo board supports the Quark with a wide range of external peripherals. There's 8 MB of Flash (to store firmware), 11 kB of EEPROM, a µSD socket (supports up to 32 GB), 10/100 Mb Ethernet, USB 2.0 host and device ports, an RS-232 port, and a mini PCI Express (mPCIE) socket. On top of all that, it's got that same, familiar Arduino pinout we all love (to hate?). The Arduino pins — including six analog inputs, SPI, I2 C, UART, and PWM outputs — are all exactly where an Arduino user would expect them to be.

What the Galileo tries to do is meld the ease of Arduino's hardware manipulation with the power of a Linux operating system. Most sketches written for Arduino Unos, Leonardos, and other boards can be ported directly over to the Galileo. You can still use popular Arduino libraries like SD, Ethernet, WiFi, EEPROM, SPI, and Wire, but you can also make requests of the Linux kernel with system() calls. This gives your Arduino sketch access to powerful utilities like Python, Node.js, OpenCV, and all sorts of fun Linux-y stuff.

Unread-email-checker example project
We were fortunate enough to receive a couple of early Galileo boards for evaluation, one of which landed in my hands to futz around with. To get a feel for the board, I tried to whip together a quick project that melded a few of the Galileo's unique features together.

Most of our work communication occurs in emails, but I'm often turned away from my computer, wielding a soldering wand or banging my head against my Pi workstation as those emails pile up. It's imperative that I stay up-to-date with the latest SparkFun memes and cool robot videos, so a simple unread-email-counter would be great to have permanently installed over my workbench. Sounds like a perfect project for the Galileo.

First, I needed a utility to check how many unread emails I have. Well, I don't need much of an excuse to whip out some Python, so I did a quick search and found this script. It logs into our email server with my credentials, checks how many unread emails there are in the inbox, and prints that value.

I loaded that onto a µSD card (also including the Galileo's SD-bootable “bigger” Linux image, required for Python) and proceeded to the next task.

To display the email count (and retain the Arduino-y-ness of the Galileo), I used an OpenSegment Shield, controlled over SPI. No modifications — just plop it right on top of the Galileo. A lot of the Arduino code here might look familiar, especially if you've used the SPI, SD, or WiFi libraries, which all work swimmingly with the Galileo.

One of the key, uniquely Galilean functions this code incorporates is the system() function, which can issue requests to the Linux kernel. With the below line of code, we can run a Python script from the comfy confines of Arduino:

system("python /media/realroot/pyMail.py > /media/realroot/emails");

The output of the script is routed to a file named “emails.” Then we can use the Arduino SD library to read the emails file, which simply contains the number of unread emails there are. After a bit of parsing and SPI-ing, we've got an unread email count printed to the OpenSegment Shield.

(Now if only I could program it to answer those emails…)

First impressions
After toying around with the board for a few days, here are a few of my thoughts on the pros and cons of the Galileo:

Likes

  • Life is pretty sweet on the Arduino half of the Galileo. Setup is about as easy as any other Arduino board, most shields should be supported (though watch out for that 3.3V operating voltage), and a lot of sketches can be ported directly over to a Galileo. Plus, there's a ton of SRAM; you can include memory-hungry libraries and mess with strings and large buffers with little worry of exhausting your memory supply.
  • A sketch's ability to interact with the Linux kernel via system calls leaves the door open for a lot of nifty hacks.
  • For those who want to directly interact with Linux, a terminal is available via the onboard RS-232 port. Or you can even SSH into the board if it's set up on a network.
  • The mini PCIE socket certainly makes it unique among modern SBCs. Though it seems like, generally, it'll be used for WiFi, perhaps it can be used to drive video, audio, SATA, or other interfaces.
  • It's open-source. You can check out the schematics or even the board design files. While you may not be designing a Quark-based board any time soon, there's still a lot to learn from these documents.

Dislikes

  • In comparison to other Arduino boards (fair or not) the documentation is limited, and the community still seems to be in its infancy. The getting started guide is a good place to start; after that, you may be relegated to forum searching/posting.
  • The recommended Linux distribution is limited. Don't go in expecting anything like a flavor of Debian (no apt-get makes for a sad Linux newbie). I definitely recommend throwing an SD card in there with the “big” Linux image, which adds WiFi support as well as the fun stuff like Python, SSH, node.js, ALSA, V4L2, and openCV.
  • The maximum I/O speed on most pins is around 230 Hz, which may be a problem for some applications. There are a couple pins capable of faster speeds (~3 MHz), and that limit doesn't have effect on the UART, SPI, or I2 C clocks.
  • A personal nitpick: To interact with the Linux terminal, one of the Galileo's UARTs is converted, onboard, to RS-232 and sent out through a 3.5mm “stereo” jack. To connect that up to my computer, I need a weird combination of 3.5mm-to-DB9 RS-232 cable, and then an RS-232-to-USB cable to my computer. It works, but I'd rather it just output a simple TTL UART signal, which I can convert as I please.

The Galileo is a unique entry into the growing Arduino board catalogue. I'm sure there are plenty of projects out there that can make use of the unique blend of Arduino and Linux. Is the Galileo ever going to unseat the Raspberry Pi? Probably not. But they both serve their own, unique purpose. The Pi, with its HDMI output, gives you a complete mini-computer, while the Galileo is more of a hardware-focused platform with a smaller Linux backbone (and Arduino shield compatibility).

Have you had a chance to play with the Galileo yet? What are your thoughts? Looking to pick one up? It looks like availability is beginning to increase; I hope to see the Galileo community continue to grow and seed more projects that can make use of the board.

This article was originally published on EBN's sister publication EDN .

7 comments on “Arduino/Intel Galileo Project Monitors Your Inbox

  1. Nemos
    April 29, 2014

    Everything it seems to be around the open source that is amazing news and it shows the direction in technology in a science. About the Galileo, it is not written the cost I have checked on the official site and it is around 55 Euros quite close to rasbbery therefore the question should be why Galileo?

    http://arduino.cc/en/ArduinoCertified/IntelGalileo

     

  2. ahdand
    April 30, 2014

    @rich- Do you think Intel has already being forgoten ? If so why do you say it ?

  3. Wale Bakare
    April 30, 2014

    Unless it stops to innovate. Or probably if its RD closes as a common practice being adopted by some OEMs/Semiconductors. Anyway, i don't see Intel easily shoved aside by ARM or MIPS though.

  4. Wale Bakare
    April 30, 2014

    >>I'm sure there are plenty of projects out there that can make use of the unique blend of Arduino and Linux<<

    I think it worths listing few of the projects this Galileo could use for.

  5. itguyphil
    April 30, 2014

    How about open sourcing to allow for further public development. I'm sure great ideas/uses would come from that.

  6. Taimoor Zubar
    April 30, 2014

    “Anyway, i don't see Intel easily shoved aside by ARM or MIPS though.”

    @Wale: I agree with you. Given the large scale of Intel's operations and their current market share, I don't think any new entrant or any existing players can prove to be a major threat for them.

  7. Wale Bakare
    May 4, 2014

    “Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software”

     

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.