Tag Archives: WiFi

Tomato Firmware on ASUS WL-520gu

Unfortunately, they dont make the ASUS WL500-g router anymore. I needed a new router and decided to go with the ASUS WL520-gu (a cheaper and less powerful router than the 500).

If you want to run Tomato on it, note that you need the ND version of Tomato. Also, You need to use ASUS official firmware restore utility to flash it the first time. Install the Utility on Windows from the CD that came with the router. You start the router, with the reset button pressed for 5 seconds, to make the router try to download firmware from the restore utility.

The WL520-gu router works fine with Tomato 1.28 (latest version as I write). It has only 4Mb ROM (compared to 8Mb on ASUS WL500G PrV2), which is fine unless you want too many extra or advanced features.

Tomato seems to be replaced by TomatoUSB, but I have tried only the former.

Improve WiFi range and speed

I did some reading to understand what affects WiFi range, but it was hard to find really useful information. Especially, I wanted to know what range I could expect, measured in meters, under different conditions. Well, I did some experiments and here are the results.

The main base station is an Apple Airport Extreme basestation (the one introduced in 2004, without N capability). The range has been extended with WDS using either an Airport Express, or an Asus wl-520gu running Tomato firmware. An iPhone 4 was used to measure range and signal quality (yeah, the best tool for that job).

All experiments are made in a rural area with no other interfering WiFi networks.

Original setup
Originally, the range was extended with the Airport Express, extending the network from one house to another. The distance between the Airports was about 15 meters, going through a few wooden walls. The connection quality was very questionable with lost connections, occationally very bad bandwidth and sometimes the need to restart the network equipment. A mixed B/G network with no encryption was used.

wl-520gu with improved antenna
I got a 32cm long antenna (9dbi) for the wl-520gu. Replacing the Airport Express with this improved wl-520gl made a huge difference. The connection to the Airport Extreme was perfect.

I decided to walk around in the vicinity with my iPhone, and found good reception (3 bars out of 4) about 75 meters away. There were no obstacles between me and and the house where the wl-520gl was located. As soon as I got behind a hill or something, connection was completely lost.

It is worth noting that AirPort Extreme and Tomato can do WDS together (at least without encryption).

wl-520gu with standard antenna
Repating the experiments above with the standard antenna I got much worse results. At 30 meters away, I got worse reception on my iPhone, than I had 75 meters away with the improved antenna. The included standard antennas are not the best ones for your equipment.

Experimenting with transmission power
Tomato allows you to set the WiFi transmission power (range 1-255 mW). Default was 42mW and I raised it to 200mW. So far, I have not noticed any benefits with higher transmission power, and I left it at 50mW. After all, this is the same frequency that microwave ovens use.

G more stable than B
Initially the network was in mixed B/G mode. I thought perhaps the network would be more stable and have better range in the slower B mode. Wrong! It turned out that G mode is not only faster, but also more stable over longer distances, than B.

Directional antennas
I have not experimented with directional antennas. But, my 9dbi antenna gave me quite good range. Obstacles seems to matter much more than distance, at least for shorter distances (up to 75 meters).

On antenna connectors
There are different connectors for WiFi antennas. A very common one is RP-SMA (also called rev-SMA). ASUS uses this connector for their routers. The Linksys WRT54GL has another connector.

Flashing Tomato over OpenWRT on WRT54GL

On Linksys Wrt54GL, flashing Tomato over OpenWRT 10.03 using the web gui works fine. You need to use the tomato.trx image rather than any bin file. When the router is rebooted, it has IP, username=root, password=admin.

Update 2015-07-25: I did this from OpenWrt rescue mode, using command line:

# sysupgrade -v -n tomato.trx

After that, I needed to make a hardware reset: start the router up with the reset button (on the back side) pressed. Keep it pressed for about 15-30 seconds (depending on what source you reead), and then restart (unplug and plug).