Recently, I did a bit of shuffling around with my devices. My dad wanted wifi he can carry around. So I gave him the Huwaie portable router and my brother got my wall plugged 3G dongle and I was left with my trusty ol' TP-LINK-MR3020. Since I use 3G myself, I decided I would utilise the TP-LINK and so got a NETGEAR dongle without inbuilt wifi instead of a new 3g/4G dongle (cause it was cheaper and won't interfere with TP-LINK's wifi signal). Then in a hurry to get my router to work I flashed it with the upgrade firmware and something went wrong along the way and it bricked the device (3 lights blinking intermittently).
The way to prop it back to life is to to get a serial connection from the device. This involves prying open the device (voids warranty but the concept of warranty itself is mostly useless anyway).
There are two ways to go about this:
a. You solder the jumper wires to board (requires: 30watt pencil type soldering iron + Female to Female Jumper wires + Multimeter)
b. Or you don't
Even though I have a soldering iron, my multi meter was elsewhere and really, am lazy to have to figure out how to use the multimeter unless there was no other way. Why should we solder anyway? So we are going to do the lazy way.
Step 0: Gather your stuff
- 1x bricked TP-LINK MR3020 with USB charger and wire
- 1x Ethernet cable
- 1x Ethernet<-> USB adapter
- 1x USB UART adapter
- 1x 10K resistor
- Female to Male Jumper wires (Note: you'd need yellow, green and black wires)
- OS X computer
Step 2: Pry open the device
In exchange for a mere slice of pizza, a friend used his fine muscles to open the device for me. My nails were undamaged in the process.
Step 3: Install the software
On OS X, you would need these 3 softwares:
- tftpServer
- CP102x drivers
- coolTerm
- Openwrt Attitude Adjustment firmware
- Openwrt Chaos Calmer firmware (for upgrading later)
Good to do a reboot once you are done installing.
Step 4: Know which parts go where
(borrowed from khairulazam.net article)
TL-MR3020 | USB-UART | COLOR |
---|---|---|
GND | GND | BLACK |
RX | TXD | GREEN |
TX | RXD | YELLOW |
Stick in the 10K resistor with wires on either sides of the holes available. Attach the jumper wires accordingly between the router and USB-UART. Note that your yellow cable for RXD may not completely go inside the hole because of the wire end from the resistor but that's OK, just ensure it's touching the board and the wire.
Setup should look like this:
I have plugged in the USB-UART and router to a USB hub. My USB-Ethernet is connected on another port on the other side of my Macbook. Once things are powered up, you will see a constant red light in the USB-UART and a blinking blue light. Your router would also be doing that crazy three-lights-intermittently dance. Even though you have the USB-Eth plugged in, your macbook won't detect it cause it isn't powered just yet.
Step 4: Fire up
-
In your Network Settings, for the USB-Eth adapter, set the IP address as '192.168.1.100', router address as '192.168.1.1' and subnet mask as '255.255.255.0'. Save and Close.
-
Open up tftpServer, click on 'Reveal'. This will open up window, copy the 'openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin' here. Start the tftpServer.
-
Open coolTerm and click 'Options'.
- In the 'Port' drop down menu, you should see 'SLAB_USBtoUART' option, select that.
Select 'Baud rate' to '115200'.
- Under 'Terminal' section to the left, select the 'Terminal Mode' to be 'Line Mode'.
-
Select 'OK'.
-
Click 'Connect' and you will see that the virtual green lights at the bottom for 'RTS' and 'DTR' light up. The light for 'RX' should blink intermittently. The log will show your TP-LINK going crazy but that's cool, we will get it to behave next.
-
Enter the following commands in sequence and wait for each to finish before you type in the next:
tpl # starts the 'hornet' prompt
setenv ipaddr 192.168.1.111
setenv serverip 192.168.1.100
tftpboot 0x80000000 openwrt-ar71xx-generic-tl-mr3020-v1-squashfs-factory.bin
Ensure you have done Step 1 in this list!
erase 0x9f020000 +0x3c0000
Wait...wait..
cp.b 0x80000000 0x9f020000 0x3c0000
Patience my dear!
bootm 9f020000
Almost there :)
At the end of this process, your TP-LINK-MR3020 will be unbricked, yay! While you are connected, access the router page with 'http://192.168.1.1' and upgrade to Chaos Chalmer by feeding the firmware from Luci's Sysupgrade console page. Reboot and connect via Ethernet and proceed to setup as usual. I referred to my article: How to Setup USB Disk, NFS Server and Bittorrent on OpenWrt Attitude Adjustment and connect from OSX again to setup the router as it suits me.
Place the board back in the case. Be careful not to scratch the underside of the board. Notice there are supporting plastic ridges for the board to sit snuggly in? So just guide the board in, Don't force it, be gentle. The top cover will also snap back nicely into place. Good as new!
I google searched a couple of times, skimmed through a few articles, looked for relevant video results and such. Cross referencing articles gave me an idea of whats going on. I referred to:
- http://techjim.blogspot.in/2014/11/how-to-unbrick-tp-link-mr3020-on-osx.html
- http://blog.khairulazam.net/2015/02/16/recover-bricked-tl-mr3020-via-serial-console/
- http://ediy.com.my/blog/item/78-recover-bricked-tl-mr3020-wireless-n-router
Some of the above articles had either relevant pictures or info but not both. I wrote this article because none of the above were taking into account my n00b status when approaching this debricking. Also we are skipping the soldering part because not everyone of us has a multi meter and soldering iron lying around. Soldering won't be all that hard just the extra step of knowing how to work the multimeter to identify the ports on the router and then soldering the jumper wires on to it.
okay found some info on this, my problem was a boot loop - info specfic to mr-3020 https://forum.piratebox.cc/read.php?8,15713,17215#msg-17215 and video where previous info based on - https://www.youtube.com/watch?v=0k1sxwX5pMk