Thursday, April 22, 2010

Replacing MN-700 Stock Firmware with Tomato

With the MN-700 no longer supported, and after struggling with the reliability of the firmware on my router, I did a little research and came across the following posts which led me down the path to replace the stock firmware on my router with Tomato.

Instructions:

http://dd-wrt.com/wiki/index.php/MN-700
http://www.liamm.com/tech/hacking-the-microsoft-mn-700
http://www.techimo.com/forum/pc-modification/157288-microsoft-mn-700-firmware-hack.html

(Since the time that I completed my hack, Jozerworx has posted some great step by step instructions:
http://jozerworx.com/tutorials/mn700/default.htm)

Notes:
One of the primary changes that I made to the instructions was that rather than create my JTAG cable, I purchased one from ebay for $5-$10 that had spring loaded pogo pins which eliminated the need to solder. By following the pin diagram I was able to insert the pins in the correct locations to create the cable, placed the pins on the appropriate JTAG ports on the printed circuit board, and then ran the program to flash the router. I found this to be much easier than getting involved with soldering.

Once flashed, I also observed that the ASUS firmware restoration utility would only work with WindowsXP. The application fired up in Vista/Windows7, but it did not work even with compatibility settings turned on.

There are a variety of open source firmware versions that you can use, but in doing some research, I landed on the stock Tomato firmware:
http://www.polarcloud.com/tomato

You will notice that there are two versions available: standard and ND for "New Driver". You will want to choose the standard one, as the ND version will brick your router. I became interested in the ND version as I discovered there are a variety of Tomato firmware mods, most of which are only built on the ND. There are some posts that describe how to determine whether your router will support ND. Telnet into the router and execute the command "nvram get wl0_corerev". If the value returned is less than 7 you must use the standard version, if greater than or equal to 7 you can use the ND version. When using this command on the MN-700 the value returned is less than 7.

I can't say enough great things about my experience with Tomato. It's just a fantastic application. By upgrading from the stock firmware in my router, I've improved my home network's reliability, security (enhanced firewall and wireless security options), performance (as I can increase the transmit power, and support many more connections), along with an increased feature set around reporting and quality of service.

In a future post I'll highlight how I combined some of the mods that are available to further improve performance and add VPN support.