Guida all’installazione e l’uso di esptool.py (in italiano)

Se avete necessitá di caricare firmware custom nel bootloader del vostro Espressif ESP82XX o ancheESP32, avete bisogno d’apprima di installare l’utility per comunicare con la ROM.

esptool.py

Appunto si tratta di una utility scritta in Python, open source  e platform independent, che si occupa di comunicare con la ROM per il caricamento dei firmware nei chip Espressif ESP8266 & ESP32.

Possiamo installarlo in maniera semplificata, usando il gestore di pacchetti Python pypi, oppure manualmente. La differenza sostanziale nelle due modalitá sta nel fatto che, mentre tramite quella facilitata, installerete sempre l’ultima versione stabile, con quella manuale potrete installare anche versioni ancora in fase di sviluppo.

Installazione semplificata, mediante pypi

Installate l’ultima versione di Python, compatibile con il vostro sistema operativo; va bene sia la versione Python 2.7 oppure per la Python 3.4 (o successive).

Per installare l’ultima versione stabile di esptool.py, lanciate questo comando dalla vostra shell:

$ pip install esptool

A seconda di come avrete installato Python, potreste ricevere degli errori, nel caso provate anche questi comandi:

$ python -m pip install esptool

oppure

$ pip2 install esptool

 

Se l’installazione si conclude con successo, avrete esptool.py nel path degli eseguibili di Python, per cui riuscirete a lanciarlo mediante il comando:

$ esptool.py



Installazione manuale

Per un uso piú consapevole, laddove avrete bisogno di funzionalità ancora non presenti nella release stabile, potete installare esptool.py manualmente.

Quello che pypi fa in automatico per conto vostro, é la risoluzione delle dipendenze, ovvero scaricare ed installare altri pacchetti necessari a esptool.py per funzionare.

Esptool.py ha una dipendenza con il pacchetto pySerial v 3.0 (o piú recente).

Se decidete di installare l’eseguibile in modo che sia disponibile a tutto il sistema operativo (system-wide), il comando setup.py installerá per voi la libreria pySerial. Lanciate il comando di setup in questo modo:

$ python setup.py install

Se altrimenti volete installare esptool solo per il vostro utente, dovrete installarla manualmente lanciando il comando:

$ pip install pyserial

Per la piú recente ESP32, esptool.py installerá anche i tools espsecure.py e espefuse.py.

Come usare esptool.py ?

Per avere una lista dei comandi possibili, vi basta digitare:

$ esptool.py -h

Per avere un dettaglio delle opzioni possibili per un comando specifico, ad esempio write_flash:

$ esptool.py write_flash -h

Utilizzi piú comuni

In questa tabella riporto le opzioni piú utili per eseguire le operazioni piú comuni.

Porta Seriale -p Definisce la porta seriale da usare. Per Linux e Mac é opportuno specificarla ad esempio  con -p /dev/ttyUSB0, su Windows -p COM1
Baud Rate -b Il default é 115200, ma é possibile impostare la velocitá della seriale con -b 9600. Nel caso si avessero dei problemi con 115200, é sempre possibile usare 74880 che é la velocitá standard usata da ESP8266 per effettuare output sul boot log.

Scrivere la ROM con dei dati binari: write_flash

E’ possibile scrivere dati binari nella ROM dell’ESP via seriale mediante il comando write_flash:

$ esptool.py --port COM4 write_flash 0x1000 my_app-0x01000.bin

E’possibile usare piú indirizzi di memoria in un unico comando:

$ esptool.py --port COM4 write_flash 0x00000 my_app.elf-0x00000.bin 0x40000 my_app.elf-0x40000.bin

Potrebbe essere necessario specificare anche il parametro –chip, anche se esptool.py alla connessione fará un auto-detect del chip a cui si é collegati.

Leggere il contenuto della flash: read_flash

In molte occasioni é utile scaricare il contenuto della flash. Se ad esempio volessimo leggere dalla ROM tutto quello che viene contenuto fino a 2MB di spazio, il comando da avviare sará:

$ esptool.py -p PORT -b 115200 read_flash 0 0x200000 backup.bin

Cancellare la flash: erase_flash e erase_region

In alcuni casi puó capitare di aver necessitá di rimuovere il contenuto della flash. Per rimuovere tutto il contenuto della flash potete usare:

$ esptool.py erase_flash

Nel momento in cui, alternativamente, si ha lanecessitá di rimuovere una sola regione di memoria, si puó esare il comando:

$ esptool.py erase_region 0x20000 0x4000

Dove 0x20000 é l’indirizzo di partenza, mentre 0x4000 é la quantità di memoria da cancellare.

Leggere il MAC address dalla porta seriale: read_mac

Per ottenere il MAC-address del dispositivo, utile per identificarlo in rete, si puó usare il comando:

$ esptool.py read_mac

Identificare la ROM tramite SPI: flash_id

Utilizzando il comando:

$ esptool.py flash_id

E’ possibile ottenere alcune informazioni sulla ROM montata a bordo del chip. Fate riferimento a questa tabella per avere le specifiche dei produttori.

Conclusioni

Questo articolo vi insegna come installare e usare il tool esptool.py, utile a scrivere il firmware nella ROM del vostro chip Espressif. Continuate a seguirci sulla nostra pagina Facebook, commentate gli articoli e scriveteci per maggiori informazioni!

A presto con un nuovo articolo su V=IxR.it!



 

Una risposta.

  1. Sante Messina ha detto:

    Molto interessante la spiegazione, da poco mi sto applicando per l’uso di espertino , avendo un problema con esptool.py volevo capire perché,
    Il fatto è che non ho capito come eseguire i comandi, come devo aprire una shell ? Con la finestra cmd di windows ?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *