This is a great little hackable router for the $25-30 odd dollars they cost.

alt text

Device specs:

  • Atheros AR7240 CPU (400Mhz)
  • Atheros AR9331 Chipset (integrated wireless)
    • 802.11 b/g/n 150Mbps (130Mbps real)
    • wifi power output 20dBm - 100mW
    • dual SSID support (have guest/private wifi)
    • dual access point and wireless client support (act as a repeater)
  • 100Mbit ethernet
  • 4 MB flash memory
  • 32 MB RAM
  • x1 USB 2.0 port (high-Speed devices only without using a usb hub)
  • Powered by micro-USB socket: 5V 1A
    • Low average power consumption (around 0.5W)
  • Tiny form factor: 5.7cm x 5.7cm x 1.8cm

I have two of these, mine are both 1.6 models (checked inside the device because that is the only way to know for sure).

With the current bootloader:

root@openwrt:~# grep -a U-Boot /dev/mtd0ro | cut -d'I' -f1
U-Boot 1.1.4 (Mar 21 2013 - 10:09:15)


Flashing the router with OpenWRT

When your router arrives with the factory firmware replacing it with OpenWRT is pretty easy. Download latest squashfs-factory.bin firmware (which is 12.09, r36088) from openwrt.org. Rename the file and upload it:

alt text

Put firmware on usbkey for more storate after flashing

Although you can still fit a fair amount of functionality into a 4mb squashfs rom (on boot it is decompressed into the 32mb of ram), having OpenWRT installed on a USB key allows for so much more. I make two partitions, one ext4 (/dev/sda1) for / and the other (/dev/sda2) a small Linux swap space.

opkg update
opkg install kmod-usb-storage
opkg install kmod-fs-ext4 block-mount
mkdir -p /mnt/sda1
mount /dev/sda1 /mnt/sda1
mkdir -p /tmp/cproot
mount --bind / /tmp/cproot
tar -C /tmp/cproot -cvf - . | tar -C /mnt/sda1 -xf -
umount /tmp/cproot
umount /mnt/sda1

Edit the /etc/config/fstab to look like this:

config global automount
        option from_fstab 1
        option anon_mount 1

config global autoswap
        option from_fstab 1
        option anon_swap 0

config mount
        option target   /
        option device   /dev/sda1
        option fstype   ext4
        option options  rw,sync,noatime
        option enabled  1
        option enabled_fsck 0

config swap
        option device   /dev/sda2
        option enabled  1

The noatime option is not enabled by default in OpenWRT. Using this will improve performance and increase the life of the USB key.

Compiling firmware

The OpenWRT wiki page of the wr703n is a little out of date. I have recently compiled an image from trunk (r39154 - 12.9.1) and flashed it to my router. Currently there is no repo for 12.9.1 so you’ll have to compile all packages yourself.

Other links