Acerca del proyecto
En este post vamos a aprender a flashear esp8266 utilizando el software que proporciona la empresa desarrolladora de este módulo la cual es espressif y vamos a descargar el último firmware para tener el último set instrucciones AT y la última versión del SDK.
Veremos la forma de la conexión que vamos a utilizar con el esp8266 hacia la placa arduino para aprovechar el módulo serial USB y el paso a paso de como cargar en nuevo firmware al ESP.
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 |
---|---|
ESP8266 ESP-01 | Este es un resumen del datasheet del modulo esp8266, básicamente explica su funcionalidad, las características y la información de los pines, ademas de el orden de conexión de los módulos. |
Conectar ESP8266 ESP-01 | En este post te explicamos como conectamos el modulo esp8266 a la placa arduino para aprovechar el módulo USB serial. |
Download flash tool | Link para descargar el programa de flasheo para el esp8266. |
ESP8266 NonOS AT Bin | Link de los binarios sdk y at para la esp8266. |
Conexión del esp8266
Para realizar la conexión al computador necesitamos de un adaptador o modulo usb serial, el cual nos permitirá realizar la comunicación, en este caso como no cuento con un modulo usare la placa arduino que incorpora un modulo usb serial para realizar dicha conexión, pero a la placa le retiramos el circuito integrado como se muestra en la siguiente imagen, esto se hacer para no tener conflicto con el UART del ATMEGA, así, solo usaremos el esp8266 y la el modulo usb serial de la placa arduino.
Ahora realizaremos la conexión, básicamente necesitamos conectar los pines seriales del modulo que estemos usando con la comunicación serial del esp8266, en arduino se realiza la conexión de TX a TX y de RX a RX directamente, para los módulos usb serial se realiza de modo cruzado RX TX y viceversa, veamos la siguiente imagen de conexión con arduino.
Pin ESP8266 | Pin Arduino sin el chip |
---|---|
GND | GND |
RX | RX |
TX | TX |
CH_PD | VCC 3V |
VCC | VCC 3V |
Prueba conexión
Una vez que todo este conectado vamos a realizar las primeras pruebas de funcionalidad, cabe aclara que en este post no explicare a detalle los comandos AT, pero vamos a ver los que nos pueden ayudar para verifica que se realizo la conexión correctamente y el modulo se encuentra funcionando.
Para usar los puertos seriales COM si esta trabajando con Windows nos podemos ayudar de cualquier programa que tenga la capacidad de poder trabajar con ellos como PuTTY o en este caso usaremos la terminal de pruebas que incorpora arduino, lo que necesitamos hacer es abrir el programa, conectar la placa al pc y seleccionar el puerto serial con el que se conecto la placa arduino.
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 |
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 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.
Programa de flasheo de Espressif
El sitio oficial del esp8266 es espressif, allí encontrara la documentación, ejecutables, manuales y lo que necesitamos para este post, el firmware en su ultima versión a continuación vamos a mostrar la ubicación de cada descargable, ejecutar el programa que actualiza la esp.[2]
Descargar programa flash de espressif
Para descargar el programa de flasheo nos dirigimos en el menú y damos en support en el submenú que aparece vamos a seleccionar tools y allí nos aparecen todos los descargables que tiene esta página, en el filtro lateral izquierdo vamos a seleccionar el esp8266 y como podemos observar en la siguiente imagen vamos a descargar el ejecutable que estamos seleccionando allí, que es el flash Download Tools:
Descargar firmware AT
En la misma página vamos a encontrar la última versión del firmware qué le vamos a instalar esp8266, este descargable contiene la última versión del sdk y de los comandos AT necesarios para trabajar con el módulo, buscamos en el menú support en el submenú AT e igual que en el anterior vamos a filtrar para el sp28266 y Aquí vamos a hacer lo siguiente vamos a descargar la última versión pero que no sea la latext, ya que ésta puede contener algunos errores mientras que se termina de probar y verificar
Extraer archivos
Una vez que tengamos las descargas procederemos a descomprimir los archivos en una ubicación que podemos encontrar fácilmente, en este caso e creado una carpeta llamada code en mi disco local pero ustedes pueden utilizar cualquier ubicación.
Iniciar flash Download Tools
Ahora vamos a entrar a la carpeta del flash Download tool y vamos a ejecutar el único .exe que se encuentra allí, esto nos abrirá una terminal de comandos, esta no la vamos a cerrar y abrirá la primera pantalla donde nos pedirá seleccionar el modo de trabajo, para este caso vamos a trabajar con el modo de developer, luego nos abrirá una segunda pantalla donde pedirá seleccionar la placa con la que vamos a trabajar que en este caso es el esp8266.
Una vez que realizamos los pasos anteriores nos mostrará la interfaz gráfica donde vamos a seleccionar los archivos que son los binarios que vamos a cargar en la placa, esta interfaz tiene las siguientes características como mostrando en la siguiente imagen:
Pero antes de empezar a trabajar primero tenemos que ubicarnos en la siguiente ruta ESP8266_NonOS_AT_Bin_V1.7.4 > bin > at y abrir el archivo README.md para tener referencia de cómo es la carga de los binarios y que dirección de memoria debemos utilizar para cada uno de ellos, aunque se los dejo en el siguiente apartado con la configuración:
Selector de .bin colocamos estos, con la dirección de memoria
- boot_v1.2+.bin: 0x00000
- user1.1024.new.2.bin: 0x01000
- esp_init_data_default.bin: 0xfc000
- blank.bin: 0x7e000 & 0xfe000
- Frecuencia del cristal: 26M
- Velocidad del módulo: 40MHz
- Modo del spi: qio
- flash size: 8Mbits
- Puerto con que esta conectado: COMXXXX
- Baudios: 115200
Con esta configuración lista procedemos a dar inicio a la carga de los binarios a la ESP8266 damos en start y se debe observar en la barra inferior que va aumentando de color el proceso de la carga,en la terminal de comandos también va a salir un mensaje diciendo que se está cargando el binario y cuando finalice nos va a decir que ya se terminó de cargar completamente con un mensaje:
Prueba de la versión
Para verificar que haya quedado la versión cargada completamente sin errores volvemos a realizar la conexión del SPD 8266 para introducir los comandos at o cómo se muestra en la primera conexión de este post allí vamos a ejecutar la siguiente instrucción at
Esta instrucciones deberá Mostrar la última versión de comandos AT que hemos cargado que en este caso es la 1.7.4.0 y la versión del sdk qué es 3.0.4 con esto ya hemos actualizado el sf 28266 para poder trabajar con los últimos comandos
Combinar archivos
Por último vamos a trabajar con la última funcionalidad que nos ofrece esta herramienta y es la combinación de los binarios para generar un solo archivo y este poderlo cargar con esp8266 flasher, para yo volvemos a dejar toda la configuración como la hemos creado al momento de hacer la carga del binario, verificamos que todos los cheques del selector de archivos estén seleccionados y damos en el botón combinar bin (CombineBin), esto nos generará en la siguiente ruta el siguiente archivo el cual podemos nombrar con la última versión del sdk in de las instrucciones AT.
Referencias
[1] github esp8266 https://github.com/esp8266/esp8266-wiki/wiki/Boot-Process, Consultado noviembre 2019
[2] espressif https://www.espressif.com/en, Consultado noviembre 2020
Comentario
29 January 2023 18:55
Hola buenas tardes, saludos para todos gracias por tomarse el tiempo de este gran tutorial, les tengo una pregunta, yo he realizado este tutorial y otros y la verdad sin exito aun solamente logro controlar 1 solo led de mi esp 01, ustedes lo han hecho con varios esp 01?, lo han conseguido cargar con exito, espero pudieran ser una guia y ayudarme en algo.
agradezco su atención.