Home DIY or DIY TP-LINK 3020Router Reanimation

TP-LINK 3020Router Reanimation

by admin

Good day to all.
Decided to share my experience of reanimating Wi-Fi router TP-LINK 3020
It all started when I decided to play with CyberWRT firmware out of forced idleness.And it ended badly. I didn’t even really understand what happened. The most likely thing was that I was working with a router via WiFi, which was distributed by the exact same router with the factory firmware and default settings. Apparently at some point there was a reset of the subject, respectively a conflict of IP addresses, and I got a beautiful brick, blinking all the LEDs in a cyclic reboot.
You shouldn’t do that.
Wept and went to Google.
The minuses in my position were: I was at work in the wilderness, no USB to UART adapters, I did not have. It was about 565 kilometers in a straight line to a radio parts store. And it’s not a fact that it sold what I needed.
Pros: the router already had the UART soldered out. By the way, it took two minutes to solder it out to a standard 2.54 comb. And the board was available Freeduino with a USB port. I can’t find any examples of using it as a USB-UART bridge on the web. Basically the boards with several hardware UARTs were pushed, and there is only one. I am not an expert. However, I had some free time and the router was half dead, so I had almost nothing to lose. There was a risk to kill the router completely, was an option to wait until returning home (in a month) and deal with the router there, looking for a normal adapter. But a month without the router meant a lot of wasted time, which I planned to spend on gutting the router. The second router was a shame and scary thing to do.
Here we go. I got the freedoin and attached it to my computer. Found a dodgy sketch on the internet:

void setup() {pinMode(0, INPUT);pinMode(1, INPUT);}void loop() {}

That’s it. It is not clear what is the incoming, where is the incoming – it is not clear. Vaguely imagining the coming tortures with softwar serial or something else, still unknown, I started to connect the router. RX-TX, TX-RX. Somebody advised me to use a resistor to match the voltages, but I didn’t have it. Somebody advised to short RESET to ground, that seemed to me suspicious too. I decided that one and a half volt difference was no big deal. I connected the router to the laptop’s NIC and foolishly turned it on… I saw the LEDs flashing in time every 2 seconds:

U-Boot 1.1.4 (Nov 28 2011 - 09:34:00)AP121 (ar9330) U-bootDRAM:32 MB...................eth0, eth1Autobooting in 1 seconds...

And where did I see this? In the window of the arduino serial monitor. And at the top of the window there was an unobtrusive input field and a button with a purely Russian "Send". I thought and hesitated, typed there "tpl", waited until "Autobooting in 1 second" appeared and sent it. Without any additional terminals, Putty and so on. And it stopped!
It just couldn’t be true.
I typed "printenv" – it works!
I was shocked. From there, everything went like clockwork :
– downloaded tftpd32 , slipped it into his folder firmware
– Set the IP of the laptop’s network card to
– Running tftpd32, IP –, Show Dir – Firmware path – Copy.
– tftpboot 0x80000000 CyberWrt-v1.4.bin – done
– erase 0x9f020000 +0x3c0000 – done
– cp.b 0x80000000 0x9f020000 0x3c0000 – finished
– bootm 0x9f020000 – ready!
– returned the network interface to get IP automatically…
And all this from an Arduino monitor…
And that’s it! The result is a live router. And what is interesting – I even forgot to connect the "ground" between the router and the freedoin. I noticed it after the firmware was installed. The router just got its power from the same laptop USB as the Freeduino, so it must have connected there by itself.
So it turned out to be much simpler than I expected. Good luck to all of you who will be repeating this. Good luck to anyone repeating this.

You may also like