HOW TO… Actualizando firmware ESP8266

Existen diversas formas de actualizar el firmware, por mencionar: placa Arduino, red WiFi y dispositivo convertidor USB RS232 a TTL serial. Se tomará la última referencia como método de actualización de firmware (esto no quiere decir que sea la mejor, sólo que se me hizo más cómoda puesto que tenía el dispositivo necesario). Algunos convertidores trabajan una lógica de 5volts y otros incluyen la lógica a 3.3volts.

converdidor_usb_ttl_rs232_pl_2303hx_01

 Convertidor USB a TTL Serial

El ESP8266 tiene dos grandes consumos de energía: cuando arranca y cuando está operando en la infraestructura estación/AP simultáneamente. El convertidor típico como el mostrado en la figura de arriba suministra la corriente necesaria o mínima, por lo que puedes aventarte a usar el convertidor como fuente de energía para el módulo espi o puedes usar una fuente externa. Yo he optado por una fuente de alimentación externa que proporciona la corriente suficiente, y por supuesto, uniendo las respectivas tierras de los circuitos; puedes probar usando la fuente del USB-TTLserial, pero si da mucha lata la comunicación o el arranque es demasiado lento, mejor usa una fuente externa.

Aunque los pines de transmisión/recepción de datos del módulo ESP8266 se pueden conectar a una lógica de 5volts, nunca hay que descartar realizar un divisor de tensión para el pin Rx del módulo. El circuito debería quedar unido de la siguiente forma:

usbesp8266
Conexión en modo actualización de firmware
Nota:

Ésta configuración de conexión se llama modo flash, éste modo permite cargar un nuevo firmware al chip. Para el modo de operación normal, sólo basta con desenergizar y desconectar el pin GPIO0 de la tierra.

Para comenzar se necesita tener ciertos programas:

  1. Programa grabador de firmware o flasher. Existen varias opciones, sin embargo, se usará el programa oficial proporcionado por la página web electrodragon (http://www.electrodragon.com/w/File:Flash_tool_2.4.zip) .

esp_download_tool

  1. Terminal de comunicación para puerto serie, existen muchos programas de éste tipo. Yo he usado el programa Termite de Compuphase (http://www.compuphase.com/software_termite.htm), es muy intuitivo permitiendo una comunicación serial fácil y con suficientes parámetros de configuración, también puedes usar el monitor serial del Arduino IDE.

termite

  1. Archivos tipo bin de la nueva versión de firmware que se va a instalar. El firmware original actualizado se puede encontrar en la página web espressif (http://espressif.com/en/support/download/sdks-demos), el cual proporciona las versiones disponibles del firmware, se selecciona la versión más reciente y que su estatus sea ‘release’ esto significa que la versión actual ya ha sido testeado lo suficiente y que tiene disponible documentación para descargar. Para cuando hice mi primera actualización estaba en la 1.5.2 (http://bbs.espressif.com/viewtopic.php?f=46&t=1702): una versión muy estable con la que he trabajado 6 meses. Para este HOW TO usaré esa versión y su documentación respectiva facilitado por la empresa (http://espressif.com/en/support/download/documents). Hay que descomprimir el archivo  rar y ubicarlo en un lugar fácil de localizar puesto que luego necesitaremos los archivos bin que vienen dentro de la carpeta.

4A-ESP8266__AT Instruction Set__EN_v1.5_20160201

Es indispensable descargar la guía debido a que dentro de ella se encuentra información importante sobre la actualización de la versión del firmware y los comandos AT que soporta. Una vez que se ha configurado la conexión del módulo en modo flash, se conecta el USB-TTL serial a la computadora la cual debería reconocer el dispositivo como un puerto serial COM, en mi caso lo detecta como COM12. Dependiendo del dispositivo que tengas, el puerto usb al que lo conectes y la versión del sistema operativo que uses (Linux, MAC OS, Windows…) existe un driver para que este dispositivo pueda ser reconocido por el ordenador como un puerto serie. El Convertidor USB-TTL Serial que se usa (mostrado anteriormente) no tiene problemas de instalarse en versiones XP, Vista o 7, sin embargo en Windows 8 y 10, es necesario realizar la instalación manual del driver para que Windows pueda interactuar con el dispositivo. Un procedimiento que me sirvió mucho se encuentra en la siguiente página web: https://www.youtube.com/watch?v=Jf7yg_HhMBg

Ya que el sistema operativo haya reconocido al convertidor como un puerto serie enumerado y listo para funcionar correctamente, se prosigue a abrir el programa ESP FlashDownload Tool. Para esta versión del firmware, se requiere un tamaño de flasheo de 8Mbit mínimo (y todas las versiones posteriores), se usará la opción de “16Mbit Flash, map: 512KB+512KB” descrita en la Guía de comandos AT que corresponde a la versión del firmware que se ha elegido instalar.

flsha

En ella se detalla cuales archivos se deben instalar, en qué direcciones de la memoria del ESP8266 se deben instalar y la descripción que corresponde a cada archivo. Se puede usar otros tamaños de flasheo superior a los 8 Mbits, sin embargo el que elegí no ha producido algún error notorio en las primeras pruebas realizadas, si se limita la eficiencia de este dispositivo se puede cambiar el tamaño de flasheo y realizar las pruebas.

El programa te permite buscar y seleccionar los archivos bin (los que te dije que ubicaras bien) y asignarles la dirección correspondiente donde serán cargados al ESPI. Una vez que asignados los archivos bin y sus direcciones se prosigue a indicar el flash size (16 Mbit), el puerto COM de nuestro convertidor USB-TTL serial y la velocidad de baudios. El último parámetro usualmente se consigue con una velocidad default de 115200 o versiones muy anteriores con 9600. Si aun así causa error se deberá comprobar con algún terminal serial la velocidad de baudios con la que viene precargado el módulo.

no

Una vez configurado los parametros se clickea la opción “start” y comenzará a cargarse el firmware. La velocidad con la que se realiza esta operación dependerá de muchas cosas, entre ellas la velocidad  de procesamiento de tu máquina, la velocidad de baudio, el tamaño del flasheo y la velocidad del reloj.

La terminal de comunicación serial  nos permitirá comprobar si existe una comunicación con el ESPI, y para ello haremos uso de los comandos AT. Es importante configurar las terminales serial para que su transmisión de texto incluya un Retorno de carro con Salto de línea (CR-LF), puesto que el firmware así reconoce los comandos. En la figura debajo se muestra los parámetros por default.

parametros

ERROR:

Los posibles errores que se pueden presentar al cargar el firmware son básicamente por  las siguientes causas:

  1. Mala conexión entre USB. TTL serial y ESP8266: comprueba la comunicación con una terminal de comunicación serial.
  2. Puerto COM: el driver del convertidor serial no está actualizado o no se ha instalado correctamente.
  3. Velocidad de baudios: comprueba comunicación , experimenta con diferentes velocidades de baudios.
  4. Tamaño de flasheo inadecuado.
  5. Cables de conexión.
  6. Haz descargado un firmware beta con errores.
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s