First Linux-Driven Arduino Board Reaches Out with WiFi


With its low cost, open source flexibility, and extensive I/O, Arduino is popular among educators, embedded prototypers, and other hardware hackers building everything from sensor networks to robots. But adding WiFi to the boards requires expensive shields, and can be difficult to set up. Third-party, WiFi-enabled clone boards like the new Spark Core can help, but they’re often expensive, and compatibility can be an issue. In any case, with the Arduino’s limited memory support and lack of an advanced operating system, building web services on the WiFi link is even more challenging.

Arduino YunTo make up for this deficit, Arduino, the Italian-based project that designs the official line of Arduino boards, has announced the Arduino Yún. The Yún (“cloud” in Chinese) is the first in a series of WiFi-enabled Arduino boards, and the first to run Linux. It’s intended as a general-purpose prototyping board for any Arduino creation that requires an Internet connection.

Developed with a Boston-based automation development firm called Dog Hunter, the Arduino Yún single board computer (SBC) was announced at Maker Faire Bay Area last weekend. It will be available in late June for $69, compared to about $25 for the Yún’s underyling “classic” Arduino Leonardo board. Like the Leonardo, the Yún is equipped with a 32-bit ATmega32u4 microcontroller, a 16MHz crystal oscillator, and 14 GPIO pins. However, it also adds an Atheros AR9331 WiFi system-on-chip (SoC) from Qualcomm built around a 400MHz MIPS 24k processor.

The Atheros SOC runs Linino, a custom version of OpenWRT Linux, a lightweight distribution popular on low-power embedded devices. As the diagram below indicates, the Linux-based Linino part of the board is kept separate from the Arduino side. The former includes Ethernet and USB host connection in addition to WiFi, while the Leonardo circuitry has a micro-USB connection for programming via an attached PC.

Arduino Yun architectureArduino’s new Bridge library delegates network connections and HTTP transaction processing to the Linino computer running on the Atheros SOC. Developers can program the device via WiFi or the board’s USB port.

To a linked computer, the Arduino Yún automatically appears as a WiFi access point. Developers can access the Linux computer to launch applications and scripts, and pass along parameters for processing, such as sensor readings. Python and Shell scripts are supported out of the box, as well as SSH sessions for customizing the device. Users can add other open source tools and apps, as well.

Arduino provides built-in support for Temboo’s full collection of more than 100 cloud-based APIs and databases. The Temboo APIs let developers “mix and match data coming from multiple platforms,” including Twitter and PayPal, says Arduino.

The Arduino Yún is well-suited for robots, but it can be used for everything from WiFi-enabled home automation systems to 3D printers. (At the Maker Faire, Arduino also announced a new, non-Linux Arduino Robot kit billed as “the first official Arduino on wheels.”)

Arduino Yún vs. Hybrid Pi/Arduino SBCs

The Arduino Yún appears to be a response to the trend of building WiFi-enabled robots and other often motorized gear by integrating Arduino boards with low-cost, open source Linux development boards. Typically, the projects start with a Raspberry Pi, but the BeagleBone is also a popular option.

Compared to an Arduino, the Raspberry Pi offers advantages like a faster processor, Linux networking smarts, and an HDMI port. However, it lacks much of the Arduino’s I/O for motor control and sensor acquisition. This is one reason why you see so many hybrid Pi/Arduino robot projects, such as the Arduino/Pi Robot or the Telemus.

In addition, several open source, mostly robotics-focused SBCs have appeared on KickStarter that pre-integrate Raspberry Pi and Arduino functionality. These include the BrickPi, as well as the UDOO and RIO boards.

The Arduino Yún offers a more Arduino-centric solution that may well prove ideal for many Arduino developers who want WiFi and web services, but are not ready to jump headlong into Linux. Here, Linux is clearly meant to be a step-child to Arduino, with its duties primarily limited to network management. Considering all the emerging designs where Arduino is a step-child to a Linux computer, this seems to be a fitting response. Yet, assuming hackers become comfortable with this arm’s length approach to Linux development, some interesting new applications could emerge through Linino, even with the modest MIPs chip.

It will be interesting to see which way Arduino goes with its next Linux/WiFi-based design. Presumably, it will add Linux and WiFi to the more powerful Arduino Due board, but any number of interesting possibilities could emerge.