For the past year I’ve been using a TP-Link WDR4300 wireless router. I tried installing OpenWrt on it but it became unusable so I reverted back to stock. Last month I decided to build my own wireless router out of the beagleboard-xM I bought three years ago.

What are the benefits of building my own router?

  • It could provide network attached storage via a USB drive or MicroSD card. Could use something more robust than the FAT filesystem too.
  • It uses less power by 3 watts. 5v @ 3A compared to 12V @ 1.5A. I think this comes out to a savings of $2 per year.
  • The Beagleboard with an external USB wireless adapter is slightly smaller than my current router
  • When new wireless technologies come out (like 80211ac) I could simply buy a new USB wireless adapter rather than having to replace the whole unit.
  • With 4 USB ports, I could add extra wireless adapters to cover the 5Ghz spectrum

TL;DR version of all the hurdles I encountered along the way:

  • The first Edulink adapter that I bought wasn’t stable, due to hostapd not supporting RTL8192 chipsets out of the box.
  • Bought another adapter that was supposed to use an Atheros chipset. But Amazon sent me version 1 of the adapter, which uses the RTL8192 chipset.
  • I tried to overcome this by compiling a version of hostapd specifically for the RTL8192 chipsets. While I could connect to my new wifi network from some devices, my MacBook wouldn’t connect, and my tablet dropped the connection every 10 seconds.
  • I then found an ALFA adapter that uses an Atheros (ath9k) chipset, and only had 1 hardware version. It works great!

I’ve yet to try using 40Mhz spread, but I don’t have a real need for the speed gain. Plus, it would likely only cause conflicts with nearby wireless networks.

The beagleboard is currently running an ARM version of ArchLinux. I should probably publish my configuration, because getting MAC cloning working on the ethernet port was less-than-trivial.

Update: You can find the config files here.