Sunday, 09 June 2013 15:11

Recover bricked TL-MR3020 Wireless N Router

After flashing the latest OpenWRT image file (openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory dated 03-Jun-2013), my TL-MR3020 is bricked. All the LED is keep on blinking (about 3 seconds once) except power LED, and the network is getting connected and disconnected every 3 seconds. Very lucky that the problem was fiexed by using serial console and Tftpd32 method.
 
Note:
Using serial console method require to open the case cover (void warranty) from TL-MR3020 router, and solder a10K resistor and 4 ways header pin to it as shown in figure below.
Solder a 10K resistor and 4 ways header pin to PCB
 
 

Prerequisite

  • Tftpd32: A free tftp and dhcp server for windows, freeware tftp server. Very efficient for booting over LAN.
  • PuTTY: SSH and telnet client, free and open-source terminal emulator, serial console and network file transfer application.
  • USB to UART converter support 3.3V

As shown in figure below is my USB-UART converter which come with 6 ways header pin for interfacing. The voltage selector must set to 3.3V since the TL-MR3020 router have its I/O pins working at 3.3V. Plug in the USB-UART converter to computer, I get about 3.6V measure by poking at VCC and GND

USB to UART converter
 
 
 

Opening the case

Pry it open with a thin but very stable blade tool. Start above the mini USB power port where the case is not glued.

Opening case
 
 
 

Connection Diagram

Do not connect the router VCC to USB-UART VCC, it may break your adapter or your router

TL-MR3020 USB-UART
GND GND
RX TXD
TX RXD
USB-UART converter and TL-MR3020 router connection diagram 
 
Finally, connect an ethernet cable from TL-MR3020 network (do not worry about network, it is not working at the moment) to the computer and plug in the USB-UART converter to computer. 
Device manager 
 
 

Setting up network IP address

Assign a static IP address to the computer, it is configured to 192.168.1.2 since the router IP address is 192.168.1.1 (even though it is not working).
Computer IP address
 
 
 

Install OpenWRT from the U-Boot console 

Download the latest Attitude Adjustment RC1 snapshot and save it to C:\Program Files\Tftpd32 (Tftpd32 default installation folder) as shown in figure below
Tftpd32 installation folder
 
Run Tftpd32 as shown in figure below, where Server interface is your computer IP address, it should detected automatically
Tftpd32
 
 
  • Run Putty as show in figure below
  • I'm using COM4 since my USB-UART driver detected as COM4
  • Speed 9600 is not work for me even though USB-UART driver shows 9600, I must use 115200
PuTTY configuration
 
 
Click on Open button, the PuTTY screen should look like this

Using default environment

In: serial
Out: serial
Err: serial
Net: ag7240_enet_initialize...
No valid address in Flash. Using fixed address
No valid address in Flash. Using fixed address
: cfg1 0x5 cfg2 0x7114
eth0: 00:03:7f:09:0b:ad
ag7240_phy_setup
eth0 up
: cfg1 0xf cfg2 0x7214
eth1: 00:03:7f:09:0b:ad
athrs26_reg_init_lan
ATHRS26: resetting s26
ATHRS26: s26 reset done
ag7240_phy_setup
eth1 up
eth0, eth1
Autobooting in 1 seconds

After a 1-2 seconds it shows Autobooting in 1 seconds, when displaying this enter tpl immediately.
 
You will get a U-Boot-console, it shows as hornet>, and you must enter the following commands:
Where setenv ipaddr is the router IP,  setenv serverip is the computer IP, openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin is the OpenWRT image file

hornet> setenv ipaddr 192.168.1.1
hornet> setenv serverip 192.168.1.2
hornet> tftpboot 0x80000000 openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin
eth1 link down
dup 1 speed 100
Using eth0 device
TFTP from server 192.168.1.2; our IP address is 192.168.1.1
Filename 'openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin'.
Load address: 0x80000000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
######################################################
done
Bytes transferred = 3932160 (3c0000 hex)
hornet> erase 0x9f020000 +0x3c0000

First 0x2 last 0x3d sector size 0x10000 61
Erased 60 sectors
hornet> cp.b 0x80000000 0x9f020000 0x3c0000
Copy to Flash... write addr: 9f020000

done
hornet> bootm 9f020000

Note:
It is necessary to unplug the USB-UART everytime a new PuTTY instance started
Read 249689 times Last modified on Sunday, 12 June 2016 10:38
Back to Top