[Aporte] Restaurador y Programador para ESP8266 y ESP32

D@rkbytes

Moderador
Buen día.
Otro aporte más para la comunidad.
Se trata de una aplicación para restaurar los ESP8266 y los ESP32.
Aunque esto se puede hacer por comandos o desde los mismos entornos de programación, esta aplicación es un "Stand-Alone"
O sea que no se requiere tener instalado Python para sus funciones.

Esta aplicación puede hacer lo siguiente:
1.- Restaura el sistema de archivos. (Repara el Bootloader y las particiones)
2.- Borra completamente la Memoria Flash.
3.- Copia el contenido de la memoria Flash (4 Opciones)
4.- Graba el firmware de usuario.
5.- Graba el archivo volcado. (No es lo mismo que el firmware de usuario)
6.- Obtiene el identificador del chip. (No es otra cosa que la misma MAC pero sin los dos puntos ":")

ESP Restorer.jpg

En fin, la idea de este programa surgió por la necesidad de actualizar el firmware de estos dispositivos por medio de Internet.
Como usé algunas de las funciones mostradas, se me ocurrió hacer algo simple como herramienta, ya que el programa que uso para actualizar mis proyectos por Internet, es mucho más complejo.

Nota importante:
Esta aplicación únicamente funciona en sistemas Windows x64

Espero que sea de utilidad.
 

Adjuntos

  • ESP Restorer.rar
    6.1 MB · Visitas: 14
Tengo la siguiente advertencia por parte del Windows al tratar de descomprimirlo y ejecutarlo.

Capt.JPG

Ya me había tirado Crome una advertencia al descargarlo y querer guardarlo.

Supongo que es alguna advertencia por haber reconocido una fracción del código con similitudes a algún código básico de algún virus.

Me interesaría saber si a alguien le paso lo mismo.

Uso este W10 de 64bit

wi.JPG
 

D@rkbytes

Moderador
Subo una actualización.
1.- Se mejoró la velocidad de grabado y copia.
2.- Ahora se autodetecta la capacidad de la memoria flash durante la grabación.
3.- Se incluyó mostrar información del dispositivo.

Otro dato: También puede trabajar con los ESP12/E, ya que son chips ESP8266EX
Así que para estos dispositivos solo basta seleccionar ESP8266
 

Adjuntos

  • ESP Restorer.rar
    6.1 MB · Visitas: 8
Esta versión ya W10 no da ninguna advertencia, si el Chrome.

En lo personal, solo tengo ESP01 y ESP32 para hacer pruebas, este ultimo, perfecto, lectura/descarga, info, etc. y en el ESP01, da error de comunicación como si no estuviera colocado en modo boot/programación.
Ca.JPG

Algo que observo es que la información en ventana y al no tener la posibilidad de redimensionarlo, es un poco "chica" para lo que estoy acostumbrado pero es algo que viene con los años, nada mas. :)
Ca2.jpg

Posiblemente si usara como resolución de pantalla 800x600 o 1280x800 estaría bien pero es lo que noto a 1920x1080.
 
Última edición:

D@rkbytes

Moderador
En lo personal, solo tengo ESP01 y ESP32 para hacer pruebas, este ultimo, perfecto, lectura/descarga, info, etc. y en el ESP01, da error de comunicación como si no estuviera colocado en modo boot/programación.
¿No es de los que se entra en modo de programación por medio de un pulsador?
Algo que observo es que la información en ventana y al no tener la posibilidad de redimensionarlo, es un poco "chica" para lo que estoy acostumbrado pero es algo que viene con los años, nada mas. :)
Adjunto la aplicación con la característica de poder ser redimensionada.
 

Adjuntos

  • ESP Restorer.rar
    6.1 MB · Visitas: 5
Ahora es otra cosa!!
ca3.JPG

Lee/reconoce el ESP01 perfectamente y escala perfectamente la pantalla.

Este ESP01, lo coloco en una de esas bases(genéricas) con el chip CH340 para adaptar USB a RS232. Vienen con el zócalo del ESP01 a la cual le puse una llave provisoria( para siempre) por el lado de "abajo" del PCB.

Esto sirve para colocar el ESP en modo boot o no y hacer un programador/cargador de FW.
Pro.jpg
ESP_Pro.jpg
 

D@rkbytes

Moderador
Actualización 1.3

Agregué algunas opciones:
1.- (ESP32) La restauración ahora no afecta al programa de usuario. (Únicamente restaura errores del Bootloader y las particiones, dejando el programa de usuario intacto)
Esto nos da la idea de que, si el programa se vuelve a ejecutar normalmente, el error estaba en el Bootloader o en el bloque de las particiones, que es muy infrecuente.

2.- (ESP32) Se incluye definir el tipo de compilador para el cual será restaurado el chip.
Esto es porque no es lo mismo compilar en Arduino que en B4R u otro entorno.
Cada entorno crea un archivo para el Bootloader, por lo que distan de ser compatibles.

3.- Se agrega poder crear un archivo .bin a partir de un archivo .elf
El archivo binario creado a partir de un .elf (Archivo vinculable con información para depuración) siempre será creado como un archivo .bin creado por ESPTool de Phyton.
Así que la restauración deberá ser realizada para Arduino si se quiere programar el archivo . bin generado.

4.- Mostrar información del archivo binario (Imagen)
Esto nos muestra información sobre el archivo .bin compilado.
Es muy útil para saber el punto de entrada (Entry Point), los segmentos, el tamaño de memoria para el cual fue creado,
la frecuencia del chip, el modo de programación, (DIO, DOUT, QIO y QOUT), entre otras cosas más, incluyendo el hash de validación.

5.- (ESP32) Unir archivos.
Esto es muy interesante, pues nos crea un archivo único a partir de los elementales.
Con esta función podemos crear un archivo que ya incluye los offsets en donde serán grabados los programas.
Nos sirve para que una vez compilado nuestro programa, podamos generar un archivo único y grabarlo.
Con esto nos olvidamos del entorno de programación y podemos grabar en menor tiempo varios chips.
Una vez generado el archivo único, solo basta grabarlo al chip con la opción "Grabar Volcado"
Un volcado puede ser muy grande, hasta 4 MB o más si se ha cambiado la memoria SPI Flash.
En cambio, un archivo único que incluye el Bootloader, la información de particiones y el programa ejecutable,
solo contiene la información necesaria de los offsets de locación, sin bytes de sobra que serán 0xFF innecesarios.

Ejemplo básico de los archivos necesarios para crear un archivo boot único:
Merged Binary Files.jpg
En este proceso, al menos dos archivos pueden ser unidos, no importa el orden.
Lo que sí es muy importante, son las locaciones de alojamiento.
Este programa pone por defecto las recomendadas por el fabricante y pueden modificarse si se requiere.

Bueno, esto va así por ahora y tal vez pronto me anime a mostrarles cómo generar claves de protección y encriptación para nuestros chips.
Como se podrán dar cuenta, con esta aplicación se pueden crear clones.
Así que sean inteligentes y protejan sus programas basándose en el Identificador. (Chip_ID), pero eso ya es otra historia. :cool:
 

Adjuntos

  • ESP Restorer v1.3.rar
    6.1 MB · Visitas: 10

D@rkbytes

Moderador
Actualización v1.4

Básicamente solo se corrigió el congelamiento aleatorio durante los procesos.

El problema era que tenía un error al pasar un puntero a un objeto usando la API CopyMemory.
Ahora los procesos se ejecutan si presentar este inconveniente que, en ciertas ocasiones no permitía ver el proceso hasta que este terminara, lo cual daba la impresión de que el programa se colgaba.

Por cierto, también le agregué una barra de progreso.
 

Adjuntos

  • ESP Restorer v1.4.rar
    6.1 MB · Visitas: 9
Arriba