How to Enhance Your Router With Open-Source Firmware

As the number of connected devices in our homes and offices continues to multiply, the limitations of many consumer-grade broadband routers become increasingly apparent. Not so long ago, many users had just one or two systems connected to the Web through their router. But today, many users have multiple smartphones, tablets, printers, laptops/notebooks, and desktop systems connected to their routers, along with such consumer electronics devices as Blu-ray players, HDTVs, and game consoles.

When a basic broadband router has to juggle so many connected devices simultaneously, bad things can happen. If you're lucky, everything works; but for many routers, the load that the connected devices impose becomes excessive, resulting in poor performance or instability.

One potential solution is a drastic upgrade to open-source firmware that can increase the performance and enhance the stability of many routers, and also add lots of new features.

Prepare Before You Commit

Flashing open-source firmware on a broadband router isn't particularly difficult, but the broad range of routers currently on the market means that the process varies from one device to another. If you decide to give open-source router firmware a try, we strongly recommend that you conduct all of your research and obtain all of the files necessary for completing the task before making a single modification; a little prep work will help ensure that the process goes smoothly.

The crucial first step is to confirm that the firmware you plan to install supports your router. We'll focus on using the excellent, open-source firmware DD-WRT here, but other good options, such as Tomato, are available as well. Though DD-WRT and Tomato aren't related, their device support and installation processes are similar. You can find plenty of information at the DD-WRT website and on the Tomato homepage; in addition, consider running a few Google searches to see what other users' experience has been with using open-source firmware on a particular router. Numerous sites across the Web are devoted to open-source firmware, and it's a good idea to consult a number of them to make sure that users are having good experiences.

If the background check yields positive results, look up your router model on the DD-WRT website's wiki, and grab whatever files are essential for completing the modifications that you'll need to make. You'll probably have to download a couple of firmware files: an initial "mini" version that installs basic functionality; and a final, full-featured version. For the Asus RT-N16 router that we used for our project, we needed both the mini and the full-size files.

At this point, some warnings are in order. First, as noted earlier, installing firmware on routers is not a universal process. You can update some routers via a simple file upload; others require elaborate, multistep procedures. Second, as also noted earlier, you should search for and read any information relevant to your particular router model in the DD-WRT wiki and forum. Third, before starting, you should investigate and learn about any potential recovery procedures for your particular router, in case problems arise. And finally, you should use a hardwired ethernet connection to perform all of the router modifications that we discuss in this article; don't attempt to flash firmware over a wireless connection.

The Installation Process

Now we're ready to walk through the process of installing DD-WRT open-source firmware on an Asus RT-N16 wireless N300 gigabit router. These steps probably won't exactly match those for your router, but typically the steps do entail resetting the router to factory defaults, flashing an initial mini build of DD-WRT, resetting the router again, and then flashing the final or upgraded build of DD-WRT.

We used an Asus RT-N16 router for our demonstration of installing open-source firmware.

1. Clear NVRAM and restore factory defaults: Assuming that you've already downloaded the required firmware files, you now need to clear the router's NVRAM (where any nonfactory-default settings are stored) and restore the unit's factory defaults. Doing so will minimize the likelihood that a problem will arise during the initial phase of installation.

To perform this step, hold down a reset (or restore) button for a few seconds, or choose the option to restore factory defaults from the Administration menu in the router's Web graphic interface. Our Asus RT-N16 supported both methods, so we chose the hard reset option. We held down the reset button on the back of the device for a few seconds, and waited for the router's power light to start blinking; then we released the button, and let the router reboot.

2. Upload the initial firmware: After the router rebooted, we opened a browser window and accessed the router's Web graphic interface. Some routers (like our RT-N16) automatically launch a configuration wizard the first time you open a browser window after performing a reset to factory defaults. Other routers require you to type the appropriate IP address into a browser--typically 192.168.1.1 or 192.168.0.1--to access the Web interface. Do whatever your router requires for this step (the information should be available in your router's manual or on the manufacturer's website).

Our RT-N16 automatically launched a configuration wizard, so we simply opened a browser window, and completed a few prerequisites (such as setting a password and a Wi-Fi passphrase) to expose the Web graphic interface's home-screen option. Then, at that home screen, we clicked first the Administration link in the main menu and then the Firmware Upgrade tab at the top of the resulting screen. On the Firmware Upgrade screen, we clicked the Browse button, selected the initial DD-WRT mini firmware file for the RT-N16, and then clicked the Upload button to commence the initial firmware upgrade.

When switching from stock to open-source firmware, you'll probably have to install a mini build first.

After installing the initial DD-WRT mini build, you must let the router reboot on its own and then settle into an idle/usable state. Be patient. You'll know that the router is idle when all of its lights have stopped flashing and your PC has obtained an IP address; the process usually takes a few minutes. When the router is ready, power it off (unplug the power cable if there is no on/off switch), wait a few moments, turn it back on, and then immediately hold down its reset button for a few moments to clear its NVRAM and restore its factory defaults once again.

3. Upgrade your version of the firmware: After the initial flash of the DD-WRT mini build and factory reset, you must once again access your router's Web graphic interface. After DD-WRT is flashed onto the device, regardless of how the router behaved before, you'll have to access its Web interface by typing 192.168.1.1 into your browser's address field. The first time you do so after flashing the mini build of DD-WRT, you'll be prompted to set a username and password. You can configure the credentials any way you'd like, but set a username and password that you'll remember, because you'll need them in order to change the router's configuration later, and you won't be able to recover them if you forget what they are. In that case you'll have to reset the router to its factory defaults again, and configure all of its options from scratch.

Once you've set the username and password and you have access to the DD-WRT Web graphic interface, it's time to flash the upgraded, full-featured version of DD-WRT. Click the Administration tab at the top of the Web interface and on the resulting menu select the Firmware Upgrade tab. In the Firmware Upgrade menu, select Reset to default settings from the After flashing, reset to drop-down list, and then click the Browse button to find the final/upgraded firmware. Select that file, click the blue Upgrade button at the bottom of the window, and let the upgrade process run its course. This operation usually takes a few minutes to complete, at which point the router will reboot.

DD-WRT clearly labels its tabs and options.

When the router completely reboots, access its Web graphic interface one more time (by typing 192.168.1.1 into your browser). You'll have to set your login credentials again. Then configure your wireless and security settings, along with any other ISP-related requirements, and you're finished.

If you're unhappy with the open-source firmware you've installed, you can always switch back to your router manufacturer's stock version. But we suspect that after enjoying the benefits of open-source firmware, you'll never want to go back to a stock router.

Note: When you purchase something after clicking links in our articles, we may earn a small commission. Read our affiliate link policy for more details.