ASUS WL-500g Premium

The ASUS WL-500gP was a top of the line Linux based router. It featured plenty of RAM and Flash, USB 2.0 ports, and a fast CPU. It also featured a miniPCI slot that allowed to change the wireless card.

Later it got updated by using a newer SoC which integrates most components, but retained most features of the first version except the replacable wireless, which also got integrated into the SoC.

Supported Versions

Version/Model

S/N

OpenWrt Version Supported

Model Specific Notes

v1

-

Backfire 10.03

wireless in miniPCI slot, replacable;
antenna on the left (from the front view)

v2

-

Backfire 10.03

most features integrated in SoC;
antenna on the right (from the front view)

Note: The wireless in the v2 is a low power wireless PHY, which currently isn't really supported by b43, therefore 2.4 is still recommended for the v2.

Note: As of r18801 in the 8.09 (kamikaze) branch, the wireless in v2 works fine even with the 2.6 kernel at least in the client mode - so if you do not need AP mode and need 2.6 kernel, v2 should be usable now. Other wireless modes were not tested.

Note: As of Backfire 10.03.1-rc4, the wireless in v2 somehow works with the 2.6 kernel in AP mode. WPA2-PSK and No Encryption modes were tested. However, the recommendation to avoid 2.6 kernels still applies: wireless stops working now and then, needing b43/b43legacy module(s) reload to recover.

Note: As of Attitude Adjustment 12.09-beta2 the v2 seems to work well, including the wireless.

Note: with the default factory firmware, it is possible to know what version you have by

OEM installation using the TFTP method

To install OpenWrt using TFTP or the ASUS firmware restoration tool you have to put the router in diag mode.

Note: In diag mode, the router takes the address stored in nvram, usually 192.168.1.1, but if you changed the router's IP address in its original firmware or in the previously installed OpenWrt, it will use that. Once the installation is complete, the router's IP address will always be 192.168.1.1. In the further sections 192.168.1.1 is assumed.

To put the router in the diag mode, do this:

Unplug the router's power cord.

Confirm your PC is configured to use a fixed IP in the 192.168.1.0/24 range (do not use .1).

Connect the router's LAN1 port directly to your PC.

Push the black RESTORE button using a pen or such, and keep the button pushed down.

Plug the power on while keeping the RESTORE button pushed for few seconds.

When you see a slowly blinking power light, you are in diag mode.

Now the router should accept an image via TFTP or via the ASUS firmware restoration tool.

It responds to ping, so you can confirm that it is in diag mode and ready for the tftp by using "ping 192.168.1.1".

TFTP

It is possible to install OpenWrt using a TFTP client when the router is in diag mode.

After the TFTP upload is complete, wait at least six minutes. The firmware is first loaded into the RAM, and then flashed. This process takes a little time, and to ensure that the router is not bricked you should wait six minutes.

The router will reboot itself automatically after the upgrade is complete. Rebooting may take a while. It might be the case that the router does not reboot by itself; if this happens it should be safe to wait for the period mentioned and then to do a manual reboot (pull the power-cord).

You are done! You should be able to telnet to your router (IP address: 192.168.1.1 - even if you were using another one previously) and start configuring.

NOTES:

Windows 7 does not install its tftp client as default, you have to manually add it. Earlier version do include it in their default installations.

Automated Ping and TFTP Script

ASUS firmware restoration tool (Windows only)

If you are on Windows it is recommended to use the ASUS firmware restoration tool to install OpenWrt. The ASUS firmware restoration tool can be found on the CD. Make sure the router is in diag mode.

Browse the .trx file (openwrt-brcm-2.4-squashfs.trx).

Press Upload. The router will reboot itself automatically after the upgrade is complete. Rebooting may take a while.

You are done! You should be able to telnet to your router (IP address: 192.168.1.1) and start configuring.

If the firmware restoration tool can't seem find your router even though you are certain that it is in diag mode, it may be because the restoration tool is not very smart about which network interface to use. Disable all network interfaces except for the correct (LAN) network interface and try again.

Upgrading OpenWrt

If you have already installed OpenWrt and like to reflash for e.g. upgrading to a new OpenWrt version you can upgrade using the mtd command line tool. It is important that you put the firmware image into the ramdisk (/tmp) before you start flashing.

Photos

Opening the case

Remove the 4 nubs under the case, now you can see some screws. Unscrew them. You're done. When you're finished you can put the rubbers back into the gadgets. They'll stick alone.

Serial

V1

Serial is located on pin soldering points (ready for soldering of 8-pin connector for use with detachable cable) on the centre of the right upper side (viewing from front panel) under ventilation holes. At right from these points, you can see printed pin descriptions (V1):

RESET

GND

3.3V_OUT

UART_TX1

UART_TX0

UART_RX1

UART_RX0

Pin 1 (with the square solder pad) is RX0.

V2

For (V2) tts/0 is on the J4 connector:

3.3V_OUT

UART_RX0

UART_TX0

GND

3.3V_OUT is next to the label J4 for the connector which is the closest pin to the word ASUS printed on the board. Transmit (UART_TX0) was confirmed with an oscilloscope. Transmit was also connected to Receive (UART_RX0) and data was read back to ensure it was actual the receive pin. Data can be written to tts/1, but the pins have not been identified.

These serial ports use CMOS levels. You need an additional voltage converter to get a standard serial port. The parameters are 115200 baud and 8-n-1.

While connect serial to V2, the VCC pin is not needed. TX from serial converter to the UART_RX0 pin, RX from serial converter to the UART_TX0 pin. Here's the boot log while running
/backfire/10.03.1/brcm47xx/openwrt-brcm47xx-squashfs.trx

Buttons

The ASUS WL-500g Premium has two buttons. They are RESTORE and EZSETUP. The buttons can be used with hotplug events. E. g. [#wifitoggle WiFi toggle].

BUTTON

Event

RESTORE

reset

EZSETUP

ses

ACTION: released or pressed

Replacing the Wireless miniPCI Card

Note: This applies to v1 models only!

The standard wireless LAN controller is the BCM4318 on a MiniPCI card. Some people have replaced this with an Atheros MiniPCI card. The advantage is that the Atheros card has an open source driver and is supported by the 2.6 kernel version of OpenWrt. Atheros-based wireless cards that have been known to work include the Wistron CM9 (though some people say that signal quality is poor), and various Tp-Link cards such as the TL-WN560G (signal quality reported to be the same as with the original Broadcom controller).

In order to replace the Broadcom controller with an Atheros one, open the case (instructions above), carefully disconnect the antenna cable from the card, press out the two latches on the sides, and pull the card out of the socket. In some cases the card is glued to a supporting sponge on the main board, so you might have to apply a certain measure of force to get it out. Re-assemble the case, and install packages kmod-madwifi and hostapd-mini to get the new wireless controller to work. Change your /etc/config/wireless to include the following:

Specific Configuration

Interfaces

LAN and WiFi is bridged to br-lan. WiFi is disabled by default for security reasons (to prevent an open access point).

Note about wireless modes

client mode: attitude_adjustment 12.09 (final)

Further investigation shown that the wireless is able to provide an AP
if connected to whatever interface defined in /etc/config/network,
while for 'sta' mode (a wifi client) it is possible to obtain it only if
the interface connected to the wireless configuration is not using the bridge option nor having a relation to a switch with more than one port (for example if with eth0 we define a switch over multiple ports) Note: would be better to check this statement more thoroughly.

Failsafe mode

If you forgot your password, broken one of the startup scripts, firewalled yourself or corrupted the JFFS2 partition, you can get back in by using OpenWrt's failsafe mode.

Boot into failsafe mode

Unplug the router's power cord.

Connect the router's LAN1 port directly to your PC.

Configure your PC with a static IP address between 192.168.1.2 and 192.168.1.254. E. g. 192.168.1.2 (gateway and DNS is not required).

Plug the power on and wait for the power LED to switch off

While the power LED is off press any button (RESTORE and EZSETUP will work) a few times

Power LED goes fast-blinking (about 1 time per second)

You should be able to telnet to the router at 192.168.1.1 now (no username and password)

Enabling all RAM

Note:

This applies only to earlier WL-500gP v1 models.

On newer ASUS WL-500g Premium router's all RAM is enabled by default. If you look at "dmesg | grep Memory" command's output, you will probably see that there's only 16MiB of RAM. Specs says there should be 32MiB. To enable 32MiB change the sdram_init and sdram_ncdl NVRAM variables as showed:

Hardware Mods

Most mods are possible for WL500GP v1 only, because WL500GP v2 uses different SoC and this SoC got most features (wi-fi radio, usb) integraded, making V2 much less interesting in terms of modding. On other hand V1 gives plenty room for hardware upgrades and modding.

Overclock

You can overclock WL500G Premium V1 from 264 to 300 MHz. In fact some routers based on BRCM4704 SoC are running on 300MHz by default, so BRCM 4704 SoC itself is designed to operate at this frequency. However, it is recommended to install heatsink to ensure system stability, because higher frequency means more heat. This will give you about 12% extra CPU horsepower with minimal efforts.

You'll need nvram package (included in default images).
To set 300MHz CPU frequency, execute as root the following commands:

nvram set clkfreq=300,150
nvram commit
reboot

This tells boot loader to use 300MHz frequency instead.
Once your device has rebooted, you can check it runs with higher clocks:

cat /proc/cpuinfo

Make sure it contains something like:
BogoMIPS : 298.01

(original value close to 264)

Wi-Fi radio replacement

In case of WL500G Premium V1 you can easily replace wi-fi radio with some better wireless card (which should be in MiniPCI form factor), thanks to MiniPCI slot. This way you can get 802.11n support, higher TX power, etc. For high-speed 802.11n cards you'll usually need to mod case, installing 1 or 2 extra RP-SMA plugs and antennas, usually with u.FL pigtail, because 300Mbps cards usually require 2 or 3 antennas. So you'll have to get some extra RP-SMA plugs with uFL pigtails. These pigtails are quite common in shops selling wireless equipment and only cost some few bucks. Installation depends on card and number of antennas. At very least, Atheros-based cards supported by ath9k driver are known to work with WL500G Premium V1. You may need to install extra kernel modules, because default image not supposes WL500GP boots with Atheros card. While 500GP CPU is weak and would not allow routing at full speed of 300Mbps card, wireless performance improvement over .g is noteworthy anyway.

Extra USB ports

Under Construction!
This page is currently under construction. You can edit the article to help completing it.

VT6212 USB 2.0 Host Controller IC contains 4 USB 2.0 high-speed ports. In case of WL500G Premium V1, two ports are not soldered (and lack PCB traces). It is possible to get up to 2 extra USB ports, useful for internal devices like built-in HDD. Mod implies soldering D+ and D- lines of USB directly to apropriate VT6212 pins, which is somewhat tricky thanks to TQFP package, so it requires small soldering iron and decent soldering skills. You should also install resistors to adhere USB specs. Example of such mod can be found here on OpenWRT forum. Some photos are published.

128MiB mod

Under Construction!
This page is currently under construction. You can edit the article to help completing it.

WL500GP comes with 2x16MiB SDRAM ICs, giving 32MiB in total. It is possible to find compatible SDRAM ICs up to 64MiB per IC, giving 128MiB total, 4 times more than it comes from factory. This would allow larger conntrack table or would allow running more programs. See thread for more information.