Friday, December 7, 2012

Here is how to unbrick your tplink TL-WR1043ND (and possibly others too)
First you will need to download putty and tftpd server
next you will need to find a USB to TTL cable
Once you have your cable refer to this picture to hook it up

http://wiki.openwrt.org/_media/inbox/wr1043ndserial.jpg

or look at  your board and you will see 4 pin sockets...
P1 - [vcc3.3v] [gnd] [rx] [tx]

SOme just stick a cable and tape it in each socket, I did a 5 min solder job and got in a staple pin in each socket and trimmed off the excess with a nail cutter.

Also i ordered a $3 usb to serial / ttl cable from China and it worked like a charm. mine is a 2303hx prolific.

REMEMBER TO REVERSE THE Tx and Rx with your cable !!! IMPORTANT !!!

NOTE: I didn't use the VCC connection only the GND Tx and Rx if you use the VCC use +3.3v connection

Once you have hooked up your cable correctly follow these instructions and you will be fine.
1. Download modified original firmware that has first 0x20200 cut off, or use any sysupgrade firmware. (I used a sysupgrade firmware)

2. Gain access to the serial port and hook it up to your computer using RS-232 / USB --> TTL adapter.
3. Install Putty, setup Serial connection, set COM port appropiately to your adapter in step 2 and do not click Open yet (baud rate: 115200 8N1 and set Flow Control to None)
4. set networkcard of computer to ip address: 192.168.0.5 , subnetmask 255.255.255.0 and no gateway
5. Install TFTP32 server (google it) on your computer, connect computer with ethernet cable to LAN switch port on router.
6. Make sure the "Current Directory" in TFTP32 is set to folder with modified original firmware renamed to "code.bin"
7. In Putty, click open and plug in Power cord to router... you should see bootloader coming up now...
8. You will see something like this:
No valid address in Flash. Using fixed address
: cfg1 0xf cfg2 0x7114
eth0 up
eth0
Autobooting in 1 seconds## Booting image bf0200000...
Then type following fast: tpl
Now you will get into the command prompt and you're able to execute commands.
9. Erase the firmware before writing it again using following command: erase 0xbf020000 +7c0000
10. Download new modified original firmware from computer to the router: tftpboot 0x81000000 code.bin
11. Write the downloaded firmware to flash using: cp.b 0x81000000 0xbf020000 0x7c0000
12. Boot the original firmware again: bootm 0xbf020000
13. Let the router finish booting up and wait for everything to stop loading
14. push ctrl + c than hit enter and now you should see the openwrt login screen
Your router should be unbricked again!
On step 1 it asks to use a specific file, but where to get it? Or what is sysupgrade firmware? Is the same of a firmware from dd-wrt?
just follow the wiki..
http://wiki.openwrt.org/toh/tp-link/tl-wr1043nd#back.to.original.firmware

4 (edited by Qopzeep 2012-11-25 16:36:23)

Thanks so much smile! I followed the guide and my router is now UNBRICKED! Here a little info for future router-brickers:
Instead of ordering a serial cable, which would've taken a few days to get here, I used my Arduino duemilanove as a serial cable. This worked great, for more details see this post: http://www.dd-wrt.com/phpBB2/viewtopic.php?p=725420. An Arduino diecimilia and I presume an Arduino Uno would work as well. Also, I didn't need to solder my wires to the board. I just used tin wires (the stiff ones, not the ones made from many small wires twisted together) and put them through the appropriate holes on the router board. Then I bent the wires so they couldn't move. Finally, I taped them down for good measure. No soldering required! big_smile
When wiring up Tx and Rx cables to the router, pay attention to what the terminal says. If it outputs characters like these:
Ýý     Ỳỳ     Ŷŷ     Y̊ẙ     Ÿÿ     Ỹỹ     Ẏẏ     Ȳȳ     Úú     Ùù     Ŭŭ     Ûû     Ǔǔ     Ůů     Üü     Ǘǘ     Ǜǜ     Ǚǚ     Ǖǖ     Űű     Ũũ     Ṹṹ     Ųų     Ūū     Ṻṻ     Ủủ     Ȕȕ     Ȗȗ     Ưư     Ứứ     Ừừ     Ữữ     Ửử     Ựự
Ụụ     Ṳṳ     Ṷṷ

etc., you've wired Tx and Rx the wrong way round. Switch them and you should be ok smile. The little Tx LED on your Arduino should light up everytime the router enters the boot cycle.
Also, I used software called 'Termite', instead of Putty, because Putty wouldn't work for me :S you can get Termite here if Putty won't play ball with you either: http://www.compuphase.com/software_termite.htm.
To understand how to open your router, follow the excellent guide on the OpenWRT wiki: http://wiki.openwrt.org/toh/tp-link/tl-wr1043nd#openingclosing.the.case.
I didn't have the option to CTRL+C in Termite, but after I was sure the router was performing normally again, I unplugged it from the power, then removed the wires to the Arduino, and plugged the power back in. I could now access the Luci (=web) interface of OpenWRT smile!
@hugoleosp as sysupgrade, I used the latest beta from the download section. It's 12.09 beta 2, available here: http://downloads.openwrt.org/attitude_a … actory.bin. This is for OpenWRT, however, not DD-WRT. If you prefer the latter, I'd download and use their latest release.