TP-Link TL-WR703N

Introduction

The TP-Link TL-WR703N is a low cost, commercially available wireless router that supports OpenWRT and thus is extremely ‘hackable’.

It is marketed as a travel router so it is extremely compact, and for ~$20 shipped to most places it represents great value for hacking and learning.

A bunch of us at the Sydney hackerspace have purchased “non insignificant” quantities of these routers for all sorts of fun.  I have committed to providing limited support in providing pre-built OpenWRT images suitable for hacking and writing up some instructions and short HOWTOs.

Specifications

(From OpenWRT Wiki)

  • Atheros AR7240 CPU (400Mhz)
  • Atheros AR9331 Chipset (integrated wireless)
  • 802.11 b/g/n 150Mbps (130Mbps real)
  • wireless power output 20dBm – 100mW
  • 4 MB flash memory
  • 32 MB RAM
  • USB 2.0 port
  • Powered via micro-USB socket
  • Tiny form factor: 5.7cm x 5.7cm

Firmware Images

Three (3) standard pre-built images are available

  1. Standard (Download 2013-02-23)

    • This is the standard ‘hacker’ image with a suite of goodies built in
      • Luci – for easy configuration and setting
      • USB Video support
        • mjpg-streamer for webcam streaming
      • USB Serial support
        • belkin, ch431, cp210x, ftdi, option, pl2303, ti-usb
        • ser2net for easy serial to Ethernet conversion
        • stty for configuring serial
      • Lua for simple scripting
        • lualibusb
        • luasocket
      • USB ACM Support for 3G modems and other devices (New in 2012-10-04+ : usb_modeswitch)
      • USB Storage and network filesystems
        • ext4, nfs, ntfs, vfat
        • block-mount for mounting extroot pivot overlays (i.e. adding USB storage for installing programs)
    • Old Downloads that may not work with newer devices : 2012-06-25 / 2012-10-04
  2. USBIP (Download 2013-02-23)

    • Default installation + Luci + USBIP Server + A few Luci apps like ntpc and upnp
    • Untested and not recommended for beginners! [OK tested a little bit... works with Up! Printer and a Microsoft webcam]
    • Old Downloads that may not work with newer devices : 2012-10-04 - kernel images from repositories will not work with these older versions.
  3. Base (Download 2013-02-23)

    • Default installation + Luci
    • Basic install allows you to login and customize your router
    • Significantly more (~1MB) available space compared to the Standard version
    • Old Downloads that may not work with newer devices : 2012-06-25 / 2012-10-04 - kernel images from repositories will not work with these older versions.

Installation & Setup

There are differences from a factory installation and a upgrade from an existing OpenWRT install.  Follow the appropriate instructions below.

Factory Install

Due to the router being targeted for sale within China only, the web interface will be in Chinese.  Follow the instructions and use the status bar of the browser (showing URL of the links) to guide you.

  1. Power on the router via USB cable
  2. Connect wired Ethernet connection to PC
  3. Access http://192.168.1.1/ using your browser
  4. Login to access the web interface, the default user:password is admin:admin
  5. On the left navigation bar – select “系统工具” (System Tools)
  6. Then select “软件升级” (Software Upgrade)
  7. In the main frame – select “浏览…” (Browse…)
  8. Browse and select the “openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin” file from one of the pre-built image packages.
  9. Then click “升 级”. (Upgrade)
  10. Press “OK” on the confirmation.
  11. Wait for the software to load (patiently).
  12. The router should reboot into OpenWRT, press login without a password entered.
  13. Go to password configuration and set up a password if required.

OpenWRT Upgrade

Upgrading from OpenWRT should be simple

  1. Power on the router via USB cable
  2. Connect wired Ethernet connection to PC
  3. Access http://192.168.1.1/ using your browser
  4. Login to access the web interface (Luci)
  5. Select the “System” tab at the top
  6. Then select “Backup / Flash Firmware”
  7. Check or Uncheck “Keep Settings” as you desire
  8. Click “Choose File” and select the “openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-sysupgrade.bin” file from one of the pre-built image packages.
  9. Follow the prompts…missing the last step here…
Madox/John will add a separate sub-page for recovery/unbricking, because those are for naughty boys and girls…

Add-ons and Accessories

  1. http://www.thingiverse.com/thing:25257 - Generic 3D printed replacement case for the router.
  2. http://ww.kean.com.au/oshw/WR703N/ -Kean’s IO expander board for the router.  Featuring USB Hub & FTDI dual serial/GPIO/JTAG.
  3. http://www.thingiverse.com/thing:25389 - 3D printed case for the router + Kean’s Expander board.

Project Ideas, Examples & Guides

To be updated

  1. Wireless Webcam
  2. Helicopter controller replacement
  3. Wireless/Internet connectivity for your projects
  4. Light Painting for Long Exposure Photography
  5. WiFi Remote Control Toy

155 Responses to “TP-Link TL-WR703N”
  1. steven says:

    Hi,guys.We have a portable power bank specifically designed for TP-Link mini wireless router WR702N and WR703N,you can check it at http://igg.me/at/sofa/x/989539

  2. Claudiu says:

    Dear Madox,
    I just purchased a TL-WR703N from China. It came yesterday and I checked it and it is revision 1.7. It came with the original chinese GUI. I would like to use your Base image (default installation and Luci) and I have a few questions:
    1. Do I need to use telnet or ssh after upgrading Base image ? I’m not very familiar with telnet and I preffer not to use it.
    2. After I install this, will I have the possibility to upgrade it later with a newer bin file from Openwrt ?
    3. Upgrading later with a newer image (bin file) will give me more options, like USB storage support ? At this moment I don’t want USB storage or anything fancy, I only want to use it as an access point.
    Thank you in advance.

    • Madox says:

      1)No, you don’t need to if you don’t want. Which is why I always include LuCi ;)
      2)Yes you can always change images relatively easily.
      3)Or you can connect the WiFi to the internet and download the various packages and options.
      I recommend the standard image if you don’t need all the additional space of the base one or don’t plan to install your own packages.

      • Claudiu says:

        Thank you for your fast reply, Madox. I was able to upload your standard image, this weekend, and my router, now with an english interface, works great. I’m sure that there are some many ways to use this little toy, but my plans for the future is to use it mostly as an access point. Now, if I have a tablet and go to a hotel or somewhere else where I only have ethernet access, my plan is to connect my tablet to the internet using the TL-WR703N. The hotel should have already a router in place and maybe a switch, for internet access for every room, so in this case I should disable DHCP in my TL-WR703N, right ? Is there anything else I should do ? I suppose that the hotel local address is 192.168.1.1. In this case, can I give my 703N a local address of 10.10.10.10 ? What if the hotel’s local IP is 192.168.0.1 ? Can I use the same 10.10.10.10, to prevent any network conflicts ? Thank you again for your great work and for the BIN file with Luci included. It made my life easier.

  3. Ed Comer says:

    Please explain about your openWRT configuration used on this project – ap or sta, for example? Could you post your /etc/config files?

    I have success configuring the TL-WR703N as a client e/w serial support and Ethernet to the eth0 port with the idea of interfacing with an Arduino or ARM, either via serial or Ethernet. However, while I have connectivity in lan->Tnternet direction I cannot get connectivity in the Internet->lan direction. For testing I have a laptop in the TL-WR703N’s eth0. I can browse the web through the TL-WR703N in sta mode but from the Internet or my my other PCs I cannot ping or connect to the laptopn through the TL-WR703N.

  4. tautal says:

    hi,
    Last week I purchased TL-WR703N from Hong Kong with preinstalled dd-wrt, English version. Only one what I need is support of usbnet and cdc_ether.
    I tried http://www.dd-wrt.com/phpBB2/viewtopic.php?p=667228, but cannot find suitable .ko modules for linux kernel
    (uname -a output: “Linux DD-WRT 3.2.11-svn18737 #1356 Thu Mar 15 09:20:07 CET 2012 mips GNU/Linux” ).
    I doubt that insmod works at all for this version.

    Is there any clear way to get WR703N support usbnet?
    What recommendations would you make for me?
    Thank You

    • Madox says:

      I am pretty sure my repos(used with my images) or the stock OpenWrt images and repos have usbnet packages. Can’t help with ddwrt sorry.

  5. [...] en esta página dedicada al TP-Link TL-WR703N podemos encontrar compilaciones del firmware correspondientes a la r35706, válidas para nuestra [...]

  6. Oscar says:

    hi

    I have an router WR703N but don’t have memory for install LUCI. How can i started with the standard firmware via telnet?

    thanks in advance

    From Barcelona.

  7. Claudiu says:

    Dear Madox,
    I read on the internet that is possible to attach a USB sound card and speakers to this router and play radio stations from all over the world. Can you please tell me if the standard image has the USB audio support included, or I need to install it myself ? I just placed an order for a cheap USB audio card from China and I should get it next week.
    By the way, I used your instructions for webcam streaming and it works great with a Logitech 910.
    Thanks in advance.

  8. Christophe says:

    Hello,

    I have a wr703n version 1.7.
    I installed the standard version of openwrt to create a piratebox where USB is needed. I follow the whole process and when installing the piratebox, openwrt told me dependencies missing for losetup and kmod-loop.
    When I try to install these two packages, openwrt told me “unknown packages” ?
    Should I install another version of the standard or what ?
    Otherwise if I insert the key and I do a DMES, I have the key that is recognized.
    Thank you very much.

    Christophe

    • Madox says:

      Hi Christophe,
      Sorry I don’t compile all packages so it is possible my repository don’t have what you need, perhaps you can use the stock OpenWRT packages if you’re building something custom.

  9. dimonix says:

    Hi Madox,
    Could you give any idea on how to drive ftdi gpio pins at Kean’s expander board under openwrt?
    Thanks.

    • Madox says:

      Hi Dimonix – which language will you be using? In my ‘BltBitBlade’ example I use Python to use the MPSSE on the FTDI. Using the GPIO should be a simple modification of that with different command codes (I don’t know why but 0×81/0×82/0×83 is in my head). Let me know if you need more pointers.

  10. dimonix says:

    Hi Madox,
    I thought I can use kernel sysfs, like for other GPIO expanders (f.e. pcf8574):
    echo 65 > /sys/class/gpio/export
    echo in > /sys/class/gpio/gpio65/direction
    cat /sys/devices/virtual/gpio/gpio65/value
    But seems, that FTDI driver doesn’t support this method.

    I will use php, so I will have to find similar library, like “vpelletier / python-libusb1″.
    Thanks, anyway :-)

    • Madox says:

      Why use PHP on the poor little router? I should have code somewhere for a short (<30line?) Lua script that can operate the GPIO… let me dig that up…

  11. dimonix says:

    Madox, it would be good to look at your script. Thanks.

  12. Glo Media Indo Makmur says:

    thank you, very helpful at all, let alone I do not understand the language china :) by “hack” I could easily configure to wirelless in my office. greetings.

  13. M. says:

    Hey there, Madox.
    Great work with these images. With them I was able to get up and running in all of five, six minutes. D’you know how to get a USB 3G modem working with this thing? When I plugged it in, the kernel messages registered the presence of the Mass-storage component only; even though above it says usb-modeswitch is installed (wasn’t listed in the installed packages though). Any idea how to work around that?
    Also, what if I wanted to replace the currently-flashed standard image with the base image? I’m guessing I’d use the sysupgrade base image as opposed to the factory base image right?
    Once again, great job mate!!

  14. Philip says:

    Hi

    Thanks for these images — I was able to get the standard image up and running to act as a wireless webcam server. However, the image is often corrupted, and I once I enable UVCvideo tracing, I get a lot of

    [ 912.260000] uvcvideo: frame 4364 stats: 50/1380/1593 packets, 1/30/1593 pts (early initial), 1592/1593 scr, last pts/stc/sof 776199335/785610508/435
    [ 912.280000] uvcvideo: USB isochronous frame lost (-18).
    [ 912.280000] uvcvideo: USB isochronous frame lost (-18).
    [ 912.460000] uvcvideo: Frame complete (EOF found).
    [ 912.460000] uvcvideo: frame 4365 stats: 50/1377/1593 packets, 1/30/1593 pts (early initial), 1592/1593 scr, last pts/stc/sof 785793609/795204102/635

    messages in the log. I was wondering if anybody has seen these errors and what to do about them.

    There is an interesting thread at https://github.com/raspberrypi/linux/issues/238 which is similar, but with a different error code.

    Is the kernel used in these images stock or are there patches applied to it? If the latter, do you have a git repo for it?

    Thanks

    Philip

    • Madox says:

      Hi Philip, recommend you try another webcam with JPG capability instead of using YUV full frames. The kernels are OpenWRT stock.

  15. Don Juane says:

    I have managed to get the Standard Image link from above loaded into the Chinese version of this device and with that Luci and from the PC I have SSH and WCP working. After getting the firmware loaded, changing the password, I then plugged in my new ZTE MF683 and the ZTE began to blink but I am not sure what to do from there. I found these instructions, http://wiki.villagetelco.org/index.php?title=Using_a_3G_USB_Modem_with_the_TL_WR703n. From what I am seeing the WR703n with this firmware is working as an access point, and with only one LAN connector and not much knowledge of OpenWRT I don’t even know how to give this router access to a live connection feed to where I can attempt to download some of the suggested OPKG applications. I also don’t know how to display all the OPKG applications that came installed in this build.

    From the info in the link above on villagetelco, it is suggested to display this location: # cat /proc/bus/usb/devices
    however, there is no such file on my device. I only see folders /proc/bus/input and /proc/bus/output with the ZTE inserted.
    Can anyone help? Thanks!

  16. L says:

    Is there a way to restore this to the stock firmware?

    I want to go back to stock then install the English WR-703N firmware:
    http://wr703n.blogspot.com.au/

    Any thoughts/ideas?

    Open WRT is difficult to use with USB modems.

    Thanks.

  17. L says:

    Also saw this thread which looks interesting but not sure if there is enough space on the default image to do this:
    https://forum.openwrt.org/viewtopic.php?id=37361

  18. Sergegsx says:

    Hi, I have followed your instructions succesfully, thanks !
    Previously I was able to setup my TP-Link to Bridge mode, this allowed me to config the 703 to connect to my wifi, and provide internet to my Arduino ethernet shield.

    How can I do this with Openwrt? Cant seem to find where to enter my wifi password for the 703 to make the connection.

    This is what I would like to accomplish…

    HomeRouterWifi——-(wifi)——>TPLink703——-(rj45)———>EthernetShield+ArduinoUno

    Can it be done with the UI? or must it be setup by writting the commands? I guess if the chinese version has the UI, so will the Openwrt.

    Thanks a lot!

    • Sergegsx says:

      by “previously” I meant using the Chinese webUI.

    • Madox says:

      From the top of my head should be roughly under Network->Wifi->Scan.

      Why do you bother with the Ethernet Shield? Why not directly connect the wr703n to the Arduino via USB serial?

  19. Sergegsx says:

    The reason of using a Ethernet Shield is cause I want to have the arduino sketch be unaware of how internet is getting to it.
    By using an ethernet shield I can then do any of this:
    - plug a RJ45 cable to the main router
    - plug a rj45 cable to a TPlink703 for projects which are not close to main router or need to be wireless.
    - plug a rj45 cable to a tplink703 and use a usb 3G on it to provide internet.
    etc

    Please let me know if you know how to do the Bridge Setup,
    thanks a lot !

  20. Desolate says:

    I have a wr703n version 1.7.
    Is the bin support the version?

  21. Partha Roy says:

    Madox, I downloaded and installed your standard version, so that I could install misterhouse for home automation on an external usb drive. I was thinking I could also move some packages in your standard install on to the external flash drive, LuCI, for example. I usually work off the ssh command line, but at times referring to the LuCI interface is helpful. Are there any others you could think of? I know the criteria for deciding is vague, but threw the question anyway.

    • Madox says:

      I now upload the ImageBuilder for you to roll your own images, or you can start off with the ‘Base’ image and install up from that. I find LuCI very useful for beginners and it is almost impossible to help others if there is no LuCI installed… it does take up a lot of space though…

      • Partha Roy says:

        Thanks for your response. Since I have the task of adding a bunch of perl packages for misterhouse, do you think it is better to start off with the openwrt wiki image or one of your images.

  22. Partha Roy says:

    Sorry, my bad, just realized you said somewhere the standard version is made with the assumption no other packages will be installed

  23. Eddie says:

    if i flash my router and install the standard version will i be able to use my 3g modem?? if so how and will i be able to use it like a regular modem and send wifi from the internet on my computer??

  24. Slimebum says:

    Day 1:
    got the wr703n (chinese) and flashed it, following your sterling guide……managed to get to the Operwrt login page……….working wonderfully…….i had an english Gui and was over the moon.
    Day 2:
    being an overnight expert i decided to flash the unit with firmware from the wr702n english version…………..click………ppppppphhhhhhhttttttttt…..ping!!!! POWERCUT !
    Day 3:
    Still got my head in my hands, wifi will connect to the router but browser wont access login page. If i cant access the Gui i don’t know where to go from here.

    Can anybody please help??
    I’m quite tech savvy but not attempted anything like this before…Its bricked i know but thought it may be reversable….. if i fiddle anymore without some help it may have to be permanently put on my coffee table and used as a coaster.

    • Madox says:

      Why did you flash a wr702n image? What image, factory or OpenWrt?

      Did you try the reset? If not there’s always the serial console :)

      //Sorry can’t help much :P

  25. flyers says:

    I flashed your Madox USBIP 36503_2013-05-01 image,everyting is working, i can connect it to my wifi and get internet access over lan. computer—->lan—>703—>wifi to internet router.

    which i want to make is connect my 703 to my home router, then from another laptop connect to my router and get usbip working through my 703.

    I do connect both of them to the router wirelessly no problem there but…..

    I cannot connect or ping my 703 eventhough i know its static ip.

    is this smth connected to my router or 703 or your firmware.

    how can i set up a sharing system like that.

    printer—>703 usb port—->router<—-USBIP(for printer connection)<—–LapTop(win8 by the way)

    • Madox says:

      I think you’ve just got incorrect settings. Did you check that your firewall zone for your WiFi is set to LAN? That was in my instructions and a common trap for most people. Connect your PC back to the Ethernet port of the WR703N to get access and fix that setting.

  26. Jean says:

    Dear Madox,

    I thank you for the USBIP firmware image you have provided : this one is working really well on my own WR703N (I can share my webcam, flash drives and … my USB missile launcher !). The only issue is that I can only share all the connected devices for now : I try to connect to this USBIP-sharing-box using some Linux computers (Ubuntu 13.04 x64 and x32 running on my “main” laptop and an old eeePC used for testing purpose only, Debian 6 on my Seagate FreeAgent). So far, I can only connect to the 703N and I share the connected devices on my old eeePC …

    Could we maybe work together to solve this issue ? I found many errors (protocol version that are not the same, errors in me dmesg output, cannot remember more yet …) and could share them to you in order to fix that issues and use that wonderful 703N all around my house !

    Many thanks in advance,
    Best resards,
    Jean

    • Madox says:

      Hi Jean, I’m having some trouble understanding your problem. Does it work on your Linux laptops or not? Which ones work and which ones don’t?

      • Jean says:

        Dear Madox,

        Sorry to be a bit confused in my description … I have installed your latest USBIP firmware on my own WR703N, this one is working fine. I have a Seagate FreeAgent device running Debian Linux 6. When I try to connect from this device to the WR703N, I receive an error related to the bus speed. This errors seems to be related to my kernel module, I have to work on it … When I try to connect from an Ubuntu 13.04 laptop running in 64bits mode, the device seems to connect, but the “lsusb” command doesn’t show the remote USB devcice : on the WR703N, there is an error displayed that tells that the version from the client and the server doesn’t match. The only way to connect is to use an old eeePC running Lubuntu 13.04 in 32 bits mode.

        Did you try to conect to your WR703N from something else than Windows ? Does that work for you, or did you need to change some settings either on the server or the client side ?

        Many thanks in advance,
        Best Regards,
        Jean

        • Madox says:

          I’ve not had a problem with connecting my Ubuntu 10.04 64bit, I don’t have a machine with a later Ubuntu to test it with unfortunately.

  27.  
Leave a Reply