Good
Cheap (€62 including 20% vat)
Very flexible (after firmware upgrade)
Bad
Units hang after brownout


I needed to share my broadband DSL internet connection with a nearby house as depicted below. Initially I tried to connect directly from a 20mW wireless card in the remote PC with a high gain (16dB) antenna, to my zyxel ADSL router. Communications were very sporadic at best, so I arrived at the solution below using 2 WRT54GL wireless routers in the attics of both houses. Note, if the Zyxel wireless wasn't so useless I could have used a single WRT54GL in "client bridged" mode, where it essentially acts like a WLAN adapter for the PC. Anyway in addition to providing the remote connection, the local WRT54GL is able to serve the whole house with wireless due to its more powerful transmitter, and so the Zyxel is relegated to providing ADSL access only.



Components used

PCPower over ethernet adapterremote WRT54GLlocal WRT54GLZyxel 660

Power over ethernet adapter

This is used to transfer both DC power and data over the same ethernet cable and was especially useful in my case as there were no power sockets in the remote attic. Also it's handy to be able to power cycle the router in the attic from the location of the PC, and this was required once, after a brown-out caused the router to hang (with all its ethernet LEDs on and power LED flashing).

This is a cheap and simple device to use but was a bit more complicated in my case as I used a surplus one that a friend had, and he could only find one of the two adapters. Therefore I fashioned the other half from a female to female ethernet coupler. This was very simple actually as the coupler snaps apart easily and the appropriate wires can easily be pulled out. I also cut a notch in the case for the wires, before snapping it back together and soldering the wires to the DC power connector.

Linksys WRT54GL

This really is a nice piece of hardware, and is essentially a low power, low cost linux router which has 5x100Mb/s ethernet ports and 1x54Mb/s wireless ethernet ports. I've seen reference on the net that the WRT54G draws around 6W which currently equates to about €7.50 per year. The default Linksys/Cisco software that comes with it is not good however, only working reliably with Microsoft internet explorer which is ironic, and not supporting various services. The "L" variant of the WRT54G has more RAM specifically to support a linux based firmware, so to unlock the full potential of this hardware I went through the simple process of installing the DD-WRT V23 SP2 linux distro, whose web interface looks like:



The DD-WRT software allowed me for example to increase the wireless transmitter power (on both routers) from the default OEM value of 28mW to the maximum of 251mW. Note this device has detachable TNC antennas, so you can add higher gain (directional) antennas if you wish.

To get the 2 APs to both bridge the connection between the houses and to provide wireless access within the houses, I set both devices up locally as follows, and made sure they could communicate. When I had got the basic setup working, I installed one of the devices in the remote house, and was able to configure everything else from my house. At this stage I made the wireless network secure by changing the following: One doesn't need to use the device's shell interface, but it's great being able to use the power of the command line, an example of which is shown below:
DD-WRT v23 SP2 std (c) 2006 NewMedia-NET GmbH
Release: 09/15/06 (SVN revision: 3932)
==========================================================

 ____  ___    __        ______ _____         ____  _____
 | _ \| _ \   \ \      / /  _ \_   _| __   _|___ \|___ /
 || | || ||____\ \ /\ / /| |_) || |   \ \ / / __) | |_ \
 ||_| ||_||_____\ V  V / |  _ < | |    \ V / / __/ ___) |
 |___/|___/      \_/\_/  |_| \_\|_|     \_/ |_____|____/

                       DD-WRT v23 SP2
                   http://www.dd-wrt.com

==========================================================


DD-WRT VeryBusyBox v1.2.1 (2006.09.15-18:06+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

~ # dmesg | grep CPU
<0>CPU revision is: 00029008
<0>CPU: BCM5352 rev 0 at 200 MHz
~ #
© Jan 24 2007