router

Adventures in Mobile Broadband (ie. WRT54G3G with a 3G datacard)

Written by  on November 15, 2009

I thought I share with the world my adventures in mobile broadband.

Ingredients:

  • Linksys WRT54G3G router – you won’t find one in Canada, so start your search on eBay. Don’t worry about the which network it belongs to…
  • 3G PC Card datacard – I decided to pick up an Option Wireless GT Ultra (GX0302) branded AT&T, but unlocked
  • 3 months of useless investigation

Let me explain the 3 months of useless investigation and searching on Google, Yahoo and Bing. I originally have a Sierra Wireless AC860 card, which I thought would work with the WRT54G3G router (idiot me – I assume the AC875/AC881 should have the same interface as the AC860). It didn’t work, so I flashed the router with OpenWRT, a firmware that is more advanced than DD-WRT, but offers PC Card support. There are also various tutorials (see Simon Josefsson’s Summer House Wireless+3G Network, which was the most clear of them all) that made me waste my time trying to get my PC Cards to work, but to no avail. Here are some of the things ran into:

  • How the heck do I flash my WRT54G3G-ST (Sprint EVDO version) to OpenWRT. Try http://www.assembla.com/wiki/show/openwrt-3g
  • Upgrade that version of OpenWRT to the ones found on downloads.openwrt.org? Remember these important hints:
    1. WRT54G3G is NOT compatible with the 2.6 kernel, so download the brcm-2.4 version of the image
    2. Once you have OpenWRT installed, you can flash between versions by downloading the TRX files to your router’s /tmp directory, then run mtd -e linux -r write linux
    3. To revert your firmware to the Linksys version, wipe the image to force the recovery mode. Run this:mtd -e linux -r (this will delete the partition and reboot), config your computer to an address in the 192.168.1.x range, and TFTP reflash the image you want. Read more here (DD-WRT site on recovering from a bad flash)
  • The Sierra Wireless AC860 and Option Wireless GX0302 (in fact, most Option Wireless PC Cards) won’t work with OpenWRT, X-WRT or FreeWRT due to: 1. AC860 isn’t well supported in Linux at all; 2. Option requires the HSO kernel driver from Pharscape, which only compiles in the 2.6 kernel; 3. the latest versions of OpenWRT, X-WRT or FreeWRT with the 2.6 kernel has broken PC Card support
  • Don’t bother with the Nozomi driver on OpenWRT – it only works with the old (ie. HSDPA) Option Wireless cards.

After spending 6 hours re-compiling a special version of FreeWRT on my Ubuntu machine, and many botched attempts to install OpenWRT on this router only to hit a brick wall. I decided to try the stock firmware just for kicks. Who knows if Linksys has built the HSO driver in their build? This is where I am going to tell you a secret… the different versions of WRT54G3G (Sprint, Verizon, AT&T, Vodafone) are all the same, except with different flash headers. What you need to know is that each firmware supports different modem cards, so the secret is to flash your router with the firmware that supports your data card. Most sites tell you to modify the header, but what header?

In my case, I have an Option Wireless card, which is supported with the WRT54G3G-AT V1 firmware. I have a WRT54G3G-ST V1 router. So follow these steps (everyone’s case is different, make your own decisions):

  1. Download the WRT54G3G-ST HW v1’s 2.01.13 firmware
  2. Download the WRT54G3G-AT HW v1’s 2.02.03 US firmware
  3. Look at the ST firmware – the first 4 bytes read W3GS
  4. Look at the AT firmware – the first 4 bytes read W3GA
  5. Modify the AT firmware with a hex file editor, change the 4th byte from S to A
  6. Flash your router with the newly modified firmware

Ok, if you are in my scenario, you can just follow step 2, 5 and 6 – but I wanted to illustrate the discovery for the public. Linksys reads the first 4 bytes as the firmware identifier. 10 minutes later I have a working mobile broadband router for Rogers or Fido.

Final note – you are better off buying a router with a USB port that is supported by OpenWRT. The USB port is typically for printer connections, but with OpenWRT you can turn the USB port to do anything – from sharing files from a portable USB drive to connecting to your 3G broadband with a 3G turbo/rocket/whatever stick.

Disclaimer: follow these instructions at your own risk