Saturday, December 10, 2011

$35 Linux Box for Robotics and Home Automation

A survey of low-cost Linux boards for home automation, robotics, and DIY hardware — and why a ~$35 TP-Link MR3220 Wi-Fi router running OpenWrt turned out to be the sweet spot in 2011.

TP-Link MR3220 router with OpenWrt

TP-Link MR3220 — a cheap Wi-Fi router capable of running OpenWrt Linux.

The hardware landscape

Over the past few years I studied several low-cost open-source hardware platforms for home automation:

Board Price
Beagleboard$150
Beagleboard xM$150
Beaglebone$89
Sheevaplug$85
Seagate Dockstar$50
Buffalo Linkstation Live~$150
Linksys WRT-54GL$50
Asus RT-N16$90
TP-Link MR3220$35
Raspberry Pi$35

Only a few of these are truly open in terms of hardware and software. The rest are commercial products with an option to run open-source Linux.

Requirements

  • Decent processor, RAM, and flash — under $40 (2000 INR)
  • Off-the-shelf product available locally (India)
  • Open-source Linux support (OpenWrt / DD-WRT / Tomato)
  • Lightweight with low power consumption
  • Easy option to extend I/O peripheral access

Why a Wi-Fi router?

With these requirements, I narrowed down to the TP-Link MR3220. While the Raspberry Pi was the ideal solution on paper, it was extremely hard to get in 2011 due to heavy demand.

A Wi-Fi router makes practical sense: everyone already needs one for home connectivity. Adding basic home automation capabilities with little added cost — while saving you from running a 24/7 power-hungry desktop — is a good bargain at ~$35.

For enthusiasts, hobbyists, and students interested in embedded Linux, robotics, home automation, and DIY hardware, a router with USB + OpenWrt lets you skip hardware development and jump straight into firmware and software.

Demo: Android app controlling LEDs over Wi-Fi

No warranty void: You don't need to open your router. The openUI hardware is a USB add-on board that plugs into the router's USB port.

Hardware photos

Collection of Linux hardware boards

My hardware collection — various Linux boards evaluated for home automation.

MR3220 router with openUI USB board

MR3220 router with the openUI USB add-on board connected.

Android app for controlling LEDs

Android app controlling LEDs via Wi-Fi through the MR3220 + openUI setup.

openUI board close-up

Close-up of the openUI USB board.

openUI hardware specs

openUI board with LCD display

openUI board featuring LCD, IR receiver, RTC, and I2C connector.

  • AVR ATtiny2313 — acting as a USB HID device
  • LCD display — for status output
  • RC5 IR receiver — for remote control input
  • PCF8563 RTC — I2C real-time clock with battery backup
  • I2C connector — for extending with additional peripherals
  • ISP header — in-circuit programming for ATtiny2313

Find the schematic, PCB layout, and source code for the openUI hardware and software in this follow-up post.