The popularity of internet-connected devices built with Arduino shields or single-board computers like the Raspberry Pi and Beaglebone has exploded, but for simple tasks like controlling a relay, reading a sensor, watering your garden or lighting LEDs there's an overlooked (and often free) option: old wifi routers and access points.
Used APs and routers are wasting away in our homes, offices, and landfills, and though they won't match the hardware of a Pi or Beaglebone, they do usually have a few GPIO pins, a serial port, wireless and ethernet connectivity, possibly even a USB host port or Power-over-Ethernet support!
Businesses and institutions in particular may have dozens or hundreds of obsolete access points of a similar make and model, providing a great opportunity for creative reuse and enough potential benefit to work out quirks, limitations and annoyances, develop tools to automate an installation and setup process.
(A handful of routers, like the Linksys WRT54G or TP-Link WR703N, have developed a strong following online and have many well documented mods, but plenty of others are far less explored)
What you need:
* A old wifi router or access point
* 3.3v serial cable
* An ethernet cable
* Soldering iron, solder, wire, basic hand tools
Routers, access points and networking devices may already run some variant of Linux, many can be flashed with an embedded linux distribution called OpenWrt, which allows for more possibilities. Visit the OpenWrt web site to check compatibility and find installation instructions and support for your device.
The installation process can vary quite a bit between products: for some routers it is a simple point and click, in other cases it involves using TFTP and a serial console, and in other circumstances manufacturers have made the re-flashing process very difficult.
A FTDI/serial cable @ 3.3v can come in handy in the flashing process. As can a refresher on how to use TFTP. To flash some routers you may have to use a JTAG programmer.
The router I'm going to re-purpose is from Meraki, and to install vanilla OpenWrt I have to use TFTP and a serial console.
If you don't have a router at home check thrift stores, craigslist, friends, hackerspaces and e-waste recycling centers. You can find one for free or at a nominal cost.