So I have this Asus WL-500gP V2 router. It’s aging (802.11g only) but it’s nicely specced with lots of RAM (32MB) and ROM (8MB) so it’s nicely suited to open-source firmware. I have been using it for a couple years with TomatoVPN, which is great and probably the easiest path to running an OpenVPN server on your home network.
Tomato is great because it’s simple and has a clean, well-organized interface, while still offering a lot of semi-advanced features (like bandwidth monitoring) that you don’t get on the original firmware. TomatoVPN is a branch that adds OpenVPN server support to the mix.
But the problem with TomatoVPN is that it’s maintained by one guy, and hasn’t been updated in almost 2 years. So I decided to look for something better (or at least newer) and found TomatoUSB. I used Tomato’s own “upgrade firmware” to switch to this new firmware, and suffice it to say, something went wrong and I bricked my router. It’s not TomatoUSB’s fault, if I were recommending open source router firmware to someone who doesn’t want to spend a lot of time at it, I would still recommend TomatoUSB.
But I wanted to use this opportunity as a learning experience, and decided to go for DD-WRT. The number one reason I chose this was because of the huge community and expansive documentation behind it. I was sure that this community would help me un-brick the router. After all, there’s help here, here, here, here, here.
Well, here comes the epic battle. The instructions given on most of the forums on how to un-brick the router mostly worked, except for a couple very key elements. So to summarize the long battle, here is what I did:
- Went into bootloader mode:
- Unplugged the router’s power
- While holding down the black ”restore” button, plugged it back in, and kept holding the black button until the orange power light started to blink slowly.
- Made sure I could ping the router:
- Disabled all network connections on my computer (like WiFi) except the one I used to connect to the router
- Disabled windows firewall
- Manually updated the TCP/IP (v4) settings on my computer to match the subnet of (but a different address than) my router. NOTE: none of the HOWTOs mention this but I had previously set my subnet away from the default. This is apparently maintained in bootloader mode. So using (192.168.1.2) didn’t work for me. I had to set my ip address to (10.1.1.2). I set the subnet mask to (255.255.255.0) and set the gateway address and DNS address to my router’s IP address (10.1.1.1).
- Plugged an ethernet cable from my computer to one of the LAN ports on the router.
- Pinged my router from the command prompt to make sure the networking was setup correctly:
ping 10.1.1.1
- Used the ASUS Firmware Restoration tool (on my Windows 7 box) to flash the original firmware:
- Downloaded from ASUS here (I have no idea why it’s called UT_Printer_4077)
- There are 2 utilities that get installed, the one I used looks like this:

- Flashed the ASUS firmware (named WL500gpv2_3.0.4.4_TW.trx)
- Waited a while, and eventually the orange power light turned on solid, and I was able to access it, still at the non-standard IP address that I had set it to before, 10.1.1.1
- Cleared out the NVRAM
- While powered on, I held the BLACK restore button on the back of the router for 10 seconds or so, until the power light started blinking again.
- Unplugged the router’s power, waited a few seconds, and plugged it back in
- At this point, the IP address was restored to default, 192.168.1.1, so I had to update my computer’s TCP/IP (v4) settings again. I changed my IP address to 192.168.1.2, and changed gateway and DNS addresses to 192.168.1.1
- Went back into bootloader mode
- Used the ASUS Firmware restoration tool to flash DD-WRT
- Downloaded the standard generic firmware appropriate to my router by searching for “wl500gpv2″ on this page
- At this point, I could have installed any other firmware if I wanted, like TomatoUSB or the VPN Generic version of DD-WRT
- Flashed the DD-WRT firmware (named dd-wrt.v24_std_generic.bin)
- Waited a while, and eventually the orange power light turned on solid, and I was able to access it via my browser at 192.168.1.1. Done!
