AT Firmware, es una firmware creado por Espressive, para ESP8266 y ESP32 que permite comunicarte con estos microcontroladores mediante de comandos AT. Para cargar AT Firmware 2.1 en nuestro ESP8266 deberemos realizar los siguientes pasos:
Proceso de instalación de AT Firmware
- Para empezar deberemos asegurarnos que tenemos instalado Python (con una versión superior a la 3.7). En caso contrario, puedes descargarlo en https://www.python.org/downloads/
- El siguiente paso es descargarnos un repositorio de Git que contiene el programa para poder instalar el AT Firmware 2.1: https://github.com/espressif/esptool
- Mirror:
- Mirror:
- Creamos una carpeta en la unidad C: del Ordenador que será donde guardaremos y descomprimiremos los archivos que usaremos. En nuestro caso la carpeta se llama “ESP8266_ATFirmware”. Descomprimimos el fichero .ZIP que hemos descargado dentro de la carpeta que acabamos de crear (C:\ESP8266_ATFirmware\esptool-master).
- Abrimos una consola CMD y accedemos a la carpeta que hemos descomprimido con el siguiente comando:
cd C:\ESP8266_ATFirmware\esptool-master
- Una vez dentro del directorio, ejecutamos el archivo de instalación de esptool, tal y como describe al documentación del GIT con el comando:
pip install esptool
- Después de ejecutar la instalación debería quedar algo así:
- Con la aplicación instalada el siguiente paso es descargar un ZIP que esta en el GIT que contiene todos los binarios del firmware Espressive AT Firmware 2.1.
- Mirror:
- Mirror:
ACTUALIZACIÓN: ya esta disponible la versión AT Firmware 2.2 descargable aquí (Mirror:
)
- Una vez descargados, descomprimimos el ZIP con los binarios en la carpeta que hemos creado anteriormente (C:\ESP8266_ATFirmware\).
- Antes de conectar nuestra placa, como estamos utilizando una versión de ATfirmware superior o igual a la 2.1 deberemos acceder a un archivo de la librería WiFiEspAT que esta localizado en la siguiente dirección:(/Documents/Arduino/libraries/WiFiEspAT/src/utility/EspAtDrvTypes.h). Y tal i como podemos ver en la documentación de la librería hay una linea del código que deberemos comentar (//#define WIFIESPAT1). Lo podréis ver en la siguiente captura.
- Conectamos nuestra placa ESP8266 al Ordenador, en nuestro caso estamos utilizando un D1 mini así que se pondrá en modo de subida de firmware ella sola cuando se le pida, en el caso de usar otros modelos de placas ESP8266 es posible que se tengan que realizar pasos adicionales.
- Abrimos CMD nuevamente y accedemos a la carpeta que acabamos de descomprimir (C:\ESP8266_ATFirmware/ESP8266-1MB-tx1rx3-AT_V2.1). Para acceder, utilizaremos el siguiente comando:
cd C:\ESP8266_ATFirmware\ESP8266-1MB-tx1rx3-AT_V2.1
- Para cargarle el firmware a nuestro ESP8266 ejecutamos el siguiente comando:
esptool.py write_flash @download.config
- Tras escribir el comando, empieza la compilación y subida de AT Firmware 2.1 a nuestro ESP8266. Esptool.py reconoce automáticamente los puertos COM del ordenador y tratara de subirlo en el primero que detecte. Si el primer COM es nuestro ESP8266 subirá y finalizará la tarea ejecutada, en caso de no ser nuestro ESP8266, tras un rato, dejará de intentar subir el código y pasará a intentarlo en el siguiente COM. Si nuestro ESP8266 no inicia el modo de subida de firmware automáticamente, deberemos activarlo mientras Esptool.py esta tratando de conectar con el microcontrolador. Debería quedar algo así…
NOTA: El programa ira buscando el ESP8266 en todos los puertos COM del Ordenador así que como menos cosas conectadas al Ordenador se tengan, mejor y mas rápido será el proceso.
- Si se ha completado la instalación y podemos ver unos mensajes parecidos a los de estas capturas, tu ESP8266 estará funcionando con AT Firmware 2.1. Para hacer una comprobación nosotros hemos usado un ejemplo de la librería llamada WiFiEspAT, se puede encontrar y instalar desde el administrador de librerías del propio Arduino IDE, y con esta librería viene un ejemplo que se llama CheckFirmware. Para ello deberemos conectar nuestro ESP8266 a un Arduino, subir el CheckFirmware en el Arduino y abrir la consola de comandos para ver si se establece correctamente la comunicación entre ambos.
ATENCION: Si estás utilizando un microcontrolador que no tenga puerto Serial1 Nativo y requiera de la virtualización de este con el SoftwareSerial (Ejemplo: Arduino Uno) Será necesario cambiar el Baudrate predeterminado del ESP8266 de 115200 a 9600. Dejo aquí un enlace a la explicación de como hacer las conexiones con los diferentes tipos de microcontrolador.
Fuentes:
https://github.com/espressif/esptool
https://github.com/jandrassy/WiFiEspAT