Instructables

Repurpose an old wifi router for the internet-of-things

FeaturedContest Winner
Picture of Repurpose an old wifi router for the internet-of-things

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

 
Remove these adsRemove these ads by Signing Up

Step 1: Check for compatibility with OpenWrt

Picture of Check for compatibility with OpenWrt

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.

QEDyesca4 days ago

In the screenshot of the code in Step #4 you show lines 21 & 24 as:

toggleLight("/cgi-bin/ledUp");
toggleLight("/cgi-bin/ledDown");

respectively, but your instructions call for making two files called:

/cgi-bin/ledOn
/cgi-bin/ledOff

That will cause an obvious error upon execution if followed. I'm sure that most would've figured it out and changed the names one-way-or-another to match, but I thought you'd like to officially fix it, too.

michaelgc2 months ago

Wow, really cool. I already have one of those routers that i previously modified into an access point but now it is just collecting dust. That means I only have to do half of the work here.

g00dhum0r4 months ago
excellent idea. there are a lot of possibilities with this.
cartiman4 months ago

Thanks for your sharing, I try it.

mickeypop4 months ago

I mentor robotics with the Boy Scouts. a few months ago we re-purposed an AP into an autonomous blimp.

Those old AP with DD-WRT are a great source for controllers.

I would like to see an instructable on that.

As would I :)

throbscottle4 months ago

I wonder if you could connect a usb or ethernet hard drive and store stuff on it? Then you get wireless NAS.

ElegantAndrogyne made it!4 months ago

I've done something like that on my WRT54GL v1.1. There were four free GPIO lines that I could use for USB. The thing doesn't work as intended, though: only one USB port is working, and it's a kernel issue, not hardware etc. The working USB port is used to connect a flash drive, so I could install more packages and I even tried to set up a small NFS share. I'm using OpenWRT Backfire with brcm-2.4 (or maybe it was brcm47xx?); newer images are too big for it, so I've got to stick with the old version, and I'm not so keen on cross-compiling a new kernel. I had dd-wrt on this device earlier, but the power supply died, bricked the router and I had to flash it via JTAG (to install the original firmware) and then tftp (to install openwrt).

_0005.jpg_0001.jpg_0002.jpg_0003.jpg_0004.jpg
danasf (author)  ElegantAndrogyne4 months ago

Very cool, thank you for sharing!

PS. There's a 7805 soldered to the USB socket's enclosure, so that the whole thing is compact and the chip has decent cooling. The red & blue ribbon supplies 12VDC. The other one is for GPIO.

Roarke4 months ago

Awesome! Thanks for sharing!

aurasolar4 months ago

Good one. I am going to make it.

ldabague4 months ago

Very very good!

Mielameri4 months ago
Very interesting idea. Love the thought of repurposing something that would otherwise be thrown away
astral_mage5 months ago

umm interesting.