esp8266: flash del firmware e file system binario (.bin) compilato con strumenti grafici (GUI) – 2

Spread the love

Una caratteristica importante che semplifica la condivisione del firmware (ed è utilizzata dalla maggior parte dei produttori) è quella di generare file binari precompilati con solo la parte dello sketch (o file system).

esp8266 flash firmware e filesystem binaro compilato con strumenti con interfaccia grafica
esp8266 flash firmware e filesystem binaro compilato con strumenti con interfaccia grafica

Espressif offre anche uno strumento grafico per semplificare questo processo.

Io di solito uso questi dispositivi WeMos D1 mini - NodeMCU V2 V2.1 V3 - esp01 - esp01 programmer

Strumenti di base

Per prima teniamo presente che il componente principale del core esp8266 necessita dell’installazione di python e durante l’installazione ricorda di aggiungerlo alla path (per Windows)

ESP Tools Install Python and add It to path
ESP Tools Install Python and add It to path

upload.py o esptool.py

Nella tua installazione di Arduino IDE puoi trovare il file upload.py che è lo stesso di esptool.py.

Puoi installare solo esptool.py per Python con un semplice comando

pip install esptool

oppure puoi scaricare da qui la versione compilata, ricordati di aggiungere l’eseguibile al percorso.

Flash del file binario del firmware con lo strumento di download Espressif

La stessa operazione (dopo aver installato python ed esptool) può essere eseguita con Espressif Download Tool, che puoi scaricare da qui .

Se hai capito i comandi precedenti, risulta molto semplice da usare.

Devi collegare il file bin, impostare l’indirizzo corretto e selezionare le specifiche del tuo microcontrollore.

esp8266 esp32 espressif download tool flash compiled binary
esp8266 esp32 espressif download tool flash compiled binary

clicca per iniziare, alla fine riavvia il dispositivo.

Genera file system binario

Puoi compilare e generare codice sorgente per il tuo dispositivo, ma puoi anche generare un file binario per il filesystem.

Aggiungi un output dettagliato all’IDE di Arduino

Per comprendere meglio tutto il processo, abiliteremo l’output dettagliato sul nostro IDE Arduino. Puoi trovare queste opzioni su File -> Preferences e controllare Show verbose output.

Arduino IDE enable show verbose ouput
Arduino IDE enable show verbose ouput

Ora possiamo prendere e riutilizzare i comandi della console.

Prerequisite

Per il filesystem possiamo operare allo stesso modo, ma prima devi leggere una delle seguenti guide:

WeMos D1 mini (esp8266): SPIFFS FileSystem integrato (deprecato)

WeMos D1 mini (esp8266): FileSystem integrato LittleFS (raccomandato)

Ora aggiungeremo la cartella data alla cartella degli sketch (con alcuni file) e utilizzeremo il plug-in per caricare.

esp8266 LittleFS plugin menu on ArduinoIDE
esp8266 LittleFS plugin menu on ArduinoIDE

Nella console troviamo il comando per generare questo file.

[LittleFS] data    : D:\tmp\testBlink\Blink\data
[LittleFS] size    : 2024
[LittleFS] page    : 256
[LittleFS] block   : 8192
/bombo.png
[LittleFS] upload  : C:\Users\renzo\AppData\Local\Temp\arduino_build_49036/Blink.mklittlefs.bin
[LittleFS] address : 0x200000
[LittleFS] reset   : --before default_reset --after hard_reset
[LittleFS] port    : COM17
[LittleFS] speed   : 921600
[LittleFS] python   : C:\Users\renzo\AppData\Local\Arduino15\packages\esp8266\tools\python3\3.7.2-post1\python3.exe
[LittleFS] uploader : C:\Users\renzo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\tools\upload.py

esptool.py v2.8
Serial port COM17
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 50:02:91:74:fe:11
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 2072576 bytes to 48389...
Wrote 2072576 bytes (48389 compressed) at 0x00200000 in 4.9 seconds (effective 3416.7 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

Ora possiamo vedere molte informazioni, tra cui la posizione del file

[LittleFS] upload  : C:\Users\renzo\AppData\Local\Temp\arduino_build_49036/Blink.mklittlefs.bin

e l’indirizzo.

[LittleFS] address : 0x200000

Caricare tramite prompt dei comandi

Quindi possiamo ricostruire il comando

:\Users\renzo\AppData\Local\Arduino15\packages\esp8266\tools\python3\3.7.2-post1/python3 C:\Users\renzo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4/tools/upload.py --chip esp8266 --port COM17 --baud 921600 --before default_reset --after hard_reset write_flash 0x200000 C:\Users\renzo\AppData\Local\Temp\arduino_build_49036/Blink.mklittlefs.bin

L’informazione più importante è l’indirizzo, seleziono 2Mb di FS e l’indirizzo relativo è quello in console.

Caricare con l’Espressif Download Tool

Con la gui dobbiamo semplicemente impostare il file e gli indirizzi corretti.

esp8266 espressif download tool flash filesystem littlefs spiffs binary
esp8266 espressif download tool flash filesystem littlefs spiffs binary

Combinare file binari

Lo strumento Espressif Download può combinare file binari con il pulsante Combine, e genera un singolo file binario per il compilato e filesystem.

esp8266 espressif download tool combine binary files
esp8266 espressif download tool combine binary files

La dimensione diventa l’intera dimensione del flash, nel caso di WeMos D1 mini con 4Mb di flash il file di destinazione è 4Mb.

Puoi caricare il nuovo file generato impostando l’indirizzo 0x0 .

Grazie

  1. Firmware and OTA update

Spread the love

Lascia un commento

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