ESP8266. Téléverser le dossier data (SPIFFS ou LittleFS) depuis PlatformIO

Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

Il est nécessaire d’installer des outils complémentaires à l’IDE Arduino avant de pouvoir téléverser des fichiers SPIFFS ou LittleFS (depuis la version 2.6.0 du SDK ESP8266). Il n’y a rien de tel à faire avec PlatformIO. PIO intègre la commande Upload File System Image accessible depuis la barre latérale. Pour activer LittleFS, il faudra simplement ajouter dans le fichier de configuration l’option board_build.filesystem = littlefs!

 

Il n’est pas possible d’utiliser directement un projet Arduino avec PlatformIO, lisez ce tutoriel qui explique comment migrer un projet ESP32, ESP8266 (ou n’importe quelle autre plateforme) développé avec l’IDE Arduino

A LIRE AUSSI :
Migrer un projet de l'IDE Arduino vers PlatformIO. ESP32, ESP8266 ou autre

Mettre à jour le SDK ESP8266 à la v2.6.0 ou supérieur

LittleFS est supporté à partir de la version 2.6.0 du SDK ESP8266.

Si les fichiers à téléverser sont au format SPIFFS, il faut d’abord mettre à jour le SDK Espressif ESP8266.

Mettre à jour le SDK ESP8266 pour PlatofrmIO PIO supérieur à v2.6.0 avec le support LittleFS

Déplacer (créer) le dossier data dans un projet PIO

Le dossier data qui contiendra tous les fichiers à téléverser sur la mémoire flash de l’ESP8266 doit se trouver au même niveau que le dossier src.

Voici un exemple d’arborescence

Structure d'un projet PlatformIO PIO ESP8266 avec un dossier data contenant des fichiers LittleFS SPIFFS

Il est également possible de spécifier manuellement l’emplacement du dossier en ajoutant la clé data_dir dans le fichier platformio.ini

Comment modifier la taille du système de fichier (board_build.ldscript)

Avec l’IDE Arduino, il est très facile de choisir la taille de la zone de fichier depuis le menu Tools -> Flash Size

Sélectionner la dimension de la zone mémoire de l'ESP8266 depuis le menu outil de l'IDE Arduino

Pour spécifier la taille du File System (FS), il suffit d’ajouter l’option board_build.ldscript et de  spécifier la valeur sous la forme eagle.flash.***.ld

Toutes les configurations disponibles sont ici.

Voici un exemple pour un LoLin d1 mini équipée de 4Mo de mémoire Flash dont 3Mo sera attribué au système de fichier LittleFS.

[env:d1_mini_lite]
platform = espressif8266
board = d1_mini_lite
board_build.ldscript = eagle.flash.4m3m.ld

Activer le support de LittleFS dans le fichier Platform.io

Par défaut le fichiers sont téléversés au format SPIFFS. Pour activer le support de LittleFS, il faudra ajouter au fichier de configuration l’option

board_build.filesystem = littlefs

Ce qui donne par exemple pour la LoLin d1 mini

[env:d1_mini_lite]
platform = espressif8266
board = d1_mini_lite
board_build.filesystem = littlefs
board_build.ldscript = eagle.flash.4m3m.ld
framework = arduino
monitor_speed = 115200

Vous pouvez noter au passage l’option monitor_speed = 115200 qui permet de spécifier la vitesse du moniteur série. Bien évidemment, la valeur doit correspondre à la vitesse spécifiée dans la commande Serial.begin() dans le code Arduino.

Téléverser les fichiers LittleFS (ou SPIFFS)

Tout comme pour l’IDE Arduino, il faut téléverser manuellement les fichiers SPIFFS et LittleFS dans la zone mémoire.

C’est la même commande dans les deux cas. PIO détermine le format de fichier à l’aide de l’option board_build.filesystem

On téléverse les fichiers depuis le menu PIO à l’aide de la l’option Upload File System Image ou en ligne de commande platformio run –target uploadfs

upload file system image esp8266 littlefs spiffs pio platformio tool

Un Terminal permet de suivre le bon déroulement de l’opération. Si vous n’avez qu’une seule carte ESP8266 connectée, PIO la détecte automatiquement.

Vous pouvez voir ici que PIO a généré un binaire nommé littlefs.bin, il contient tous les fichiers du dossier data.

Processing d1_mini_lite (platform: espressif8266; board: d1_mini_lite; framework: arduino)
-------------------------------------------------------------------------------------------------------------------------------------------------
PackageManager: Installing tool-mklittlefs @ ~1.203.0
tool-mklittlefs @ 1.203.200522 has been successfully installed!
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/d1_mini_lite.html
PLATFORM: Espressif 8266 2.6.2 > WeMos D1 mini Lite
HARDWARE: ESP8266 80MHz, 80KB RAM, 1MB Flash
PACKAGES: 
 - framework-arduinoespressif8266 3.20704.0 (2.7.4) 
 - tool-esptool 1.413.0 (4.13) 
 - tool-esptoolpy 1.20800.0 (2.8.0) 
 - tool-mklittlefs 1.203.200522 (2.3) 
 - tool-mkspiffs 1.200.0 (2.0) 
 - toolchain-xtensa 2.40802.200502 (4.8.2)
Converting test_with_text_file.ino
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 30 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <LittleFS(esp8266)> 0.1.0
Building in release mode
Building file system image from 'data' directory to .pio/build/d1_mini_lite/littlefs.bin
skipping .DS_Store
/test.txt
Looking for upload port...
Auto-detected: /dev/cu.usbserial-1410
Uploading .pio/build/d1_mini_lite/littlefs.bin
esptool.py v2.8
Serial port /dev/cu.usbserial-1410
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: b4:e6:2d:13:f2:c9
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 65536 bytes to 301...

Writing at 0x000eb000... (100 %)
Wrote 65536 bytes (301 compressed) at 0x000eb000 in 0.0 seconds (effective 14974.5 kbit/s)...
Hash of data verified.

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

Erreur, les fichiers LittlesFS ne sont pas téléchargés correctement

LittleFS est supporté à partir de la version 2.6.0 du SDK ESP8266. Si PIO téléverse une image nommée spiffs.bin au lieu de littlefs.bin, vous devez  mettre à jour le SDK ESP8266.

Problème LittleFS un fichier SPIFFS est téléverser sur ESP8266. Il faut mettre à jour le SDK sur PIO

Mises à jour

11/09/2020 Comment spécifier manuellement le chemin vers le dossier data

18/08/2020 Publication du tutoriel

Avez-vous aimé cet article ?
[Total: 1 Moyenne: 5]
Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

Vous avez aimé ce projet ? Ne manquez plus aucun projet en vous abonnant à notre lettre d’information hebdomadaire!

quel modèle esp8266 choisir
Quel modèle d'ESP8266EX choisir en 2020 ?
guide choix esp32 development board
Quel ESP32 choisir en 2020 ?

Vous rencontrez un problème avec ce sujet ?

Peut-être que quelqu’un a déjà trouvé la solution, visitez le forum avant de poser votre question

Nous serions ravis de connaître votre avis

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Domotique et objets connectés à faire soi-même