Unbricken eines TP-Link 1043ND

Diese Anleitung basiert im Wesentlichen auf einem Artikel von Thomas Leister ( https://thomas-leister.de/internet/tp-link-wr1043nd-v2-unbricken/ ). Dort gibt es auch noch ein paar Bilder. 
Ich habe die Anleitung um einige Informationen ergänzt, an Stellen, bei denen ich mich etwas schwer getan habe, bis es funktioniert hat. Ich habe die Infos auch deshalb übernommen, weil man ja nie weiß, wie dauerhaft Links und Homepages verfügbar bleiben.
Eine weitere Anleitung zum Wiederherstellen des Originalzustandes des WR1043 findet sich hier: http://www.ediy.com.my/index.php/blog/item/9-tp-link-tl-wr1043nd-resotre-from-dd-wrt-to-original-firmware
Eine bebilderte Anleitung für das Vorgehen für Version 1 des WR1043ND ist unter Unbricken eines TL-WR1043ND V1 zu finden.
== Totalausfall ==
Wenn der Router nicht mehr korrekt startet, gibt es als letzte Möglichkeit zur Reparatur die Ansteuerung über die COM-Schnittstelle (UART) auf der Platine. Dazu sind Lötarbeiten notwendig, denn die Schnittstelle muss mit Pins versehen werden. 
Wer sich das nicht zutraut; Finger weg, nicht weiter lesen! Unter umständen kann auch eine Reparatur ohne serielle Schnittstelle probiert werden 
Für die Instandsetzung werden gebraucht:
* Ein kleiner Kreuzschraubendreher
* Ein 3,3V-UART USB-Wandler, z.B. TTL 232R RPI, USB zu TTL, serieller UART-Wandler von Reichelt-Elektronik. Das Benutzen einer „normalen“ seriellen Schnittstelle (RS232 mit 9-poligem D-Sub-Stecker) funktioniert nicht, da hier eine andere Spannung zum Einsatz kommt!
* Eine Stiftleiste mit 4 Stiften zum Einlöten, z.B. MPE 087-1-004, Stiftleiste 2,54 mm, 1X04, gerade, von Reichelt-Elektronik
* Ein kleiner Lötkolben, etwas Feinlötzinn und 
* PC/Laptop mit TFTP-Server und PuTTY (SSH und Telnet-Client)
* die gewünschte Freifunk-Firmware oder auch OpenWrt (ob diese Anleitung auch f.d. Original-Firmware von TP-Link genutzt werden kann weiß ich nicht, da gab es irgendetwas mit einer Anpassung )
* Ein Netzwerk-Patchkabel
* etwas Geschick, Nerven und Geduld…
== Auf Los geht’s los ==
* Firmware herunterladen
* TFTP-Server herunterladen, sofern noch nicht vorhanden. Ich habe mir OPEN TFTP Server direkt von Sourceforge http://sourceforge.net/projects/tftp-server/ geholt.
* PuTTY herunterladen, sofern noch nicht vorhanden (http://www.putty.org/)
== Gehäuse öffnen ==
Die vier Gehäuseschrauben an der Unterseite lösen und die beiden Gehäuseschalen mit sanfter Gewalt auseinanderhebeln. Bei mir hat es ohne Verwendung von Werkzeugen, nur mit den Fingernägeln, funktioniert.
== Vorbereitung der COM-Port (UART) Schnittstelle ==
Der Router ist stromlos, das Netzteil ist nicht angeschlossen! Wer ganz sichergehen will, achtet bitte auf potenzialfreies Arbeiten, mit Erdung und allem "pipapo"! (Das wäre zumindest fachmannisch richtig!)
Auf der linken Seite der Platine (Anschlüsse zeigen nach oben) ist unmittelbar unter dem großen, schwarzen Kondensator entlang der linken Außenkante ein etwa 1cm langer Streifen mit 4 Lötösen. Dies ist die UART Schnittstelle. Darüber soll mit dem PC eine Verbindung aufgebaut werden.
Damit das funktioniert, muss hier die Stiftleiste eingelötet werden.
Die Platine lässt sich anheben und von der Anschlussseite weg aus der Gehäuseschale heben. Ggf. sind die Halterungen der Antennenkabel zu lösen.
 
Die 4er-Stiftleiste wird von der Bestückungsseite her in die Ösen gesteckt und von der Rückseite her eingelötet (Alle 4 Pins natürlich!)
== PC über den UART-Wandler mit COM-Schnittstelle des Routers verbinden. ==
Der Router ist weiterhin stromlos, das Netzteil ist nicht angeschlossen!
Die eingelöteten Stifte haben von oben (Kondensator) nach unten die Bezeichnungen VCC (Versorgungsspannung), GND (Masse), RX und TX. 
Der oberste Stift VCC (neben dem Kondensator) wird nicht benötigt. 
Der nächste, zweite Stift von oben, GND (Masse), wird mit dem schwarzen Kabel des Wandlers bestückt (Masse/GND), RX und TX mit den beiden anderen Kabeln.
 
Wichtig ist hier, dass RX der Platine mit TX des Wandlers und TX der Platine mit RX des Wandlers verbunden wird. In Fall meines Wandlers war dies die Farbfolge „schwarz“, „rot (orange)“, „gelb“. (Wenn sich später „nichts tut“ ist das Vertauschen dieser beiden Kabel, in meinem Fall „rot“ und „gelb“, die erste mgl. Fehlerquelle).
Nun muss von der Homepage des Herstellers des UART-Wandlers der passende Treiber heruntergeladen und installiert werden.
Die Beschreibung des o.g. UART-Wandlers ist auf der Hersteller-Homepage zu finden. Die Produktseite ist http://www.ftdichip.com/Products/ICs/FT232R.htm, hier ist der Link zu den VCP-Treibern (Virtual COM-Port für Windows, Linux, usw.)
Die Treiber werden nach dem Herunterladen installiert, dann wird der UART-Wandler an USB angesteckt. Der Treiber erstellt einen Virtuellen COM-Port (zu ermitteln z.B. in Windows im Gerätemanager) den man sich für später notieren muss (COM2 oder COM3 usw. )
== LAN-Schnittstelle vorbereiten ==
Für die Verbindung zum Router muss eine feste (statische) Netzwerkadresse eingerichtet werden, über die später über LAN mit dem „defekten“ Router kommuniziert wird. Die IP-Adresse ist 192.168.1.100, Netzwerkmaske: 255.255.255.0 (Gateway: 0.0.0.0)
Anschließend die Netzwerk-Buchse des PC mit der ersten LAN-Schnittstelle (die 1. Gelbe neben der blauen Buchse) des Routers verbinden.
== TFTP-Server einrichten ==
Die Firmware wird später vom Router über die LAN-Schnittstelle per TFTP-Verbindung vom PC heruntergeladen. Dazu muss auf dem PC ein TFTP-Server installiert sein. Wie das gemacht wird kann man sich im Internet anlesen. 
Meine Variante unter Windows:
Ich habe auf meinem Windows-PC Open-TFTP (Sourceforge http://sourceforge.net/projects/tftp-server/ ) benutzt. 
Nach Installation hat man unter Programme – Open TFTP Server den Local-Link Configure über dem man dem TFTP-Server sein Root-Verzeichnis mitteilt (betrifft die Datei c:\OpenTFTPServer\OpenTFTPServerMT.ini). 
Unter [HOME] habe ich das Verzeichnis C:\OpenTFTPServer\files eingetragen und das Textfile anschließend gespeichert. 
Nachdem dieses Verzeichnis (C:\OpenTFTPServer\files) dann auch noch von Hand auf der Festplatte angelegt wurde, muss die zu übertragende Firmware-Datei in diesem Verzeichnis abgelegt werden. 
Um mir später die Tipperei zu erleichtern, habe ich die Firmwaredatei hier anschließend in firmware.bin umbenannt.
Anschließend habe ich den TFTP-Server mit Programme – Open TFTP Server – „Run Stand Alone“ (Batch-Datei C:\OpenTFTPServer\RunStandAlone.bat) gestartet. 
Für andere TFTP-Server ist sinngemäß entsprechend zu verfahren (die hatten bei mir aber nicht funktioniert ;-) ).
== Router über die UART-Schnittstelle verbinden und steuern ==
Die Kommunikation mit dem Router findet über ein SSH Komandozeilen-Tool statt. Sehr einfach geht das z.B. mit PuTTY. Die Installationsdatei findet man unter http://www.putty.org 
== PuTTY starten ==
Die folgenden Einstellungen in PuTTY speichert man sich am besten als Profil, denn man wird es häufiger starten müssen. So spart mich sich, jedesmal wieder alles neu herzurichten.
* Links unter „Category“ ganz unten „serial“ auswählen.
* Bei „Serial line to connect to“ den oben ermittelten COM-Port des UART-Wandlers eintragen, z.B. COM3.
* Unter „Speed (baud)“ eine Baudrate von 115200 eintragen.
* Unter „Flow Control“ NONE auswählen.
* Mit Klick auf „Session“ oben zurück auf das Haupt-Fenster.
* Unter „Connection type:“ „Serial“ auswählen. Jetzt sollten die links unter „serial“ eingetragenen Werte angezeigt werden.
* Im Feld „Saved Sessions“ einen beliebigen Profilnamen eingeben und rechts mit „Save“ speichern.
Mit „Open“ oder Doppelklick auf das gespeicherte Profil die PuTTY-Session starten.
== Los geht’s ==
1.	USB-UART Wandler ist mit Router und PC verbunden. 
2.	LAN Schnittstelle ist eingestellt (192.168.1.100). 
3.	PC ist per LAN-Kabel mit dem Router (1 gelbe Buchse) verbunden. 
4.	Firmware-Datei ist im Root-Verzeichnis des TFTP-Servers hinterlegt (z.B. firmware.bin).
5.	TFTP-Server ist gestartet, bei Verwendung von OpenTFTP wird das Log-Fenster angezeigt. 
6.	PuTTY ist gestartet und „wartet“ mit einem grünen Text-Cursor.
Router ausschalten (Ein-Aus-Taster nicht gedrückt) und mit Netzteil verbinden, 
Netzteil in Steckdose.
Router einschalten. 
In der PuTTY-Konsole erscheinen Informationen zum Bootvorgang.
Sobald die Zeile 
 Autobooting in 1 seconds
erscheint, bleibt weniger als eine Sekunde Zeit um 
 Tpl
einzutippen und mit ENTER abzuschicken. 
Für die CPE210 muss gar nichts getan werden, sie versucht bei jeden Boot auf 192.168.0.100 einen tftp Server zu erreichen und sich dort die Firmware zu holen. Es ist eigentlich nicht mal eine serielle Schnittstelle nötig aber es ist schick zu sehen was dort passiert ;)
https://wiki.openwrt.org/toh/tp-link/tl-cpe210#debricking
(Nach ein paar Mal Üben klappt das, man könnte sich auch irgendeiner Tastaturhilfe bedienen , z.B. AutoHotkey)
Erscheint die Kommandozeile mit dem Prompt 
 ap135>
war die Aktion erfolgreich.
Wenn nicht, schaltet man den Router aus, schließt und startet PuTTY erneut mit dem gespeicherten Profil und schaltet den Router wieder ein.
Das macht man solange, bis man endlich den Prompt „ap135>“ erhält und damit den Startvorgang des Routers unterbrochen hat.
Anm.: Wenn man den Prompt nicht gleich„trifft“ kann man wenigstens einmal den Bootvorgang verfolgen und ggf. auch erkennen, warum das Gerät nicht mehr korrekt startete.
Weitere Informationen falls es gar nicht klappt, am Ende des Artikels.
== Firmware flashen ==
Jetzt ist es fast geschafft. Die Firmware muss mit folgenden Kommandos vom PC auf den Router übertragen werden (genau genommen holt sich der Router die Datei aus dem TFTP-Verzeichnis, s.o.). 
Wenn nach dem „tftp“-Kommando statt eines Blockes von #-Zeichen nur eine langsam zunehmende Reihe von "T’s" erscheint, dann ist vermutlich der TFTP-Server auf dem PC nicht erreichbar (IP-Adresse falsch, Firewall/Virenscanner blockiert etc.. Bei mir hat z.B. das Abschalten der Firewall „geholfen“)
 
Die Kommados zur Installation der Firmware (Die Speicheradressen passen für den TP-Link WR1043ND V2, für andere Geräte ggf. anpassen!). 
Jede Zeile mit ENTER abschließen und Ergebnis abwarten:
 tftp 0x80060000 firmware.bin
 erase 0x9f020000 +0x7c0000
 cp.b 0x80060000 0x9f020000 0x7c0000
 bootm 0x9f020000
Nach Eingabe der letzten Kommandozeile startet der Router neu und lädt die eingespielte Firmware. (hier war ein Tippfehler in der Anleitung von Thomas Leister, der mich fast verzweifeln lies! Er hatte "boot.m" angegeben ...)
== Damit sind wir fertig. ==
Das Gerät sollte jetzt wieder mit den Default-Einstellungen der Firmware, die auf das Gerät geladen wurde, betriebsbereit sein!
Ab hier geht es mit den abschließenden Schritten nach Flashen des Routers weiter, wie es hier bei Freifunk-Franken oder an anderer Stelle beschrieben ist. 
Bitte noch die Netzwerkeinstellungen des PCs wieder auf die gewünschten Einstellungen zurücksetzen.
Viel Spaß mit dem „neuen“ Router!
== TP-Link TL-WR1043N v5 ==
Bei der Hardwareversion V5 befindet sich die serielle Schnittstelle unten links (Anschlüsse zeigen nach oben). Die Kontakte von oben nach unten sind: TX, RX, GND und VCC. Auf der Leiterplatte, direkt neben der Schnittstelle fehlt eine Verbindung. Darum muss eine Lötbrücke bei R257 eingelötet werden.
== Hinweis wenn Tpl nicht klappt ==
Es gibt einige Router da reicht es nicht, den seriellen Port anzulöten, es müssen noch Bauteile entfernt oder überbrückt werden. 
=== folgende Router sind betroffen ===
* wr841n(d) v7: Hier kann nur seriell gelesen werden aber nicht geschrieben (man sieht zwar was passiert, ein Tpl klappt aber nicht). Nach meinen Informationen muss ein SMD Bauteil entfernt und eins überbrückt werden. Mir ist es aufgrund dessen, das die Bauteile extrem klein sind, dies nicht gelungen.
Quellen:
https://thomas-leister.de/internet/tp-link-wr1043nd-v2-unbricken/
http://www.dd-wrt.com/phpBB2/viewtopic.php?p=499750 
http://wiki.openwrt.org/toh/tp-link/tl-wr1043nd#oem.installation.using.the.tftp.and.rs232.method
Kategorie:Unbricken
Kategorie:Technik