This morning I went to check my email from my iPad and had a unpleasant surprise.  No Internet.  I have the Wi-Fi only version of the iPad and it usually has a nice solid connection to my wireless router.  On the iPad, I fired up the Settings app and sure enough, under “Wi-Fi”, it displayed not connected. I tapped “Wi-Fi” and let it scan for networks.  No sign of mine.  I tried my iPod Touch, same thing.

That pretty much rules out the iPad as being the problem, time to move up the chain of command.  My router is an ancient (by home router standards) Linksys, the WRT54GS.  It’s your basic work horse router with 802.11b (11 Mbit/s) and 802.11g (54 Mbit/s) support.  I run a 3rd party firmware on it called DD-WRT.  DD-WRT greatly enhances the functionality of the router and lets you do a lot of cool things.  It’s about 99.9% cool and 0.1% flakey.  The flakey bit means that I need to reboot it every now and then.  I don’t know if it’s a memory leak, or something is getting confused, but a reboot every once in a while clears the cobwebs out.

From my PC with a wired connection to the router, I was able to access both the Internet and the administrative web pages on the router.  So the router wasn’t completely borked, just the wireless part.  From the admin pages on the router, I could get the router to do a wireless scan.  That’s where the router goes looking to see what other wireless hotspots are nearby.  This is very useful for picking the right channel

With 802.11b and 802.11g, the router uses a narrow range of frequencies at 2.4ghz.  In the US, this range is divided up into 11 channels.  It’s kind of fuzzy how they divided the channels, they all overlap the next channel on each side.  So you really want to think of it as 3 channels, 1, 6, and 11.  Since channel 1 only bleeds up with channel 2, and channel 11 only bleeds down with 10, you really want to use channel 1 or 11 if you can.  Most routers default to channel 6, in a crowded neighborhood so you should see less traffic on 1 or 11 than on 6.

So I unplugged the router and waited about 20 seconds.  It came back up and my PC could hit the Internet.  But still no Wi-Fi.  Since a power cycle didn’t fix it, I moved up to the nuclear option: the 30/30/30 reset.  The 30/30/30 reset is the best way to clear out all of the router settings to the firmware default values.  When you upgrade the firmware on the router, you should do the 30/30/30 before you flash the router and one more time again after you have flashed the router to the new firmware.

There are 3 steps to the 30/30/30 reset:

  1. Press and hold the reset button on the router and wait 30 seconds.
  2. While keeping the reset button pressed, unplug the power from the router and wait 30 more seconds
  3. Plug the power back in while keeping the reset button pressed and wait for another 30 seconds.

Before you do the reset, you’ll want to write down any custom settings that you have performed. I use the following features added by DD-WRT:

  1. Configured the http://www.dyndns.com/ client.  This assigns the current IP address of the router to domain name provided by DynDNS.  When my ISP changes the IP address assigned to the router, DD-WRT passes the new IP address to DynDNS and they update the record for that domain name.  This makes it easy to use my VPN to connect to my home network.
  2. Configured the VPN server.  DD-WRT provides both PPTP and OpenVPN.  PPTP is simpler the configure and works for me, so that’s what I use. I’ll use the VPN if I’m a location that blocks sites that I want to access from my iPad.  I can also use the VPN if I need to open a Remote Desktop (RDP) connection to my home PC.
  3. Changed the default login account on the router.  Most routers let you change just the admin password, DD-WRT lets you change the login name as well.
  4. Set the router to use OpenDNS.  This isn’t a DD-WRT feature, most routers will let you set the DNS servers.  I use OpenDNS for their fast DNS servers and for their content filtering.
  5. Sell the router to reboot itself once a week.  In a perfect world, your computer would never need to be rebooted. In this world, it doesn’t hurt for the router to get rebooted automatically once a week.  Mine is set to reboot ever Wednesday at 5:30am.  Not much is going on at that hour.
  6. Enable UPnP.  I missed that one at first.  Windows Home Server uses UPnP to punch a secure hole through your firewall to allow remote access to your network through Windows Home Server.  I have a HP Media Smart Server and I will access my home network from work by going through it’s Remote Access.

After the reset, I set the Wi-Fi settings and after a few seconds, my iPad was back on the Internet.  Since I had already reset the settings, I decided to update the DD-WRT version on my router.  The DD-WRT web site has an interactive Router Database, where you can pick your router and it will tell you which versions of DD-WRT will work with your router.  It’s pretty handy, there are multiple versions of DD-WRT available, and different builds of each versions.

Unless you have a large pile of routers to play with, you really want to use the suggested version of DD-WRT.  If you install the wrong version or get an unstable development build, you could brick the router.  I grabbed the standard set and installed it without blowing anything up.  Then I put back my custom settings.

So now I have full Wi-Fi back, but I don’t know why it failed.  It was working the evening before, but stopped sometime last night.  MY WRT45GS is about 4 years old and has been on 24/7 the entire time.  It could be just wearing out.  My iPad supports 802.11n, it may be time to upgrade to a newer router.  The Buffalo Technology Nfiniti Wireless-N High Power Router (WZR-HP-G300NH) works very well with DD-WRT and the people at SmallNetBuilder like itJeff Atwood just picked one up too, and he’s programmer with the hardware tweak bit set to on.  It would also be nice to have a router that supports gigabit speed WAN connections for the small set of the devices that I own that support gigabit. 

The Nfiniti is a single band router, everything is broadcast over the 2.4ghz range.  I may look at a dual band router, like the Netgear WNR3500L.  With a dual band router, you can have 802.11g devices on the 2.4ghz band and the 802.11n devices on the 5ghz band.  As far as I can tell, my iPad supports 802.11a/b/g/n on either band. It may be worth it to get the heavy duty Netgear router over the Buffalo one.

Some additional notes:
Resetting the router evidently disabled my Windows Home Server’s Remote Access functionality.  I was able to repair that by performing the following steps:

  1. Launch the Windows Home Console
  2. Click on “Settings”
  3. Click on “Remote Access”
  4. Click on the “Repair…” button.  This launched the “Repairing Remote Access Configuration” wizard. Which told me that UPnP was not enabled on the router. Sure enough, I went into the UPnP page (under NAT / QoS) in dd-qrt and saw that UPnP was not enabled.  I enabled UPnP, rebooted the router, and let the wizard repair the Remote Access settings. 

The fun part was that I did this from my office PC.  I created opened a VPN connection to my router and changed the UPnP settings remotely.