• Stampa

Ripristino TP-LINK 941 OPEN-WRT tramite seriale e ARDUINO

 

tp-link-wr941nd

dati-cover-tp-link-wr941nd

 

 

Con un errata configurazione della ETH0 da interfaccia WEB luci OPEN-WR si blocca  l'accesso alla configurazione (web, telnet, ssh) da tutte le porte di rete del TP-LINK e quindi se non si hanno attive reti wireless (di default sono disattive) praticamente l'access point/router è da buttare.

L'unico modo per ripristinarlo è utilizzare il collegamento seriale attivo sulla scheda dell'AP come descritto nella WIKI del OPEN WRT:

http://wiki.openwrt.org/toh/tp-link/tl-wr941nd

resettando le impostazioni e riaccedendo in telnet.


Per accedera allla scheda si deve come prima cosa disassemblare l'access point togliendo la cover esterna:

cover-tp-link-wr941nd


La scheda si presenta così :


 

seriale-tp-link-wr941nd


La parte cerchiata in nero individua la serie di contatti che servono per il collegamento in seriale:


TX = trasmissione

RX= ricezione

GND= massa

VCC= + 3v

nell'immagine abbiamo già saldato i piedini di collegamento sulla scheda.

 zoom-seriale-tp-link-wr941nd


Come prima cosa si deve saldare dove c'è il cerchietto rosso per ablitare il pin di trasmissione.

Per avere la certezza di aver saldato bene, visto che la cosa è millimetrica, basta verificare con un tester, dopo qualche secondo dall'avvio dell'apparato, che ci sia una tensione di 3,5-3,6 volt tra TX e GND mentre tra RX e GND ci sono  senpre 0 volt.


A questo punto non è possibile collegare direttamente i piedini alla seriale di un pc perchè lavora sui 3,3 volt mentre i pc su 5v ed è quindi necessario utilizzare un ARDUINO MEGA come interfaccia. Questo microprocessore programmabile ha disponibili 3 seriali e una connessione USB per l'upload del codice/console seriale.


 arduino-tp-link-wr941nd

 

 I collegamenti sono semplici si collega la massa, il TX sul tp-link all'RX serial1 del MEGA e il RX sul tp-link al TX serial1 sul MEGA.

A questo punto manca solo un po' di codice da Uploadare sull'arduino:

 

void setup() {
  // initialize serial:
  Serial.begin(115200);
  Serial1.begin(115200);
}

void loop() {
 
}

void serialEvent() {
  while (Serial.available()) {
    // get the new byte:
    char inChar = (char)Serial.read();
   Serial1.print(inChar);
  }
}

void serialEvent1() {
  while (Serial1.available()) {
    // get the new byte:
    char inChar = (char)Serial1.read();
    Serial.print(inChar);
  }
}

 

Semplicemente tutto quello che arriva dal Tp-link viene girato sulla seriale del pc (collegamento USB dell'arduino) e tutto quello che digitiamo nell'HYPER TERMINAL viena inviato dall'arduino al Tp-Link.

Come sessione dell'HYPER TERMINAL ci colleghiamo alla SERIALE creata dalla connessione USB dell'Arduino ...Serial 7 ... 18 ...21

con velocità 155200 e nesun controllo di flusso.

Questo è quanto appare al boot dell'apparato:


hyperterminal-tp-link


a cui segue la richiesta di premere "f" e poi invio per entrare in FAIL SAFE dove possiamo cancellare la configurazione e . . .

riportare alla vita il TP-LINK WR941ND !!!


 

hyperterminal-tp-link-failsafe