You’ve undoubtedly witnessed the tremendous development in the nano-Linux niche lately. The Raspberry Pi
jumpstarted the nano-Linux movement and has sold over 1.75 million units. It has various video capabilities, is programmed primarily in Python and has rudimentary input/output capabilities (digital input/output, but no analog to digital conversion) that allow simple interaction with the physical world. Although the Pi has a wired Ethernet connection, it lacks Wi-Fi. At about $35, it packs quite a bit of computing horsepower while still being pretty light on the old wallet. Its main purpose is to help people learn to program.
Where the Pi was the pioneer of very small Linux systems, the Arduino is, without question, the 800-pound gorilla in the micro-controller arena. The low-end models sport 14 digital input/output pins (six can be used for pulse-width-modulation outputs) and six analog inputs. Although you can interact with the Arduino through a serial interface and USB, there’s no built-in networking capability, much less Wi-Fi. With the tiny memory and 8-bit processor, the Arduino is meant to simply loop through and read the inputs, perhaps do some calculations, and set outputs -- very quickly. Don't look now, but over the past six months there's been a flurry of nano-Linux modules with an Arduino micro-controller bolted on the back. All have at least 100 Mbs Ethernet, and a few include Wi-Fi. These Frankenstein modules pick up where the Raspberry Pi and Arduino leave off.
Why Make These Things?
We've all heard of the Internet of Things
or “IoT,” an ever expanding collection of sensors and devices that evaluate their physical environment and then do things like send data somewhere or act on the sensor data collected. A current example is the Nest thermostat. It logs temperature changes in your house, records the patterns, then makes decisions on when to turn on your air conditioner to maximize your comfort, minimize your usage, alert you to anomalies and so on. It's a small device that connects to your local network via Wi-Fi. Part of the system's brains is built into the on-site device, while data logging and remote capabilities are managed via Internet-connected servers. Obviously, there is some manner of microprocessor and input/output capability within the Nest. Don't forget about the required security measures engineered in to keep bad guys from jacking your living room temperature up to 100 degrees. Making a device that effortlessly connects to your local network basically out of the box is no small feat either. It requires a moderate level of functionality that just can't be squeezed into the memory space of an Arduino. With all that in mind, combining a nano-Linux system with the simplicity of development on the Arduino starts to really make sense. And I've been referring to static, fixed-location base devices. Put these things into a vehicle or add a battery (or solar) pack and the possibilities become substantially larger. So the big question now is, what would you build with a tiny Linux system that has an onboard Arduino and maybe even Wi-Fi? This movement -- Linux married to Arduino -- looks pretty strong. You might want to take note because I think there will be a lot of opportunities for individuals to create cool new development careers with this technology. Let's look at a couple of the latest standout models.
The soon to be available Arduino TRE
is an expansion of the easy-to-program microcontroller concept mated to a 1-GHz Sitara processor that runs Linux. The microcontroller handles the traditional 14 digital input/output lines, seven pulse-width-modulation channels, and six analog-to-digital inputs, while the Sitara part handles things like high-performance desktop applications, processing-intensive algorithms or high-speed communications. The TRE is a collaboration between the Arduino and BeagleBoard Foundations, with a solid emphasis on open software and hardware. The Linux section (the Sitara processor) has its own set of 12 digital input/output pins, plus four pulse-width-modulation channels. There's also an HDMI (1920 x 1080) port, audio input and output, a 10/100 Mb/s Ethernet connection, and five USB ports total. One other cool feature of the TRE is the built-in Xbee socket, which lets you add an Xbee or Wi-Fi radio. Libraries will be available for both the Linux and Arduino sides. You can also program the microcontroller through the traditional Arduino IDE. I expect a lot of interest from the ever growing Arduino community.
is a two processor solution, much like the Arduino TRE. It has a dual or quad core Freescale ARM Cortex-A9 microprocessor running at 1 GHz and an Atmel ARM Cortex-M3 CPU that mirrors an Arduino Due. The little powerhouse also has 1 GB of RAM along with 76 fully available general purpose input/output pins. An HDMI port handles video, and there's 10/100/1000 Mb/s Ethernet, as well as Wi-Fi. The package is rounded out with various USB ports and analog sound. The A9 module runs Linaro Linux with an option for Android. The Arduino side is compatible with all standard sketches, and they can be uploaded without additional cables or fuss. The UDOO forums are pretty active, with lots of current entries, questions and discussions. The company's “getting started” pages are easy to follow and have a clean layout.
Certainly, more “integrated” Linux/Arduino models are on the way from startups and established hardware providers. I'll leave you with one last thought to ponder: One big area of concern for the Internet of Things has been security. How do you keep the bad guys from messing with your sensors? Hey, if you have tiny little Linux systems hooked up to your sensors, just program in whatever level of security you need. The price of current Linux/Arduino systems are in the $50 to $100 range, with Wi-Fi. Like everything else in electronics, costs will most definitely come down as the technology scales. What kind of new device or system -- or career -- will you build?