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).
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)
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.
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
.
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.
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.
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.
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
- Firmware and OTA update
- Gestione del firmware
- Aggiornamenti OTA con Arduino IDE
- Aggiornamenti OTA con Web Browser
- Aggiornamenti OTA automatico da server HTTP
- Aggiornamenti firmware non standard