DesignSpark Electrical Logo

Innovation for Every Engineer

  • Brought to you by
  • RS Components
  • Allied Electronics
Andrew Back

August 2, 2012 08:35

Hacking the TP-Link TL-WR703N

Serial port wired.











The TL-WR703N is a 3G travel router that has become a hit with the hacking community due its low cost, compact size and the ease at which it can be re-purposed. This post covers initial experiences with the hardware and configuring it to use the OpenWRT Linux distribution.

I managed to pick up a WR703N for around £16 and this represents incredible value for money when you consider that you get a 400MHz MIPS-based system with 32M RAM, 4M flash, 802.11n wireless, Ethernet and USB. Of course, this is much more constrained than, say, a Raspberry Pi, but there are many uses where the amount of RAM and flash storage available is perfectly adequate.

Loading the OpenWRT Linux distribution on the WR703N can be done via the web interface and there is no need for special hardware. However, I never feel entirely comfortable unless I have a hardware console and so before I attempted re-flashing I dismantled the router, fitted a 2.5mm jack socket and wired this to the Atheros SoC's UART.

The WR703N Disassembled









The task of hooking up a serial connection had been made much simpler by the Village Telco project, which provides a page with details including where to prise to remove the lid and the optimal position for the jack socket.

Extreme care needs to be exercised when soldering to the TP_IN and TP_OUT points on the PCB and I managed to lift these traces. Following which I re-soldered the serial TX & RX wires to unused adjacent pads which are connected to those points and marked as being for capacitors (0603 size). It would be best to do this once the board has been fitted back into the enclosure and it's advisable to add a blob of glue afterwards to help prevent the wires from moving. For the GND connection I found a solder point on the top groundplane of a few mm across.

The stock firmware booting.









The stock firmware booting.

With the router reassembled I then connected the port to a PC via a USB to 3.3v serial cable that is designed for use with mobile phones and which terminates in a 2.5mm stereo jack. And on power up the terminal emulator displayed boot messages from the stock firmware.


Firmware update.










I hadn't appreciated when purchasing the router from China that it would come with a Chinese language web interface! But fortunately Village Telco provide a simple guide to finding the firmware upload part of the UI.

With an OpenWRT firmware image selected it then takes a short while for the flashing process to complete, and if connected the serial console it will display progress.










Upon completion the router will reboot and eventually drop into a root shell.

OpenWRT booted









At this point it will be necessary to configure the network and install any optional software, such as a web interface if this is to be used as a simple network device like a bridge or router.

Potential uses

My interest in the WR703N is mainly as a low cost Linux platform for use in connecting other hardware to a wireless LAN. For example, one such possible use is as a gateway for the TI Chronos eZ430, where it bridges the Chronos sub-1GHz and 2.4GHz wireless.

The WR703N with eZ430 Chronos access point fitted











The reassembled router with a Chronos eZ430 access point plugged in.

As it happens a driver for the Chronos eZ430 access point hardware is available in OpenWRT and can be installed via:

# opkg install kmod-usb-acm

Although programming environments such as Python are too big for the WR703N's modest resources and an application may need to be developed in a compiled language, or perhaps using a more lightweight interpreted one such as Lua.

Given the low cost of the WR703N and that OpenWRT also supports IEEE802.11s, the combination may also make an interesting platform for experimenting with mesh networks.

Extending the hardware

The more adventurous may wish to upgrade the RAM on the WR703N and the OpenWRT project provide instructions for taking this up to 64M using a device scavenged from an SODIMM. Whilst Sydney Hackerspace have gone as far as developing an open source hardware extender board that features a USB hub, dual serial, GPIO and JTAG. And these are just two examples out of many that can be found online.


When it comes to flexibility the WR703N is no competition to boards such as the Raspberry Pi and BeagleBone etc. that have extensive GPIO and the resources to support more complex software.

But for network applications with modest resource requirements the WR703N's price and compact form factor are hard to beat. And as is typically the case when re-purposing low cost consumer electronics, there is a simple pleasure to be had in experimentation and finding new and novel uses.

Andrew Back

Top image: the WR703N with a serial console wired and secured with glue.

Andrew Back

Open source (hardware and software!) advocate, Treasurer and Director of the Free and Open Source Silicon Foundation, organiser of Wuthering Bytes technology festival and founder of the Open Source Hardware User Group.



October 24, 2013 20:36

These little boxes are very good value. I have one running as a WIFI interface to my solar power inverters.
My mods added full duplex RS485 drivers to the serial port
and a re purposed car USB charger to power it from the 8V supplied by the inverters.
Then a connector to hook it all up resulting in a pretty neat package.

My son is the Software Guru.
A bit more info on this ongoing project can be seen on my web site...

There is another of these neat little boxes glued to the wall in my wife's studio supplying wifi. That one has the mod to feed 12V up the Ethernet cable with a 5V regulator in the box so the power supply is remote in my shed. In time it will also be run from the solar 24V system that I'm also working on.
One day I may get some of these projects finished :)