8 de marzo de 2020

WRT54GL Conexión Serial


WRT54GL

Hace días me realizaron una consulta sobre conectar un router mediante un adaptador serial, en el post de PL-2303HX USB-to-Serial Comm Port así que decidí hacer la prueba, desempolve el WRT54GL para validar el adaptador.

Luego  de abrir el router y adicionarle unos pines para poderlo conectar, tal como lo indica la wiki de DD-WRT (WRT54GL MAX232 Serial).

Pines - WRT54GL

Realice la conexión con este adaptador PL-2303HX, pero NO ME FUNCIONO, por suerte tenia otro adaptador el CH340 y con este funciono de forma parcial ver imagen mas adelante. Encontré que el adaptador debe necesitar ser TTL a 3.3V o en ingles: "You NEED a level shifting 3.3v TTL serial adapter." ya que la conexión serial es TTL a 3.3V y al parecer el otro adaptador no puede "leer" este tipo de señales. El adaptador PL-2303HX solo me ha funcionado para programar Arduino-Compatible como el ESP8266.

La conexión quedo así:

  • Adaptador USB - GND a GND router
  • Adaptador USB - TX a RX router
  • Adaptador USB - RX a TX router

Conexión - CH340
Conexión - CH340



La conexión se realizo con Putty usando Windows 7:

Administrador de dispositivos

Consola de Putty
Aunque el texto no es entendible, el adaptador funciona de forma parcial, lo que he encontrado, es que se debe usar un mejor adaptador, por el momento no tengo otro.

Adaptador CH340:




Update - 2020-03-10

Se ha logrado ver la consola:

Arranque WRT54GL

Dado que no he conseguido un adaptador que funcione bien, decidi hacer un puente con un NodeMCU - esp8266, el cual usa una libreria SoftwareSerial para usar dos pinout de la placa para tener el Rx y Tx.

Puente PC-WRT54GL

Codigo usado en la prueba: adaptadorSerial.ino

#include 

SoftwareSerial softSerial(13, 15);

void setup() {
  // put your setup code here, to run once:

  // start the serial connection
  Serial.begin(115200);

  // wait for serial monitor to open
  while (! Serial);

  Serial.println();
  Serial.print("[AdpatadorSerial] ");
  Serial.print("Iniciando softSerial ");
  softSerial.begin(115200, SWSERIAL_8N1);
  Serial.println();
}

void loop() {
  // put your main code here, to run repeatedly:
  if (softSerial.available() > 0) {
    Serial.write(softSerial.read());
  }
  if (Serial.available()) {
    softSerial.write(Serial.read());
  }
}


Notas y referencias:



No hay comentarios:

Publicar un comentario