October 2018 Update: I ended up taking our secondary AP off of the network. The coverage overlap such that if we were in the living room (where we spend a lot of our time) our devices were getting nearly equal signal strength from both APs. Our devices like our iPhones were bouncing between them and causing connectivity issues. As mentioned in the post below, DD-WRT will also boost the TX strength of your router, which means our primary AP seems to be more than enough for our house!
A project that’s been in my todo list for over a year was getting better WiFi coverage in our house and out to the backyard. Somehow “fiddle with WiFi coverage” never made it that high on the list until recently.
In advance of this project I’ve been collecting routers. This is a normal and fine hobby. If you’re okay with tech from a few years ago you can find good routers at thrift stores or even being given away. The main router I’m using, a Netgear N900 (WNDR4500), was five bucks at Salvation Army and still had the plastic on it. The secondary router, a Netgear N600 (WNDR3700), came free from Workantile’s storage room.
No, these are not amazing routers; however, since streaming 4k video over wifi isn’t a primary use case for us they are more than adequate. We use ethernet with our primary media devices because we are not monsters.
Installing DD-WRT
I used to run DD-WRT on a Linksys WRT54G. We upgraded from that router to a TP-Link N600 (WDR3600) after running into interference issues with our baby monitor and I never got around to installing DD-WRT on it. The stock firmware was okay enough, and coverage in our apartment was good enough. Now that we’re in a house there are corners where that one access point just wasn’t cutting it anymore.
Installing DD-WRT was easier than I remembered. It was a simple matter of finding the wiki article for each of them to research any issues with the router. Then downloading the appropriate file from the ftp site, and flashing the router’s firmware (the firmware on mine had a handy upload tool).
For example, here’s the page for the Netgear WNDR4500.
Network Setup
When we moved in I ran a few ethernet drops from the living room and my office to a shelf in the basement (that is slowly morphing into a sever closet). I set up one of the routers in the basement as the primary access point and DHCP server. The other one is in the office acting as a secondary access point.
On the non-primary router you need to switch off DHCP (you only want one router on your network trying to assign IPs), set the SSIDs and passwords to match the main router, and change the channels so they don’t interfere with each other…and that’s honestly about it. I did some other futzing around with setting the hostnames, but that was just for me.
Our devices are smart enough to pick up the other signal when it needs to. So far it’s working well and I’ve seen my iPhone move between the APs, although the main one is doing most of the work.
DD-WRT can automatically manipulate the “TX Power” of the router for you to increase the range of your wifi. I haven’t fiddled with manual settings because we’re already seeing a huge increase in range. We can get signal in the hammock in the backyard. This is a major quality of life improvement.
Should you do this?
Probably not. There’s a number of devices on the market that do what I just did with a LOT less fuss. You should get one of those. I happened to have just enough knowledge to make this worthwhile. And, frankly, for my setup, I could probably buy one new router that would give me similar WiFi coverage, but I had these around and was interested in living the dream of a multiple AP lifestyle.
I do heartily recommend you try DD-WRT if you’ve been using a cheap router and the phrase “upload the firmware” doesn’t fill you with dread. The increased radio power is worth it alone. You’ll also feel empowered and it’ll give you more administrative options than you’ll ever use. Quality of service rules, dynamic dns, and just a generally speedier UI are worth having around even if you’re not sure you’ll ever use it.