HowTo: ESP8266 - flashear archivos .bin bajo Windows con el "Esptool"

El flasheo real de archivos de firmware como archivos .bin (también llamados "binarios") en el Wemos D1 Mini, la placa de desarrollo NodeMcu o cualquier otra placa basada en el ESP8266 se realiza completamente en segundo plano en el IDE de Arduino.

Esto es en realidad el "esptool" ofrecido por Espressif - el fabricante de la ESP8266. Con los parámetros adecuados, puede transferir fácilmente archivos .bin terminados al ESP8266.

En este artículo se describe una manera simple y un poco más exigente.


Instrucciones de seguridad

Sé que las siguientes notas siempre son un poco molestas y parecen innecesarias. Desafortunadamente, muchas personas que sabían "mejor" han perdido ojos, dedos u otras cosas debido a un descuido o se lesionaron. La pérdida de datos es casi insignificante en comparación, pero incluso estos pueden ser realmente molestos. Por lo tanto, tómese cinco minutos para leer las instrucciones de seguridad. Porque incluso el proyecto más genial no vale la pena lesionarse u otros problemas.
https://www.nerdiy.de/sicherheitshinweise/

Enlaces afiliados / enlaces publicitarios

Los enlaces a las tiendas en línea enumerados aquí son los llamados enlaces de afiliados. Si hace clic en dicho enlace de afiliado y realiza una compra a través de este enlace, Nerdiy.de recibirá una comisión de la tienda en línea o el proveedor correspondiente. El precio no cambia para usted. Si realiza sus compras a través de estos enlaces, ayuda a Nerdiy.de a poder ofrecer otros proyectos útiles en el futuro. 🙂 


Requisitos

Herramienta requerida:
-No-

Material requerido:
-No-


la herramienta

La versión actual de la "esptool" mencionada siempre se puede encontrar en el GitHub del fabricante en:

https://github.com/espressif/esptool

El "problema" es que esta herramienta es un script/aplicación de Python y, por tanto, no se puede ejecutar directamente/fácilmente en Windows.

Convenientemente, los scripts de Python también pueden "empaquetarse" en un archivo .exe compacto. Esto también facilita su uso en Windows.
Cómo hacerlo está en el artículo. Python - Traducir Esptool.py a Esptool.exe descrito.
También puede acceder a versiones preparadas (un poco más antiguas) en

https://github.com/igrr/esptool-ck/releases

a la que recurrir.

Para el resto de este artículo no es necesario que organices tú mismo el esptool, sino que puedes utilizar simplemente el archivo esptool.exe del siguiente Git.


Transferir un archivo .bin existente con la esptool y el ESPEasy Flasher

Si sólo desea transferir un archivo .bin al ESP8266 "armado" con el esptool, esto significa normalmente que tiene que llamar al esptool a través de la línea de comandos y con los parámetros correspondientes.

Esto suele ser difícil, sobre todo para los usuarios menos avanzados, y además es sencillamente poco práctico.

Otros ya se han dado cuenta de ello y por eso han trabajado para que el proceso de flasheo del ESP8266 sea lo más sencillo posible.

Puede encontrar uno de estos resultados en el siguiente repositorio de Git

https://github.com/BattloXX/ESPEasyFlasher

como siempre, también hay una copia de seguridad en Nerdiy-Git:

https://github.com/Nerdiyde/ESPEasyFlasher

Además del esptool.exe mencionado anteriormente, también hay un FlashESP8266.exe en este repositorio Git. Este último funciona como una interfaz gráfica de usuario, que traduce las entradas realizadas con el ratón en parámetros y una llamada a la línea de comandos. Lo que esto significa exactamente se explica en el siguiente párrafo. El camino fácil empieza justo aquí 🙂 .

En el repositorio Git mencionado puede ver los archivos que contiene.
Para iniciar la descarga de los archivos haz clic en el botón "Clonar o descargar" y...
... y luego haz clic en "Descargar ZIP". También puedes encontrar más información sobre cómo descargar archivos de un repositorio Git en el artículo GitHub - ¿Cómo copio archivos de un repositorio de Git a mi computadora?
Una vez descargado el archivo ZIP, primero debe descomprimirlo. Encontrará información al respecto en el artículo ¿WinRar? ¿WinZip? ¿WinWhat? - Cariño he reducido los archivos. Debería poder ver el contenido de la carpeta descomprimida.
Ahora ya tienes preparados todos los archivos de programa necesarios para el flasheo. Lo que aún necesita es el archivo .bin que desea transferir a su ESPE. Puedes obtenerlo - como se muestra en la imagen - por ejemplo de la carpeta "bin" del ESPEasy-Git. Tanto allí como en el Git de Tasmota, se preparan y ofrecen "binarios" (como se llaman los archivos .bin) totalmente compilados. Sin embargo, como estos binarios siempre se compilan específicamente para un tipo de controlador con el tamaño de memoria y la configuración correspondientes, es importante seleccionar el archivo correcto. Para un Wemos D1-Mini, por ejemplo, puede seleccionar el archivo "ESP_Easy_mega-20190803_custom_ESP8266_4M.bin". No se confunda por el hecho de que la secuencia de números entre "ESP_Easy_mega-" y "_custom_ESP8266_4M.bin" cambia en las versiones más recientes. Esta parte corresponde a la fecha de creación del binario. Ahora copia el binario seleccionado y pégalo en el...
...el mismo directorio en el que se encuentra el archivo .exe del ESPEasy flasher. Se trata, por tanto, del directorio en el que previamente ha desempaquetado los archivos de programa del esptool y co.
Ahora puede iniciar el ESPEasy Flasher ejecutando el archivo FlashESP8266.exe.
El programa que se abre ahora es muy sencillo. Puede seleccionar el puerto COM al que ha conectado su ESP. Además ...
...puede seleccionar el archivo binario que desea transferir a su ESP en el menú de selección que aparece a continuación. Aquí se enumeran todos los binarios que se encuentran en la misma carpeta que el programa FlashESP8266.exe. Por lo tanto, también encontrará el binario que haya copiado previamente de la carpeta "bin" a la carpeta del programa descomprimido.

Ahora sólo tienes que hacer clic en el botón "Flash" y el binario seleccionado se transferirá a tu ESP.

Nota importante: La lista de puertos COM disponibles sólo se actualiza cuando se reinicia la aplicación. Por lo tanto, si ha conectado su ESP mientras el programa ya estaba en marcha, tendrá que cerrarlo de nuevo y volver a abrirlo.


Llame a Esptool a través de la línea de comandos

Como se ha mencionado, también puede utilizar la esptool directamente para transferir un binario existente a su ESP.

Para ello, utilice la línea de comandos para llamar al esptool con los parámetros especificados de la siguiente manera:

esptool.exe -vv -cd nodemcu -cb 921600 -cp COM32 -ca 0x00000 -cf C:ESPEasy.ino.bin
  • El número "921600" corresponde a la velocidad en baudios con la que está programado su ESP. Esto puede variar de un modelo a otro. Las velocidades en baudios típicas son "9600", "115200" o "921600". Si una velocidad en baudios no funciona, puede simplemente probar con otra.
  • La parte "COM32" corresponde al puerto COM bajo el cual se puede acceder a su ESP conectado.
  • "0x00000" corresponde a la zona de memoria desde la que se escribirá el binario en la memoria ESP. Normalmente no se debe cambiar este valor.
  • Ahora la parte "C:ESPEasy.ino.bin" es importante. Aquí debe especificarse la ruta a su binario. Si ha copiado su binario en la unidad C: y lo ha llamado "ESPEasy.ino.bin", este valor puede permanecer tal cual.

Para más información:

https://github.com/arendst/Sonoff-Tasmota/wiki/Esptool


Diviértete con el proyecto.

Espero que todo te haya funcionado como se describe. Si no es así, o si tiene alguna pregunta o sugerencia, hágamelo saber en los comentarios. Si es necesario, lo añadiré al artículo.
Las ideas para nuevos proyectos siempre son bienvenidas. 🙂

PS Muchos de estos proyectos, especialmente los proyectos de hardware, cuestan mucho tiempo y dinero. Por supuesto que hago esto porque lo disfruto, pero si crees que es genial que comparta la información contigo, me encantaría hacer una pequeña donación al fondo del café. 🙂

Cómprame un café en ko-fi.com       

10s comentarios

    1. Hola Hans Joaquín,
      me puedes dar mas informacion al respecto 🙂 ¿Puedes, por ejemplo, verificar si el controlador para el convertidor de USB a serie está instalado? ¿Qué placa tienes?
      El CH340G está instalado en muchas placas. Desafortunadamente, no hay un controlador estándar preinstalado para esto en Windows. Si tiene un dispositivo en el administrador de dispositivos al que no se le puede asignar un controlador, pruebe con el controlador para el CH340G. 🙂

  1. Hola a todos,
    muy buenas instrucciones, solo reconstruya el reloj tragamonedas,
    Desafortunadamente, como se describe aquí, no puedo encontrar el "ESP_Easy_mega-20190803_custom_ESP8266_4M.bin" en ningún lado.
    Descargué ESPEasy git pero no puedo encontrar este archivo .bin.
    Alguien es capaz de ayudarme ?

    gracias de antemano

  2. Hola Fab,

    sitio genial y proyectos aún más geniales! Estoy aquí por primera vez... 🙂

    He estado trabajando con ESPeasy durante un tiempo, así que conozco los plugins estándar. Ahora me gustaría implementar su "HowTo: pxlBlck - pxlBlck_8x8".
    Sin embargo, durante la actualización OTA del firmware con "ESP8266_ESPEasy_incl_pxlBlck_4M.bin" salió algo como "Magic Bit is missing" y cuando lo hago vía USB con el ESPeasy Flasher oficial, no emite AP WLAN después. Me podeis decir donde esta el error?

    Saludos Franz

    Proyectos de embarcaciones abiertas. organización

    1. Hola Franz,
      Gracias y bienvenida. 🙂
      Lo más probable es que la actualización del firmware vía OTA no funcione porque el archivo bin con el plugin pxlBlck es demasiado grande para la mayoría de las "particiones estándar". Tengo que admitir que aún no he probado o utilizado la instalación vía OTA y por lo tanto no puedo decir mucho al respecto, lo siento. :/ Tendré que echar un vistazo más de cerca.
      ¿ESPEasy arranca correctamente si lo instalas con ESPEasy Flasher? Entonces, ¿ves una salida en la consola serial?
      Si es así, podría intentar configurar los datos de acceso Wifi a través de la interfaz serie. Lo he descrito (algo compacto) aquí: https://nerdiy.de/howto-espeasy-firmware-flashen/#WLAN-Zugangsdaten_ueber_die_serielle_Schnittstelle_konfigurieren
      Si no, házmelo saber e intentaré reproducirlo. 🙂
      Atentamente
      Fabian

Kommentar hinterlassen

Tu dirección de correo electrónico no será publicada. Erforderliche Felder sind mit * markiert

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.