Files
TimbreESP32/docs/BACKUP.md
Angel Ivan 2a9eabce14 Fist commit
2026-10-02 12:08:21 -06:00

2.1 KiB

Copia de seguridad del ESP32

scripts/backup_device.py realiza una copia de solo lectura de las regiones críticas del ESP32. No escribe en la flash y no ejecuta erase_flash.

Copia recomendada

Cerrar el Serial Monitor y ejecutar:

cd ~/Desktop/TimbreESPv2
python3 scripts/backup_device.py --scope data

El script autodetecta el puerto USB y usa 115200 baudios, que es más seguro para cables CH340 y hubs USB.

Para incluir también la imagen completa de 4 MiB:

python3 scripts/backup_device.py --scope full

La copia completa puede fallar en algunos cables CH340. Si falla, usar la copia de datos:

python3 scripts/backup_device.py --scope data --baud 115200

Regiones guardadas

Archivo Offset Tamaño
bootloader.bin 0x01000 32 KiB
partitions.bin 0x08000 4 KiB
nvs.bin 0x09000 20 KiB
otadata.bin 0x0E000 8 KiB
littlefs.bin 0x350000 704 KiB

En el modo full también se guardan app0.bin, app1.bin y flash-full.bin.

Archivos generados

Cada copia incluye:

  • manifest.json: fecha, puerto, baudios, tamaños y hashes SHA-256;
  • partitions.csv: tabla de particiones decodificada;
  • device-info.txt: identificación del chip y flash;
  • README.txt: advertencia de restauración;
  • logs/: salida de esptool.

El directorio predeterminado es:

~/Documents/TimbreESPv2-backups/backup-YYYYMMDD-HHMMSS/

Los archivos se crean con permisos privados porque nvs.bin puede contener credenciales WiFi y autenticación.

Restauración

No hay restauración automática. Antes de escribir cualquier imagen:

  1. Comparar partitions.csv con la tabla esperada.
  2. Verificar el tamaño de flash del ESP32.
  3. Confirmar offsets y tamaños.
  4. Guardar otra copia antes de modificar la flash.
  5. No utilizar un directorio marcado con INCOMPLETE.txt.

La copia raw de LittleFS contiene el sistema de archivos completo; no son archivos individuales extraídos. Para consultar o migrar su contenido hay que montarlo en un entorno compatible o implementar una extracción posterior.