ESP8266 flasher firmware


ESP8266 flasher firmware permite cambiar el programa que ejecuta los comandos del módulo, actualizarlos o repararlo, con unos simples pasos y esp8266_flasher lo puede hacer

oscar Escrito por oscar 04 September 2022 18896 1

Acerca del proyecto

En un post pasado vimos como realizar la conexión de esp8266 usado como intermediario la placa del arduino sin el controlador, con esto podemos conectarnos directamente por el terminal serial al controlador del esp8266 y usar los comandos AT, ahora en este post vamos a realizar el flasheo o carga de software a la memoria, veremos la conexión y su principal uso, ademas de usar uno de los programas que esta diseñado para tal fin.

Conocimiento previo

Para realizar este proyecto se requiere conocimiento previo de los siguientes temas, si aun no has trabajado con lo que se menciona en la siguiente tabla, allí están los links a los post para que puedas dar un repaso adicional o puedas recordar el conocimiento necesario para poder realizar este proyecto.

Proyecto Descripción
Conectar ESP8266 En este post aprenderás a realizar la primera conexión del esp8266, el modulo wifi económico y compacto del mercado. Los objetivos son conocer el modulo, sus características y como realizar la conexión por medio del puerto serial. Para este ejercicio nos ayudaremos de la placa arduino pero sin el microcontrolador mas adelante les explicare como, aunque si tiene un modulo usb serial sera de gran utilidad.
ESP8266 datasheet En este post encontraras la hoja de datos del ESP8266.
flasher esp8266 En este link encontrará el repositorio del flash para el esp8266.

Firmware ESP8266

Una de las razones para cargar el firmware es poder actualizar el programa a la ultima versión, repararlo o corregir defectos que pueda presentar la versión que esta de fabrica, en mi caso como se va a trabajar con la librería PubSubClient, necesita una versión especifica para poder funcionar, esa es la razón que necesite realizar la carga de dicho programa.

Hay que tener en cuenta que si no necesita realizar el cambio de versión del firmware y el ESP8266 se encuentra funcionando correctamente, no es necesario realizar esta este proceso.

Modos de arranque ESP

En la siguiente tabla se describe los modos de arranque y de como se debe realizar la conexión de los pines para poder iniciar en cada uno de los modos. Nota: H es high o alto, L es LOW y X no se conecta a nada.[1]

MTDO GPIO0 GPIO2 Modo Descripción
L L H UART Descargar código de UART
L H H Flash Arranque desde SPI Flash
H X X SDIO Arrancar desde tarjeta SD

esp8266_flasher.exe

Existe varios programas para poder escribir en la memoria flash del ESP, en este caso por facilidad vamos a usar esp8266_flasher, ya que es el mas básico y fácil de usar. Para este proyecto no requerimos de funcionalidades adicionales.

Lo pueden encontrar en el siguiente link de descarga.

Materiales

Es importante aclarar que la conexión que estamos realizando con el ESP8266 es por medio de la comunicación UART, así que necesitamos un adaptador USB-Serial, en mi caso estoy usando una placa de arduino a la cual le retire el chip para mayor practicad.

Material Cantidad Descripción
Conector USB-Serial 1 Necesitamos un conector usb serial, en mi caso usare el la placa arduino sin el chip
ESP8266-01 1 Para esta practica estamos usando la versión 1 del ESP
Cables de conexión 6 Cables para la conexión de la placa o modulo usb-serial al esp8266

Pasos para actualizar firmware

Conexión inicial

Primero vamos a realizar la conexión básica que necesitamos para ejecutar los comandos AT en el módulo ESP8266 que la podemos encontrar en el post de Conectar ESP8266 ESP-01 o nos podemos guiar con la siguiente imagen:

Conexión esp8266
Conexión esp8266

A continuación tenemos una tabla donde nos podemos guiar para realizar la conexión, en esta conexión estamos utilizando la placa de arduino sin el chip para poder utilizar el módulo USB-serial, pero si tienen uno de estos módulos USB-serial también les puede funcionar, yo lo hago de esta forma ya que en estos momentos no poseo ese módulo.

Pin ESP8266 Pin Arduino sin el chip
GND GND
RX RX
TX TX
CH_PD VCC 3V
VCC VCC 3V

Ejecutar comandos AT

Para verificar el funcionamiento de la tarjeta y realizar la carga del del firmware vamos a requerir una terminal serial para poder enviar los comandos AT, para ello vamos a utilizar el entorno de arduino que posee una terminal serial la cual sirve para este propósito sin tener que instalar un programa de adicional. Iniciamos nuestro entorno de arduino y buscamos la terminal serial dónde vamos hacer la siguiente configuración:

Conexión esp8266 terminal serial
Conexión esp8266 terminal serial

Si el módulo es nuevo la configuración de los baudios por defecto es 115200, esa configuración la dejamos en el selector de baudios para que podamos ejecutar en la terminal los comandos AT, momento de teclear estas letras y darle enter no sale el OK como se ve en la imagen y salen caracteres especiales debemos buscar la velocidad en la que se encuentra el módulo para ello vamos a seleccionar en cada uno de los baudios y ejecutar el comando AT hasta que en la terminal salga el OK correctamente, esto nos indicará que ya podemos ingresar los comandos AT el módulo, los interpretará y nos dará la respuesta que esperamos.

Verificar versión sdk y firmware

EL comando AT+GMR nos devolverá la versión del sdk y del firmware, como podemos observar en el siguiente código:

AT+GMR

AT version:0.21.0.0
SDK version:0.9.5

OK

Ahora vamos a interpretar y analizar lo que nos está devolviendo este comando, primero nos está indicando la versión del sdk que posee el módulo en este caso es la 0.9.5, algunos proyectos que trabajamos en este blog requiere que tenga la versión 1.1.2; así que aquí pueden pasar dos cosas, si están empezando con el módulo y no necesitan trabajar con lo que es mqtt pueden dejar la versión que tienen. Pero si necesitan trabajar con conexiones mqtt, http, entre otras deberán actualizar al módulo para que contenga la versión 1.0.0 en adelante para que puedan tener todas las instrucciones AT y sacarle todo el potencial que necesita el módulo, para ello Vamos a continuar con los pasos que hay en este post.

Conexión para flash

En el post de como conectar esp8266, realizamos la conexión básica para poder hacer la comunicacion serial, usamos como intermediario la placa arduino sin el controlador, pero es ideal trabajar un adaptador USB-serial, lo que vamos a hacer es conectar los pines GPIO1 y GPIO2 como nos indica la tabla de modos de arranque ESP para descargar el firmware por medio de UART, para ello realizamos la conexión adicional como se muestra en las siguientes imagenes.

ESP8266 firmware flashing breadboard
ESP8266 firmware flashing breadboard
ESP8266 firmware flashing schem
ESP8266 firmware flashing schem
ESP8266 firmware flashing foto
ESP8266 firmware flashing foto

Iniciar con esp8266_flasher

Antes de iniciar con el flasher, vamos a comprobar la comunicación del ESP8266 al el pc por medio de ta terminal serial. Hasta este punto debe estar la conexión con un modulo USB-serial.

Para no complicarnos tanto, usaremos la terminal que ya incorpora el programa de arduino, el cual vemos en la siguiente imagen al colocar varios comandos AT, nos retorna la información solicitada.

ESP8266 firmware flashing test
ESP8266 firmware flashing test

Luego iniciamos el programa esp8266_flasher el cual nos va a pedir la ubicación del Firmware ESP8266 y el puerto con el que nos estamos comunicando, observemos las siguientes imágenes.

Para cargar el Firmware correcto en el siguiente link donde tenemos el flaher, están dos archivos Firmware que he encontrado, uno es la versión 0.9 y la otra es la 1.1:

  • SDKFirmwareESP8266/SDKv0.9.5.2-AT-Firmware.bin
  • SDKFirmwareESP8266/SDKv1.1.2-AT-Firmware.bin

Si vamos a trabajar con mqtt y las librerías de conexión con arduino, debemos cargar la versión 1.1.2.

esp8266_flasher
esp8266_flasher
esp8266_flasher descarga del firmware
esp8266_flasher descarga del firmware

Al finalizar si enviamos el comando AT+GMR como prueba nos deberá mostrar la versión que acabamos de cargar.

AT+GMR

AT version:0.25.0.0(Jun 12 2015 20:26:28)
SDK version:1.1.2
compile time:Jun 17 2015 22:11:51

OK

Podemos comprobar que se esta ejecutando el programa ya que nos muestra el log de la descarga del firmware a el ESP y en la conexión podemos ver los led de la comunicación serial parpadear como se muestra en la siguiente imagen.

Descarga firmware
Descarga firmware

Pruebas finales

Para finalizar, desconectamos los pines GPIO 1 y GPIO 2, y dejamos la conexion normal como se muestra en el post de conectar esp8266, con esto ya podemos empezar a trabajar con los comandos AT o realizar la conexión a la placa arduino.

Cambio velocidad transmisión en el ESP

Para establecer una buena comunicación entre el arduino y el modulo ESP8266-01 es recomendado que la velocidad de comunicación este a 9600 baudios, así que en el modulo ESP debe estar configurado vía comandos AT esta velocidad, si necesita cambiar la velocidad el comando AT es el siguiente:

AT+UART_DEF=9600,8,1,0,0

Referencias

[1] github esp8266 https://github.com/esp8266/esp8266-wiki/wiki/Boot-Process, Consultado noviembre 2019


Comentario

Debe aceptar antes de enviar
marcelo.chiesa
marcelo.chiesa

06 July 2021 23:11

Hola, donde puedo encontrar las ultimas versiones de la firmware? (no solo SDK). Pareciera que yo tengo instalada una version mas nueva que la que Ud. ofrece aqui (quizas porque este articulo ya tenga unos años). Me gustaria saber igualmente ya que tengo exactamente el mismo problema que se describe en el siguiente enlace y parece que lo arreglaron con una firmware de otro fabricante: https://forum.arduino.cc/t/esp8266-01-failed-connecting-to-ap-using-arduino-sketch/626774/8 Gracias, saludos.