Note: This document was written in 1998, many things have changed in the wireless market since then. You may still find parts of this useful, but YMMV!

Wireless Router Howto

This is a brief mini-howto on how to build a linux based wireless router out of what amounts to spare parts, using the linux router project's single disk router software. The total cost of each end of the router, including antennas and cabling, is less than 1300 US dollars, which is a considerable cost savings over the dedicated bridge units (typically about 3100 US each) available from the same manufacturer.

Why we did it

We live over 5 miles from the local telco central office. This meant that no ADSL or ISDN was available. A 56K line would have cost several hundred dollars per month, if they could pull it, and a T1 was going to cost in excess of 1250 per month with a 3,000 dollar install. Either option would require some sort of long term contract, too. Hybrid cable was available, but it's high latency and slow 28.8 modem based uplink was unacceptable for our purposes.

We could see bandwidth, only a few miles away, 384k ADSL for only $230/month, 6 times what we could get with a 56K frame relay. So we embarked on our wireless journey and eventually built what you are reading about here.

We figure the economics of high speed internet networking in parts of the world outside of California are even more biased in favor of the local telco monopoly. If you are willing to live with the occasional heavy weather based network outage, want to save money on an upfront and monthly basis, and are within LOS of somebody else with an internet connection who is less than 16 miles away, read on....

Useful stuff to have

Compass: Line of sight (LOS) does not mean that a human being can see that far. It is useful to have a compass to take bearings.
Telescope: Pick out landmarks and obstructions between endpoints.
Map: Once you figure out where you are, a map helps you tour around the streets

Useful stuff to know

Magnetic variance: A standard compass can vary off of true north by 15 degrees or more. If you know the typical magnetic variance for your area you can compensate for it.

Useful background material

Hardware Required

It's apparently impossible to get all the stuff you need from a single vendor. The FCC is not fond of unlicensed wireless technology. The guys that do this sort of stuff apparently want you to buy the install from them too. Since this is a DIY sort of project we didn't exactly get all the support we needed from any one vendor. So here's who we used to get what we needed.

Suppliers
Item Name Vendor Price
Wireless Card Aironet 655 (also known as the PC2300) Network Access Solutions
7172 Regional Street
Dublin, Ca, 94568
Attn Jim Bradfield at: (925)-803-2100
~800.00 ea
Antennas Model Also Network Access Solutions ~200.00 ea
Cable LMR-400 Network Access Solutions ~100 bux (cable+connector)
Connectors Ham Radio Store ~23.00 ea
PC P75 w 16MB ram, no hard disk Junk store ~200.00 ea

Software Required

LRP Code The Internet FREE
DOS Boot Disk
Arlan Setup Drivers
Current Arlan Driver

Using the LRP code

Read everything you can from the linux router project.
Then you can pull down the wireless starter disks and pretty much forget about most of what's on the lrp site.

First, figure out where you are

The wonderful mapping facilities of mapquest and yahoo are a great aid to figuring out your latitude and longitude. However, neither service explicitly tells you what your latitude and longitude are. You can figure it out from the url you get back from the sites.

What these tools are not good at is figuring out your height above ground or if there is a building in the way. There is a tool that can figure out LOS over and around obstructions, but I can't find the url for it.
Here's where a telescope comes in handy. Even with a high quality telescope it's hard to see your end points at extreme ranges (+10 miles). A good high powered colored light at your downstream site helps a lot.

Find a suitable downlink site

In our case only a very narrow slice of the of the valley was viewable from the house. Neither of our primary sites worked out (that 15 degree magnetic variance bit us) and we spun our wheels for a while.

Ultimately we posted to the ba.internet newsgroup and the svlug mailing list and found a bunch of hackers willing to share their bandwidth, which was really heartwarming. However their grip on geography was generally quite weak and none of our 5+ volunteers was within LOS.

A few commercial ISPs did email us with offers to connect to us. Netcom, slip.net, and a few others all claimed to offer wireless service, but all of them got real nervous when we told them about our hardware. All of them wanted us to use their hardware and pay fees in the 250-450 month range for 384K access.

After another posting we finally ran into a very clueful ham radio dude smack dab in the middle of our LOS. We got a good connection on the the very first try. We were in business!

The trouble was, he didn't have an internet connection yet. But that's another story.

The point of this is that the community spirit of the internet is not dead, and it is certainly possible to find someone who can connect you to the internet who is within your line of sight, if you look in the right places.

Notes on Cabling

Don't skimp on cable quality.
Don't crimp, bend, wedge or otherwise torture your cables.
Use short cables. As short as possible. Short means 10' or less, if you can do it. 25' on each end means at least 50% of your signal is going down the tubes.

Build your routers

The arlan card is an ISA card, so nearly any old PC will do. 16MB of RAM is a good idea. Since, at least in this howto, you will be using the LRP code, you don't even need a hard disk. In general I prefer PCI hardware and Decchip tulip based cards, but we went with PCI based ne2000 clones for the network cards because they only cost 6 bux each.

So get a pair of P75 or better PCs, with 16MB of ram, a network card or two, and you're set.

Install the arlan cards (you might need to change their interrupts - these cards are not plug and play) and run their DOS based setup drivers. You'll need to pick a suitable network code, and spreadingCode. The networkcode is some random 6 digit number. We generated ours by dropping a cat on the numeric keypad, your methods may vary. It needs to be the same on both cards. The spreading Code is for 384Kbaud, 1Mbit, and 2Mbit operation. As a rule of thumb I'd suggest:

CodeSpeedDistance
42Mbitup to 4 miles
31Mbit up to 16 miles
1384Kb up to 25 miles

Be conservative. Your goal in life at this point is to make the thing work, not make it fast. You can always go back and make it go fast later.

If you picked out a different network card than the NE2000, you're going to have to download the linux router project's code, an appropriate kernel, and install the proper modules on the lrp disk. This can be a complex procedure, so here's Greg's notes on the topic.

The last point is the registrationMode option. The wireless card supports both point to point and Accesspoint mode as a client only. If you want multiple points to connect to one antenna, you still need to get the Accesspoint router from Arlan. A registrationMode of 1 puts the card into Access Point mode. Point to point is 0.

When you insert the driver module into the linux kernel, you should have a command line of:

insmod arlan registrationMode=0 spreadingCode=3

Or whatever you've chosen as your spreadingCode earlier in this document.

Hardware Installation

If you can weather proof your router box, and run it, power, and ethernet outside, close to the antenna, more power to you. Short antenna cables are a good thing. However, we've noticed that the arlan radios appear to be tempurature sensitive - if the ambient temp gets above 38c or below 10c performance will start to drop.

Putting the router outside was not an option, so we built an 11' cable, mounted the wireless lan antenna on the TV arial, and drilled a hole in the side of the house to run the cable through. We ran power and a UPS up into the attic, and put the box up there.

We figure that it will stay warm enough through the winter, and we'll worry about the summer heat when the summer comes. Tenatively we're going to add a fan and switch to booting off a flashdisk in the springtime. We recognise that this is not a very scientific approach to the heat problem.

Testing

OK. Your wireless boxes are built, and you can ping and telnet through each router at your local site.
No matter how bad your cable or connectors are, even a bad connection acts as a whip antenna. Pick some site that is easy to see, at some distance more than a 1/2 mile, and setup your gear to talk to it. A diskless box eats very little power, so what we did was pack up the downstream router in the car, attached to a small UPS, and set up shop about 3 miles away at the local resiveor. You should be able to aim your antennas by eye at this distance. Get everything set up, and if you can ping with low latency and 0 packet loss, your gear is working perfectly.

Performance Notes

486SLC 25 - 42MB/sec
486 66 - 71MB/sec
Pentium 100 - 71MB/sec

Although a 486-66 seems capable enough to handle the maximum number of packets we can transmit, it does behave badly under severe error conditions (driving rain, pea-soup fog, etc), so we recomend a minimum of a P75 or better for a long distance application. Your mileage may vary.

Summary

Our wireless routers have been in continous operation since Oct 5th, 1998. We have had only three major outages - the first two related to windy weather skewing the antennas, which we fixed by crimping the antennas down tighter. The last outage was due to the very severe weather conditions around the thanksgiving holiday. We ended up writing a script to lower the bandwidth arbitrarily on each side, and managed to stay up at the 384K setting for the remainder of the day, and as it turned out, the downstream antenna had been knocked slightly askew this time, too. We've otherwise managed to stay up at the 1Mbit setting going 13.1 miles through wind, rain, storms and fog with nary a blip.

The only ongoing problem that remains is when 3 of us start playing quake (The game uses udp and sends enormous numbers of packets), the downstream router tends to stop transmitting for a minute or more at a time. Most of the evidence we've gathered to date suggests that the wireless card itself is not at fault but the ne2000 cards, so at some point we're going to upgrade to Netgear DecChip tulip based cards. (And incidentally, gain 100Mbit/sec capability).

The natural congestion management of the TCP protocol means that we NEVER see this problem when doing normal things (ftp,web,email,etc), and it also does not occur via NFS (also udp based), which is puzzling.

This project cost us lots of time, but we saved lots of money. The arrangement we worked out with our downstream ADSL guy was 2/3s of the cost of his ADSL - 154 bucks a month. The ADSL install charge from pac bell was 450.00. The total cost of all the hardware we bought was less than 3k.

The downstream router not only handles the wireless stuff, but has 2 network cards enabling it to do traffic shaping for the guest network. The upstream router has a modest amount of firewalling features turned on so we don't have to deal with people trying to hack or portscan us.

Ultimately we plan to build a SBC based solution using flashdisk technology and the PCMCIA version of this same card. Elmer says his current driver works now on the PCMCIA cards... we have the flashdisk stuff going... the single unit cost should be less than 2k, easily... now to get more funding....

Credits

Elmer, Linus, linuxrouter, Jim Bradfield

Authors: Michael Taht <mtaht@picketwyre.com>
Greg Retkowski <greg@rage.net>

This document is copyright (C) 1998 PicketWyre Labs Corporation
Redistribution in any other form besides web based media
is prohibited without prior written consent of the authors.