Resurrecting RT-N16 with DD-WRT

I don’t even remember when I bought it(must be 10 years now), but I have this old Asus RT-N16 router lying around, and now that I’m rebuilding my home networking, I figured why not utilize it with some DD-WRT magic and use it as the IoT/guests only AP? Sure, it’s only 802.11n with 300MBps max, but that’s more than enough for many (if not all) of IoT chirpers I have, and guests? I don’t really have guests lol (insert forever-alone meme here). jokes aside, 300MBps should be enough for their twitter needs. After all, they are visiting me to visit me, not visiting me to use my network.

The DD-WRT wiki for this router is quite helpful, but I personally find it hard to follow on the minute but important points. That’s the motivation to write this down so I have a reference point later on, and hopefully helping anyone that stumbled across this post (that means you :))

First things first, there are some preparation to do:

  • You need a computer with ethernet port. USB dongles work fine.
  • Download some util tools and firmware packages. The ones I used include:
    • ASUS’s own firmware restoration tool (from ASUS website)
    • ASUS’s latest OEM firmware for RT-N16. As of this writing, the version number is 3.0.0.4_380_7378-g7a25469
    • DD-WRT firmware packages:
      • dd-wrt.v24-22118_NEWD-2_K2.6_mini_RT-N16.trx
      • dd-wrt.v24-21530_NEWD-2_K3.x_big.bin
      • dd-wrt.v24-44715_NEWD-2_K3.x-bit-RT-N16.trx
  • Optional, but preferable, you have another device with internet access, because the computer I mentioned would be without internet access for a bit.

Now the steps. First thing is to set the computer IP address to a static IP in the 192.168.1.x range. It’s just not a good idea to use wifi for this setup, so disable it. Then, set the IP address of ethernet connection to a static IP in the 192.168.1.x range. I just use 192.16.1.2, mask 255.255.255.0 (windows 10 uses mask length instead, put 24 in there), gateway 192.168.1.1. No need for DNS. Plug ethernet cable to LAN1 port of RT-N16(for some reason, that’s the furthest port from power plug)

Given that I haven’t used the thing for a while(years), I decided to restore the ASUS firmware and start there. Using the ASUS restoration tool, flash the ASUS firmware onto the router. To do this, you need to put router in “recovery mode” by holding the reset button down while it’s unplugged, then plug in. You should see the power LED blinking slowly(about 2s on – 2s off). Once the router is in recovery mode, start the flash.

When the flash is over, open a browser and head to 192.168.1.1. From there, follow the setup wizard of ASUS firmware to set it up. Since we aren’t using it anyways, just select all the defaults. Once you’re done, we’ll move on to flashing actual DD-WRT firmware.

Put router in recovery mode, and use the ASUS restoration tool to flash the 22118 version of DD-WRT on. Once done, go to 192.168.1.1 again, you should see the DD-WRT page for changing management username/password. The DD-WRT wiki page highlights using the username “root” for some reason, just stick with that. This is not our final flash, so that username and any password you choose is fine.

Now we are in DDWRT land. Go to administration – firmware upgrade. You may have to login using the password you just set for root user. Use this page, flash the 21530 version of DDWRT, and *DON’T* reset the settings. Leave “After flashing, reset to” selection at “Don’t reset”. This is the first diversion point than what’s in the wiki. I’ve seen DD-WRT forum posts claiming success using this way, and I’m sure there are other people having success following the wiki way(i.e. reset to default setting after flash), I’m just writing down what worked for me.

Here comes the trick that caused me a LOT of headache – Ideally, flashing 21530 version should go smoothly and we’ll be back in no time, but for whatever reason, after flashing it, I never got a response from router. Took me a good while to try anything I can google out, and ended up using the MTD procedure. I’m having trouble following the procedure as written on the wiki page, so I’m writing it step-by-step here:

  • Flash 22118 version, and set a root password
  • Telnet into the router. Use your choice of telnet tool, I used Win 10’s telnet client.
  • Once in, execute the 3 “mtd erase” commands as written in the wiki:
    • mtd erase nvram
    • mtd erase ddwrt
    • mtd erase linux
  • the last 2 commands will take a minute or so to finish. You shouldn’t see any negative message like “operation not permitted” or something like that.
  • After all 3 commands are done, flash 22118 version again, and flashing 21530 after that should work. It worked for me.

Now that we have flashed 21530, you should be able to flash the *final* version of DD-WRT. I’m using 44715 as instructed by wiki, but DD-WRT is constantly updating, so there are newer versions for this router. I haven’t tested any of those, you can check DD-WRT forum on whether people with this router have reported whether a version works or not. Using the DD-WRT web GUI, flash 44175 version.

In the next post I’ll write about how I configure this RT-N16 to be an AP connected to my OPNsense box.

Here are the pages that helped me getting all this together:

  • https://wiki.dd-wrt.com/wiki/index.php/Asus_RT-N16
  • https://forum.dd-wrt.com/phpBB2/viewtopic.php?t=307336&postdays=0&postorder=asc&start=15
  • https://www.asus.com/SupportOnly/RTN16/HelpDesk_BIOS/ (click “show all” to see all download links)

Leave a Comment

Your email address will not be published. Required fields are marked *