Friday, October 31, 2014

How To Debrick TP Link TL-WN841ND

I had flashed my router with openwrt, but I want to goback to original firmware. Unfortunately, when I am flashing my router the leds start to blinking. I have a little confuse. But I did this steps til my router goback alive. Please read this carefully.

WARNING: Do It Your Own Risk!

 Serial Cable:
Getting serial is pretty standard fare. You need a MAX323 or similar level-shifter. The pinout on the router is RX - TX - GND - +5V (Power connector).
If you do not have serial port on your PC, use Nokia CA-42 data USB cable.

Yet Another user notes:
  • For TP-LINK WR841ND V7.2 power conector (+5V) is ignored, just connect RX - TX - GND and router power cord, work fine…
  • My TP-LINK WR841ND V7.2 has a VCC of +3.3V and like the TL-MR3420 http://wiki.openwrt.org/toh/tp-link/tl-mr3420#serial needed to connect a 10k pullup resistor between the TX and the 3.3V pin to get reliable serial:

  • My TP-Link WR841ND V7.1 also requires the 10k pullup resistor between TX and the 3.3V pin. Without the resistor I just get garbage when I type, but can see some console output.
  • just swap TX and GND pin in serial and no garbage in serial console, but this is read-only.
  • For my TP-Link TL841N v9.0 i had to remove R26. It's a pull-up between RX (device side) and VCC. My ftdi device couldn't send data with R26 attached.
  • For my TP-Link TL-WR841ND v8.4 was not required 10K resistor. My TTL to RS232 converter has bad marking of Tx and Rx pins. So, it was necessary to connect Tx-Tx and Rx-Rx. The connection of Vcc (3.3V) was necessary too. The connection scheme you can find on the following image:




  1.  Build tftp server (eg. tftpd32.jounin.net)
  2. Hook your routers WAN ethernet port up to your network (for v8.2 it's LAN1 ethernet port) 
  3. Connect your Nokia CA-42 data USB cable from computer to serial pins on your router. Power ON your router.
    Hook up the serial console as explained in the section "serial console" (I use putty). At the prompt "Autobooting in 1 seconds" type "tpl" quickly to start a uboot console. 
    Now we need to set router and server IP addresses (here named ROUTERIP and SERVERIP, substitute these with the real IP addresses).
Type in the console:
setenv ipaddr ROUTERIP
setenv serverip SERVERIP
printenv
 
For example: Configure this static ip for your LAN card 192.168.1.100. If your computer containing other LAN or Wifi card, disable it!

Type in the console
setenv ipaddr 192.168.1.111
setenv serverip 192.168.1.100
 
192.168.1.111 is the router ip, 192.168.1.100 is the TFTP server ip.
  1. Double check that the output of printenv lists the IP addresses you just set.
  2. Uboot needs the tftp server to be listening on port 69. Make sure your server is configured to listen to that port. Now we can load the firmware over TFTP with "tftpboot 0x80000000 openwrt-ar71xx-generic-tl-wr841n-v8-squashfs-factory.bin":
    ar7240> tftpboot 0x80000000 
    openwrt-ar71xx-generic-tl-wr841n-v8-squashfs
    -factory.bin
    Using eth0 device
    TFTP from server 192.168.1.100; 
    our IP address is 192.168.1.111
    Filename 'openwrt-ar71xx-generic-tl-wr841n
    -v8-squashfs-factory.bin'.
    Load address: 0x80000000
    Loading: checksum bad
    ################################################
             #######################################
             #######################################
             #######################################
             #######################################
             #######################################
             #######################################
             #######################################
             #######################################
             #######################################
             #######################################
             #######################################
    done
    Bytes transferred = 3932160 (3c0000 hex)
    
  3. Note the "3c0000" in the last line (your number may differ). Now execute the following commands, if necessary replacing 3c0000 with the number you got from tftpboot.