Take a plain, ordinary (read: boring, with limited functionality) $60 wireless router and supercharge it with cool features and lots more functionality, control, and diagnostics. There's much more under the hood of these devices than is accessible with the vendor's default firmware versions. Even the updates from the vendor's support website unlock only a fraction of the router's capabilities.

Third-party developers have made firmware upgrades available that unleash a lot more functionality.

"What is this 'firmware' of which you speak?" you ask. Well, that router is really just a fancy pile of switches waiting to be told what to do; that's the hardware. The firmware consists of the start-up instructions that make those switches actually do things. It's called firmware because it's not in the form of traditional "software" -- it's not on a moving disk. It is stored on a non-volatile memory (NVRAM) chip. The good news is: the vendors allow changes to that chip, so if they produce new versions of firmware, you -- the end-user -- can copy another version into NVRAM, letting your old device do new tricks. It also means that the chip can hold other code -- code written by someone other than the original vendor...

Note: I'm working on an updated version of this "-able" using firmware release v.24 SP1. Stay tuned...

Step 1: Assumptions and Preliminary Notes

Assumptions for this Instructable
  • Using DD-WRT v23.SP2 firmware images
  • Using Linksys WRT54G v1.1 router (serial # prefix CDF2)

A few notes from the DD-WRT hwsupport.txt file:
  • For upgrading from the original Linksys firmware, please use the generic mini version (dd-wrt.vXX_mini_generic.bin) and flash it from the web GUI interface.
  • After this first flash upgrade, any other DD-WRT full firmware binary may be applied.
  • For flashing via the web GUI interface (after applying the mini firmware), always use the included 'generic' binaries.
  • The other Linksys router version-specific binaries are meant to be applied only through tftp upgrades.
  • WARNING: Never, and I say never try to clear the nvram by the mtd utility. (mtd erase nvram). This will also delete your hardware MAC addresses which aren't stored in the CFE like in other routers -- the command line mtd utility can permanently brick your router.

(Note: This Instructable will work with most models of LinkSys WRT54G-series router. Obviously, the G-specific details would need to be adjusted to match the model being modded.)

Step 2: Prepare the Router for Upgrade

1) Determine the version of the router, to know what the technical details are for your specific model

2) Download the Upgrade firmware version utility from Linksys. This is a TFTP utility needed for upgrading to any DD-WRT firmware type except "generic"

3) Download latest firmware from DD-WRT Downloads page:
3.1) Download the Mini firmware for your specific router model. Mini flash is required for all upgrades, as an interim stage between Linksys firmware and the final DD-WRT firmware configuration.
3.2) The Standard, VPN & VOIP versions have different feature sets, but all share the same core extended functionality.
3.3) If zip files are downloaded, there are different file versions within for the different router models, so be careful which file you select when upgrading.

4) Reset the router to factory defaults. The router's default configuration should now be the following:
4.1) IP address:
4.2) Subnet mask:
4.3) Username: admin
4.4) Password: admin

Step 3: Connect to the Router

1) Assign the Ethernet port on your laptop/desktop a static address that matches the default factory subnet of the router. Follow these steps to assign a static address. (It's possible to perform the upgrade with a DHCP address, but a static address is more reliable.)

2) Use an Ethernet cable to connect to the router through a 10/100 port for performing the flash upgrade. (It's possible to flash the router via a wireless interface, but it's much more reliable to use a wired connection.) Use a web browser to connect to the router's administration interface using the above credentials.

The result should look something like this:

Step 4: Mod It! Upgrade the Firmware

Use the router's web GUI interface to flash the router to the "mini" firmware. Be sure to use the "generic" mini firmware file when using the web GUI. Apply the firmware and heed the warnings not to shut down the browser window or power off the router until the process has completed.

The firmware upgrade page, with the "mini" generic firmware selected, in the process of upgrading the firmware:

Step 5: Upgrade the Firmware, Cont.

Once the firmware upgrade has completed, the following screen should appear. Wait a minute or 2 before continuing:

Step 6: Upgrade the Firmware, Cont.

Perform a hard reset on the router. It should then restart with the DD-WRT "mini" firmware successfully applied.

The DD-WRT firmware has different login credentials, and the mini firmware upgrade sets the following values:
1. IP address:
2. Subnet mask:
3. Username: root
4. Password: admin

The default web page displays an overview system information page without requiring a login (Note the current active version in the upper-right of the router's web interface, and the new default router name):

Step 7: Apply the Full Firmware Version

With the "mini" firmware in place, the final firmware upgrade may be applied.
1. Select the Administration tab and log in with the DD-WRT default username and password.
2. Select the Firmware Upgrade tab from the Administration page.
3. Browse to the DD-WRT version of firmware selected to download (Standard, VPN, VOIP) and use the generic binary file.

Step 8: Upgrade Successful!

Wait for the upgrade to transfer. The router will restart, and the following screen will appear:

Step 9: Access the Upgraded Router

Once the router has completed resetting, login with the DD-WRT default credentials, if prompted (some browsers cache credentials):

Step 10: Fully Modded

The router upgrade is now complete!

The mini firmware need only be applied once. It serves as a transition between the Linksys and full DD-WRT binaries. Other DD-WRT firmware images (VPN, VOIP) may be applied using the same process for applying the Standard binary.

The basic setup page should appear, with the new firmware version showing in the upper right:

Step 11: Unbricking a Router

Sometimes a flash upgrade attempt gone awry can disable some components -- such as the 10/100 ports -- and leave other services functional. It may be necessary to configure a static IP address on the default IP subnet to communicate via the 10/100 ports, instead of relying on receiving a DHCP-assigned address.

Note: even though all warnings say never flash the router across a wireless interface, it is possible to do so successfully. I have found that in some cases a bad flash attempt disables the LAN ports; the only option in this instance is to connect to the "bricked" router trough the wireless interface.

Unbricking a WRT54G router

Step 12: DD-WRT Features

Here are just some of the features that this DD-WRT firmware makes available that transform this router into something far cooler than the vendor firmware provides:

  • Adjust transmit power -- boost the wireless transmitter up to a whopping 251mW. Note: Please keep in mind that FCC regulations restrict wireless transmit levels for devices like these. Turn up the power incrementally until you get the level of service you need; you do not want to get noticed by the Fed. You could also "drown out" other wireless signals that use the same channel. A lot depends on the antenna configuration used and other factors, so just be careful. If you want more range, check out WDS below.
  • Afterburner -- WRT54GS routers support SpeedBooster technology, and with wireless clients that support this feature, wireless performance can be increased significantly.
  • QoS -- Use Quality of Service to prioritize types of network traffic. Let some applications have more bandwidth than ohers!
  • Dynamic DNS -- Even without a static IP address from your service provider, you can access your router with a DNS name. dyndns.com provides a free service to associate a DNS name with your router (There are other DDNS providers, as well). If you need to get to your router from the outside world, dynamic DNS lets you have a consistent name that stays the same, even when its dynamic address changes (which it will, frequently).
  • Advanced routing features -- Configure your router as a border router using BGP or OSPF routing protocols.
  • VLANs! -- establish virtual network segments using VLAN IDs and create more sophisticated network configurations.
  • WDS -- Wireless Distribution System allows your router to talk to other routers as access points. This means you can extend the range of your network by letting routers talk with each other as bridges, resulting in wider network coverage.
  • WEP, WPA and WPA2wireless security methods
  • RADIUS authentication -- provide for strong network authentication by accessing an external server to verify credentials.
  • Virtual Private Network access -- reach your internal network resources from the outside world using a secure VPN tunnel. (This requires the VPN firmware version)
  • UPnP -- Universal Plug and Play allows applications to automatically setup port forwardings.
  • Command shell -- Add specific startup and/or firewall commands to be run when the router starts up to create even more customized configurations

There are many other features that this firmware supports. I have just highlighted what I think might be of interest to some users. The help functionality built into the firmware is great, so poke around and don't be afraid to try things.

Oh yeah, make sure you back up your configuration before trying new features, just in case.

Just remember, your mileage may vary...

Step 13: Additional Resources

Finally, here are some additional resources that may help with the upgrade process:

  • Upgrade firmware version utility, from Linksys. Actually a TFTP utility, it's a very useful tool for upgrading Linksys router firmware.
  • TFTPD32.EXE -- An outstanding utility, it includes a TFTP server daemon and client. It also has DHCP, SNTP and SYSLOG server functionality.
  • The "Ask LinkSys" link under Support Tools on the Linksys website. Choose "Technical Support" under the Support tab. The "Ask LinkSys' option is on the left. The Tech Support page is helpful for walking through lots of different issues and finding support documents quickly.
does anyone know how to link two routers together?.. to make a wireless bridge or chain.. so i can expand the range
The DD-WRT firmware provides a feature set called Wireless Distribution System -- WDS -- to extend the range of a wireless network with additional access points. It can be set up relatively easily, but it's recommended to use WPA to secure the links; I don't believe WPA2 is supported. I've never set it up myself, but it seems pretty straightforward, and it should even work with other brands of access point, such as Apple's AirPort models.
This is how i have my network set up so i can tell you for curtain that this works. Upstairs = DD-WRT router connected to cable modem and providing hard wire connections to a Network Accessible storage and a printer. this router also provides a wireless net work to the up stairs residents / guests Downstairs = DD-WRT router connected to the upstairs router (wireless). This router provides hard wire connections to my MythTV back end server and to a desktop PC. This router also provides a second wireless network to provide a strong wireless signal for the downstairs residents / guests. all equipment can be accessed or restricted by the system architect / administrator. DD-WRT is extremely powerful and reliable. I have been using it for years. And yes, other access points have no trouble extending this network even further.
I read up about this a few years ago and found people saying that each additional router you added into WDS slowed the network speed by half. Have you noticed a significant slowdown in your network speed?
i am currently using Clear as my provider. paying for the 3Mbps speed tier and I can put 3-3.5 from any point in the system. So, no I am not seeing a decrease in speed. One side note. The Clear modem has its own DHCP so the routers are configured as "switches" and there IPs fixed in the same rage. All LAN connections are made in the LAN ports of the routers.
What about computer to computer transfers? The reason I ask is that I have movies stored on a file sharing server, and am renting a large house. Now, the movies will just barely stream within the current bandwidth limits, but the outer edges of the house have very weak signal strength. Have you noticed a slowdown in file sharing, or do you not file share on your network? Also, are you using a 802.11G or N network?
i am using the old linksys so it is 802.11 and I stream TV / movies from netflix / hulu all the time. And the MythTV back end serves recorded TV to any node as well.
I have a Linksys WRT 54G Router and in interested in this modification to increase its range which is restricted for some reason within our house at the extremities. However its serial # prefix is CDFB1FA............. . Would this mod be suitable for this router or would there be potential problems in trying it. Thanks, Paul.
You've got a ver. 5.0 WRT54G router. They don't recommend using this router, as it has less memory than older versions and uses a 3rd-party Linux firmware. Ver. 4.0 and below have 16MB of RAM and 4MB flash built in, but 5.0 and above have only 8MB/2MB. (Ver 7.0 has Atheros hardware and is not supported at all with the DD-WRT firmware upgrade.) Ver. 5 & 6 use the 3rd-party a Linux firmware and require a special extra utility to deal with that VXWorks firmware build. If you do plan to try flashing this router, only use the Micro DD-WRT upgrade (because of smaller RAM/flash capacity) and get the VXworks utility. I've never used it, so until I stumble across a v.5 or 6 router to try this on, you're on your own. Serial numbers starting with CDF0 -- CDFA are ver. 1.0 through 4.0 and should all work with the standard DD-WRT firmware. They're available pretty cheap if you look around... I hope this helps! -- Geoff
Great tutorial, thanks. I've got a friend with a business. Right now he's got one of these running with a dsl line for his business use. He wants to be able to offer wireless internet access to his customers while they wait, but he doesn't want them to be able to access the company network. With this firmware allow such a scenario?
I'm going to make a bunch of assumptions here, so please correct me if I don't have all the information quite right. This is a business with DSL as their single Internet access pipe. They have both wired and wireless for their business users, and they want to be able to offer wireless to customers that is restricted to internet access only, no customer visibility onto the business network. The business wants to use a single Linksys DSL router to do this. Is this correct? I'm thinking that this is beyond the ability of this device/firmware.<br/><br/>In this scenario, you would really want 2 separate SSIDs and force the customer SSID direct to the WAN interface using static routing. The idea is to make customer access simple, providing an open, wireless SSID that wireless users could just attach to easily. Don't have them go through any manual config contortions, then the business stumbles into the business of providing wireless internet access in addition to their primary business. Also, you would likely want some way to throttle the amount of bandwidth used by customers, so someone in the waiting are doesn't soak up all your bandwidth with a monster download.<br/><br/>(We're now entering the part of the discussion where I'm going to make some suggestions, but having never tried them with this device, they're only possible ideas...) There are a bunch of ways to handle this. One could be to get another Linksys router, configure it with a different SSID, and set up static routing under &quot;Setup...Advanced Routing&quot; and force traffic to the WAN port. Another would be to get a more capable router, something with access list capability. Or possibly a layer-3 switch using VLANs could also address this issue. <br/><br/>Help me understand the scenario more, but I think what is desired here is beyond the capability of this inexpensive router, even after being flashed with DD-WRT firmware. <br/><br/>Ultimately, this discussion is way beyond the scope of this Instructable. It might make more sense to check out the <a rel="nofollow" href="http://www.dd-wrt.com">DD-WRT</a> website for support and user forums. Someone there would likely have a whole lot more information than I have on this particular topic.<br/><br/>-- Geoff<br/>
does anyone know how to configure voip with after doing this upgrade.
Good walkthrough.. And DD-WRT is the best alternative firmware unless you're hardcore enough to go Open-WRT..<br/>One thing though, I've witnessed this personally on high end analysis equipment, but boosting the transmit power doesn't boost it as you'd expect.. You do get a boost, but not nearly 251mW eqv, more like 70mW eqv and the peak is more of a plateau covering adjacent channels with nearly equal strength.. Also, Linksyses tend to run warm as it is<sub> and this makes it worse.. Heat will kill routers, a case fan sitting on top can't hurt.. The total energy output may be 251mW, but it gets really inefficient.. For the record I keep mine at 84mW, its a comprimise..</sub><br/>
will i fry my router if i try to give it 251 mw?
My understanding of the power setting is this: The router should permit a power setting that high, and it should not have any negative impact on the router itself. The impact could be on other devices using the same or similar frequencies. A power setting this high could "drown out" signals from other devices by overpowering those devices with its own very strong signal. The question is one of diminishing returns. A power setting of 200mw is not twice as good as 100mw, it's only marginally better. For example, a high power setting on your router could impact a neighbor's router and render their wireless service useless, because you may be using the same channel assignment. I think this is why the consumer devices have low upper limits, because the possibility of "stepping on" another device is much greater in an environment where they are likely to be used (read: residential, non-commercial, non-governmental, etc.). This is where I need to say that I don't recommend going above the pre-modded limits, except for testing purposes. You never know who you might be making angry by boosting your power too high. You could have an FCC engineer living in the next apartment, and when s/he discovers you're transmitting above "normal" levels you might get a knock at the door from some folks you don't want to be talking to, inquiring about some sort of "hacking" that may be going on in your vicinity. Simply put, play nice. Be smart about modding, and use your head when experimenting with any setting that may stray outside the normal range. Have fun! I hope this instructable is helpful. -- Geoff
Will this work with a WAP54G access point?
Unfortunately, the version of the firmware used in this Instructable does not support the WAP54G. (I posted the list of supported hardware in an earlier reply, below.) I would guess it could work, because it seems the WAP54G is simply a WRT54G without the additional wired ports, but I have never actually laid hands on a WAP54G, let alone open one up and poke around. I'm not sure it's worth experimenting with this particular firmware version, unless you can confirm that the hardware configuration matches one of the supported routers in the supported list. Take a look at the DD-WRT website to see if they have any firmware versions that support this device. It might also be worth posting a message on one of their forums to see if it's supported or if they have plans to support it. Let me know how you make out; I'd be happy to post an update with details about the WAP54G, as well.
This is great! What about older routers?
Here is a supported hardware list, from the DD-WRT download:<br/><br/><pre>Router: Serial Number prefixes: Linksys WRT54G 1.0 CDF0xxx or CDF1xxx Linksys WRT54G 1.1 CDF2xxx or CDF3xxx Linksys WRT54G 2.0 CDF5xxx Linksys WRT54G 2.2 CDF7xxx Linksys WRT54G 3.0 CDF8xxx Linksys WRT54G 3.1 CDF9xxx Linksys WRT54G 4.0 CDFAxxx Linksys WRT54G 5.0 (JTAG only with cfe update, see http://wrt-wiki.bsr-clan.de/index.php?title=Flash_Your_Version_5_WRT54G)Linksys WRT54GL 1.0 CL7Axxx Linksys WRT54GL 1.1 CL7BxxxLinksys WRT54GS 1.0 CGN0xxx or CGN1xxx Linksys WRT54GS 1.1 CGN2xxx Linksys WRT54GS 2.0 CGN3xxx Linksys WRT54GS 2.1 CGN4xxx Linksys WRT54GS 3.0 CGN5xxx Linksys WRT54GS 4.0 CGN6xxx Linksys WRTSL54GS CJK0xxxLinksys WRT300N v1 (v24 only)Allnet ALL0277 Buffalo WHR-G54S Buffalo WHR-HP-G54 Buffalo WZR-HP-G54Buffalo WBR-G54Buffalo WLA-G54Buffalo WBR2-G54Buffalo WBR2-G54SBuffalo WZR-RS-G54Buffalo WZR-G300N Mimo / Nfinity (v24 only)Belkin F5D7130/7330 (2mb flash)Belkin F5D7230-4 v1444 (2mb flash)Belkin F5D7230-4 v1000Belkin F5D7231-4 ASUS WL500G-Deluxe ASUS WL500G-PremiumASUS WL-300g ASUS WL-500g Motorola WR850G/GP --&gt; see flashing notes below Siemens Gigaset SE505 --&gt; see flashing notes below Siemens Gigaset SX550i --&gt; same as SE505Ravo W54-RT --&gt; see flashing notes for SE505 v1 (identical to SE505 v1) Askey RT210W --&gt; see flashing notes for SE505 v1 (identical to SE505 v1) </pre>
I thought this had been published before. As a mater of fact, I know it was! I just can't find the original. It was the original Instructable that inspired me to upgrade my Linksys. BTW: The two biggest features that this software adds is that the address can be made "automatic" so the router doesn't get blocked by wireless phones and the QoS actually works! The later's very important if you use Internet Phone (VOIP) like I do.
Las Vegas, do you know where the other Instructable is that you referred to in your post? I'm always interested in seeing how different folks approach the same task. When I first heard about this idea, I tried doing it on my own using the different internet sources I cited in my Instructable. Wen I finally got it working, I decided to document the steps I went through to get it working, as well as some of the missteps I ran into so others wouldn't have to make the same mistakes I made. Have you had a chance to give my Instructable a try? Feedback is always helpful. Thanks!
I can't seem to find the original, but your's was very well done. I already had, and still have DD-WRT installed. It would have been nice if you'd mentioned some of the unique features that make DD-WRT so much better than the original firmware such as: 1) Setting the WiFi channel to Automatic, thereby eliminating dropout when a nearby wireless phone decides to switch to the same channel. (Yea... I mentioned this one before...) 2) Boosting the signal level from the default of 28, extending the range by a fair amount. 3) My favorite... UPnP!!! This allows intelligent programs to automatically, and temporarily set their own port forwarding!
I like your suggestions, and I will see what I can do to incorporate them into the Instructable. I personally like the ability to fine-tune the wireless signal for each device in real time. I have been able to effectively double the signal on 1 machine in the house, the one in the basement that was furthest away and had a really weak signal. I have boosted the transmit power from 28mW to 90mW. I believe the FCC max for such devices is something like 95mW, but DD-WRT will allow the power to be set much higher. I've played with this, but found that anything over 90mW didn't gain me much. I'm not familiar with dynamic port forwarding, and I'm a little conservative when it comes to opening ports, so I would probably prefer to handle that in some static way, if needed. I have also not had any interference problems with the DD-WRT firmware, so the automatic channel setting is not something I have used, either. Both are great features. Let me look over the settings I'm using, and add some detail about what additional features are available and which ones I'm using.

About This Instructable




More by GeeDeeKay:Fluorescent to LED conversion: Stealth Before & After Greek Yogurt, from Scratch! Sonos Play 1 Under-Cupboard Mount 
Add instructable to: