Embedded Android - The New Generation


Introduction
Putting Android on an embedded device is a complex task involving an intricate understanding of its internals and a clever mix of modifications to the Android Open Source Project (AOSP) and the kernel on which it runs, Linux. Before we get into the details of embedding Android, however, let’s start by covering some essential background that embedded developers should factor in when dealing with Android, such as Android’s hardware requirements, as well as the legal framework surrounding Android and its implications within an embedded setting. First, let’s look at where Android comes from and how it was developed.
History
The story goes that back in early 2002, Google’s Larry Page and Sergey Brin attended a talk at Stanford about the development of the then-new Sidekick phone by Danger Inc. The speaker was Andy Rubin, Danger’s CEO at the time, and the Sidekick was one of the first multifunction, Internet-enabled devices. After the talk, Larry went up to look at the device and was happy to see that Google was the default search engine. Soon after, both Larry and Sergey became Sidekick users.
Despite its novelty and enthusiastic users, however, the Sidekick didn’t achieve commercial success. By 2003, Rubin and Danger’s board agreed it was time for him to leave. After trying out a few things, Rubin decided he wanted to get back into the phone OS business. Using a domain name he owned, android.com, he set out to create an open OS for phone manufacturers. After investing most of his savings in the project and having received some additional seed money, he set out to get the company funded. Soon after, in August 2005, Google acquired Android Inc. with little fanfare.
Between its acquisition and its announcement to the world in November 2007, Google released little to no information about Android. Instead, the development team worked furiously on the OS while deals and prototypes were being worked on behind the scenes. The initial announcement was made by the Open Handset Alliance (OHA), a group of companies unveiled for the occasion with its stated mission being the development of open standards for mobile devices and Android being its first product. A year later, in September 2008, the first open source version of Android, 1.0, was made available.
Several Android versions have been released since then, and the OS’s progression and development is obviously more public. As we will see later, though, much of the work on Android continues to be done behind closed doors. Table 1-1 provides a summary of the various Android releases and the most notable features found in the corresponding AOSP.

Embedded Systems
An embedded system can be thought of as the brains of a larger mechanical or electrical system. A combination of computer equipment will be used to create an always-on logic center which is responsible for controlling the greater device functionality. What that functionality is depends on the machine or device. It could be responsible for anything from activating a drawbridge to triggering your ice machine.
The full set of electrical components (microprocessors, signal processors, RAM, resistors,capacitors, COM ports, etc.) are controlled by an embedded software operating system. These operating systems have traditionally been highly specialized and unfamiliar to even the technical community (see ITRON). The result is that embedded system technology has lagged the computer industry in feature advancements. After all, a classic embedded device has a fixed function. It’s not meant to be a platform for any purpose other than the one it was originally designed for.

Embedded Android
More recently however, a new breed of embedded technology is emerging using customized versions of the Android operating system. At first blush, Android may sound like an odd choice as an embedded OS, but in fact Android is already an embedded OS, its roots stemming from Embedded Linux. Where Android becomes appropriate as an embedded operating system outside of mobile devices is in devices which require a user interface or multimedia capabilities. Android offers several advantages over proprietary embedded operating systems, not the least of which is global familiarity in developing for the platform. Other advantages include a stable kernel, no royalties or licensing fees, and a vast library of open source code and device drivers. All of these things combine to make creating an embedded system more accessible to developers and manufacturers.
Embedded Android OS is not without its shortcomings however. Like all general purpose embedded operating systems, the code base carries significant processing overhead and a larger memory footprint when compared to proprietary embedded OS’s. There is substantial functionality that is either irrelevant or not suited toward embedded systems outside of mobile devices. The beauty of an open source operating system like Android however, is that individuals and companies alike are free to strip down, modify, and add to the source code to suit their business needs.
  
Three embedded Android devices that are worth your consideration

Embedded Android devices are multifunctional and can be adapted to a wide variety of potential applications. Here are three embedded Android devices currently on the market.

Sanoxy MK808
The MK808 is a very affordable option, and seems to be actually fairly generic: the apparent creator, Sanoxy, lists the device at $99.99 (USD), though it can be found through third parties on Amazon for under half that. As embedded Android devices go, this appears to be the most ubiquitous. The connectivity options are somewhat limited: it has one microSDHC slot, one USB 2.0 host, one USB-OTG (Micro) port, and as one would expect, HDMI out. The specs are certainly reasonable, with a Rockchip RK3066 Dual-Core ARM CPU at 1.6 GHz, paired with a Mali-400 GPU, 1 GB RAM, and 8 GB NAND onboard.

The lack of available ports can be somewhat limiting, but that can be corrected with a USB hub. The current version of Android for the MK808 is 4.2.

Pivos XIOS DS
One of the more expensive, yet more versatile options, is the Pivos XIOS, at a MSRP of $109.99 (USD).  Unlike other embedded Android solutions, the XIOS offers a great deal more in terms of connectivity. In addition to the standard microSDHC slot and HDMI out, it has 3 USB 2.0 ports, a 10/100 Ethernet port (in addition to 802.11 b/g/n Wi-Fi) and a front-facing IR port for the included remote control. It has a slightly larger footprint to accommodate those extra options. At 3.93" x 3.93" x 0.66", it's somewhat larger than the gum stick form factor common to other embedded Android devices. Under the hood is an ARM Cortex-A9 CPU at 800 MHz, with a Mali-400 GPU, 512 MB of DDR2 RAM, and 2 GB NAND.
 

Somewhat secondary to being an embedded Android device, Pivos is marketing it primarily as a video player, with a custom distribution of XBMC, which is optimized to use hardware decoding, though they insist that XBMC support is presently in beta. Additionally, the XIOS DS is still on Android 4.0 (Ice Cream Sandwich), not Jelly Bean.

HardKernel ODROID-XU
The ODROID-XU, at an MSRP of $169.00 (USD), is one of the more expensive devices of its type, but it packs a great deal more power for the price. This device is quite clearly somewhere between industrial and enthusiast level and is much more open for those who want to get to the circuit board and do interesting things with the hardware. The first indication of this is that the case on the ODROID-XU is a polypropylene shell that snaps shut: no screws, no mess — just pop it open.
The ODROID-XU has a Samsung Exynos 5 CPU, which is one of the first commercially available ARM "big.LITTLE" CPUs: It contains a quad-core ARM Cortex-A15 at 1.6 GHz, and a quad-core Cortex-A7 1.2 GHz in one package. Alongside that is a PowerVR SGX544MP3 GPU, 2GB LPDDR3 RAM, 10/100 Ethernet, 4 USB 2.0 host ports, 1 USB 3.0 host port, 1 USB OTG port, microHDMI output, and for storage, microSDHC or eMMC 4.5. It also has 30 I/O pins for various uses. Of note, 802.11 b/g/n Wi-Fi is available only as a USB module, though there's clearly no real shortage of those.

The ODROID-XU currently runs Android 4.2.2 and Ubuntu Server 13.04 with only console output. Older ODROID devices have support for Ubuntu but in a way that isn't quite hardware-optimized, and according to HardKernel, the major impediment in Linux support now is the HDML/LCD driver for X.Org. Further updates will occur in Q4 2013.

Quick comparison: Raspberry Pi
The Raspberry Pi is a very neat device and great educational tool, but in fairness, it isn't that great at running Android. The Pi has a single-core 700 MHz ARM processor and 512 MB of RAM. It's quite capable of running minimal Linux distributions, RISC OS, and even the open-source BeOS offshoot Haiku, but Android may well be a bit too resource-intensive for it. The Raspberry Pi definitely has cost working in its favor — at $25 or $35 (USD) depending on the model. So, if you're not tied to Android, it's definitely worth a look.

Conclusion

Buy according to your need. If you need to be pushing a lot of pixels or crunching a bunch of numbers on a small board running Android, the ODROID-XU is the product for you. If you want to watch Netflix on your TV or run a video streaming app in a public place, the MK808 can accomplish that for you with ease and within budget.



Previous
Next Post »