[WEMOS] Error cargando sketch

La pasada semana, intentando realizar diversas pruebas con mi Wemos D1 Mini PRO, me llevé un buen susto… Tras cargar diversas versiones de sketches que prometían cargar y leer datos en la EEPROM, me apareció un mensaje de error del tipo:

warning: espcomm_send_command: didn't receive command response
warning: espcomm_send_command(FLASH_DOWNLOAD_BEGIN) failed
closing bootloader
flush start
setting serial port timeouts to 1 ms
setting serial port timeouts to 1000 ms
flush complete
error: espcomm_upload_mem failed

Tras esto, por mucho que intentase cargar cualquier skecth, por sencillo que fuera (incluso el básico blink), me fue imposible, siempre aparece el mismo error… Por lo tanto, llegué a la conclusión de que lo había brickeado

Por suerte no fue así… pero me llevé un buen susto. Todo apuntaba a un problema de memoria o conexión serie…

Si habéis sufrido este error (el indicado mas arriba), intentad hacer lo que yo hice (ojo, sirve para cualquier ESP8266):

  1. Conectar con usb al pc (Linux o Windows)
  2. Arrancad el Arduino IDE (no uséis el Code Online!) y verificad que podéis conectaros a la placa, seleccionando modelo y puerto (el sistema debería haberlo reconocido en cuanto lo conectasteis)
  3. Abrid el monitor serie, y conectaros a 115200 bps
  4. En la pantalla del monitor debería aparecer “algo de basura” (ya sabéis, código raros)
  5. Realizad varios reset en el Wemos, y observad qué sucede en la pantalla del monitor serie, debería ir saliendo “basura”, a demás de que el led integrado irá parpadeando en cada uno de ellos…
  6. Ahora intentad bajar la velocidad de la conexión, y comprobad que todo sigue siendo igual (es probable que en algún momento veáis por pantalla algún mensaje de versión del chipset y último flasheado, por ejemplo, cosa que es normal…)

Si habéis llegado al punto 5 / 6 sin problemas, podemos decir que, al menos, la comunicación con nuestro chip con el serial del pc es correcto, y esto ya es mucho. Nuestro ESP8266 parece que no está brickeado…

Ahora, para hacer un reset de la memoria flash, que es la que se ha “degenerado”, hay que proceder de este modo.

Validar la comunicación con el sistema:

  1. Validar que la velocidad del puerto configurada en nuestro IDE (normalmente 115200) es la misma que la que el sistema suministra en el puerto al que estamos conectados
  2. Una vez validada, si había discordancia entre ambas partes, desconectad el Wemos del PC y volvedlo a conectar
  3. Probad a cargar de nuevo el scketch

Si esto no funciona, deberemos hacer un “reset” de la memoria en tiempo de carga… para esto, procederemos del siguiente modo:

Wemos D1 Min PRO pinout

Wemos D1 Min PRO pinout

  1. Desconectar la placa de la alimentación o cable USB
  2. Conectar GPIO0 (D3) a GND
  3. Conectar SS (D8) a GND
  4. Conectar el cable USB
  5. Lanzar de nuevo la carga del scketch

De este modo lo que hemos hecho ha sido hacer un reset de la EEPROM de flasheo, y renovar su contenido por la “fuerza bruta”…

Con esto, espero que os haya cargado, esta vez si, el scketch de manera satisfatoria y por fin hayáis podido “revivir” vuestro Wemos…

 

Un saludo, y suerte!

 

Jordi

 

 

Share Button

2 comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.