Come effettuare il backup del firmware originale

In questa breve e semplificata guida è spiegato come effettuare il backup del firmware originale dei vostri devices.

Occorrente

 

Convertitore seriale USB -- https://amzn.to/2YzHJ03

Cavetti jumper Dupont -- https://amzn.to/2YyBObv

 

 

 

Collegamento al lettore 

Il collegamento al lettore varia da dispositivo a dispositivo. In ogi caso può essere utile il seguente schema che si adatta in tutti i casi (tranne alcune eccezioni che richiedono, ad esempio, il collegamento supplementare di VCC su CH_PD, ovvero l'ESP-01).

 

Backup firmware

Prima di tutto va creata una cartella sul desktop (o dove meglio si desidera) e rinominata in "backup". Fatto ciò apriamo il teminale e ci posizionamo nella cartella creata con il seguente comando:

cd Desktop/backup

al termine della procedura troveremo il nostro firmware scaricato qui dentro.

Primo step: calcolo dimensioni del file

Prima di effettuare il vero e proprio backup bisogna sapere la dimensione del file del firmware che si andrà a scaricare. Per fare ciò sarà sufficiente lanciare il seguente comando:

esptool.py -p /dev/your_ESPPort flash_id

Generalmente la porta ESP è /dev/tty.SLAB_USBtoUART oppure /dev/tty.USB0000

Puoi fare una ricerca tra i vari dispositivi con il comando ls /dev/tty* che ti mostrerà tutti i dispositivi connessi.

Lanciato questo comando dovremmo avere un risultato simile al seguente:

esptool.py v2.6
Serial port /dev/tty.SLAB_USBtoUART
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
MAC: ba:de:d2:94:40:p8
Uploading stub...
Running stub...
Stub running...
Manufacturer: ef
Device: 4015
Detected flash size: 2MB
Hard resetting via RTS pin...

Oltre alle specifiche del chip utilizzato dal nostro device (in questo caso viene utilizzato per prova uno shelly1) si otterranno informazioni sulla dimensione del file. Nel caso in esame, come si può vedere nella parte evidenziata del testo qui sopra, la dimensione è pari a 2MB.

Prima di passare allo step successivo il nostro device andrà riavviato, quindi bisognerà scollegare e ricollegare il cavo di alimentazione (vcc) dello stesso.

Secondo step: download firmware

Nello step precedente è stato determinata la dimensione del file del nostro firmware (nella circostanza 2MB). Questo valore servirà in questo step per dare in maniera correttà il comando. Infatti il valore della dimensione del file determinerà il comando. Nel caso nostro, con un file della dimensione di 2MB lanciamo il seguente comando: 

esptool.py -p /dev/your_ESPPort read_flash 0x00000 0x200000 firmware.bin

Come per il punto precedente your_ESPPort andrà sostituito con la porta del convertitore seriale utilizzato.

Per quanto riguarda invece il valore della dimensione del file lo troviamo indicato nella stringa in questa parte 0x200000. Se il risultato nello step precedente avesse determinato che la dimensione del file del firmware del device era di 4MB il valore andrà modificato in 0x400000 (0x100000 per 1MB e così via).

Lanciato questo comando dovremmo avere un risultato simile al seguente:

esptool.py v2.6
Serial port /dev/tty.SLAB_USBtoUART
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
MAC: ba:de:d2:94:40:p8
Uploading stub...
Running stub...
Stub running...
2097152 (100 %)
2097152 (100 %)
Read 2097152 bytes at 0x0 in 187.5 seconds (89.5 kbit/s)...
Hard resetting via RTS pin...

Il firmware è stato quindi regolarmente scaricato e potrà essere trovato all'interno della cartella creata sul desktop in precedenza.

Si consiglia di custodire il firmware originale nel qual caso si desiderasse un indomani ripristinarlo sul dispositivo. 


Filippo Lizza

42 Blog post

Commenti