#ESP8266 Firmware Update ##SDK V0.9.4 19.12.2014 + AT v0.20
Iddar Olivares para The Inventor’s House
Gracias a nuestros amigos de rusos del sitio esp8266.ru nos enteramos que junto con la ultima version del SDK de Espressif para el ESP8266 nos encontramos un nuevo firmware AT el cual incluye como característica mas notable la posibilidad de cambiar la velocidad de transmisión de modulo serial gracias al comando AT+IPR.
Entes de poder disfrutar de esta novedad debemos flashear la nueva versión del firmware AT, en esta ocasión utilizaremos la herramienta esptool.py de Fredrik Ahlberg (@themadinventor) para poder cargar las imágenes a nuestro modulo.
###Dependencias
El primer paso es instalar las dependencias de esptool.py
Linux / Mac OS
~# pip install pyserial
Windows
Instalar python 2.7: https://www.python.org/downloads/
Instalar pySerial: https://pypi.python.org/pypi/pyserial
###Instalando ESPtool.py
Después descargamos la ultima version de esptool.py de su repositorio en GitHub: https://github.com/themadinventor/esptool/archive/master.zip
Tras descomprimir el archivo navegamos a la carpeta desde la consola y ejecutamos el archivo setup.py
~# python setup.py
Listo en este punto ya tendremos esptool.py instalado y estamos listos para proceder a grabar nuestro modulo. Podemos comprobar que esptool.py ejecutando el siguiente comando en la consola, el cual nos muestra la lista de parámetros con los que cuenta esta herramienta.
~$ esptool.py —help
Nosotros usaremos el comando write_flash al cual le podemos pasar como parámetro y en parejas la dirección de memoria de inicio y la imagen a grabar de igual forma indicaremos el puerto en el que tenemos conectado nuestro modulo.
~$ esptool.py --port /ruta/puerto write_flash 0x00000 imagen.bin
###Boot Mode
Para poder sobrescribir el firmware tenemos que iniciar el modulo en modo Boot UART para lo cual basta colocar el GPOI 0 a GND y GPIO2 a VCC, en algunos sitios recomiendan usar una resistencia para acer estas conexiones.
Recuerda que todas las señales son a 3.3v y que el pin CH_PD debe estar en alto.
###Cargando el firmware
Solo falta descargar la nueva version del firmware AT del enlace a continuación y grabarla.
Firmware AT: https://github.com/espressif/esp8266_at/archive/master.zip
Dentro del paquete encontraremos dos carpetas, a nosotros lo que nos interesa es el contenido de la carpeta bin la cual tienen los binarios listo para ser cargados al modulo, junto con un archivo readme.txt en el que nos indica a que dirección de la memoria debemos apuntar cada imagen.
Binarios Direcciones
boot_v1.1.bin ---> 0x00000
user1.bin ---> 0x01000 (ver nota )
esp_init_data_default.bin ---> 0x7C000
blank.bin ---> 0x7E000
Nota: El paquete incluye dos versiones de la imagen user1.bin puedes elegir la que prefieras se encuentran en las carpetas newest y v0.20, en este ejemplo usaremos la version newest.
Una ves dentro de la carpeta bin ejecutamos el siguiente comando:
Unix / Mac
~/bin$ esptool.py --port /ruta/puerto write_flash 0x00000 boot_v1.1.bin 0x01000 newest/user1.bin 0x7C000 esp_init_data_default.bin 0x7E000 blank.bin
Windows (Sustituir el # por el numero del puerto correcto)
~/bin$ esptool.py --port COM# write_flash 0x00000 boot_v1.1.bin 0x01000 newest/user1.bin 0x7C000 esp_init_data_default.bin 0x7E000 blank.bin
###Probando
Para verificar que todo salió bien lo primero es reiniciar el modulo y desconectar los puentes de GPIO0 y GPIO2 para iniciar de forma normal. Con ayuda de nuestro monitor de consola preferido enviaremos algunos comando para verificar que todo funciona.
Enviamos: AT+GMR
Respuesta:
00200.9.4
OK
Para cambiar la velocidad del serial vasta usar el comando AT+IPR=velocidad como ejemplo cambiemos la velocidad a 9600b AT+IPR=9600 con esto basta para que el modulo se reinicie y quede listo para ser usado con la nueva velocidad incluso tras desconectar el modulo.
