🛠 Gérer la flash 4 Mo : partitions et LittleFS

ESP8266 (module ESP-12E) · avance · Schéma : IMG-esp8266-esp-12e-avance-3-esp8266-partitions-littlefs.svg — Répartition de la flash 4 Mo d'un module ESP-12E : bootloader, deux slots de sketch OTA, NVS et partition LittleFS, avec le câble série branché pour le premier flashage.

Objectifs

Comprendre où vivent les données sur la flash QSPI 4 Mo de l'ESP-12E et utiliser LittleFS, le système de fichiers moderne du core esp8266 (successeur de SPIFFS, plus robuste aux coupures de courant). Le menu « Flash Size » et « Flash Mode » d'Arduino IDE sélectionnent le schéma de partitions gravé en début de flash : bootloader, deux slots de sketch pour l'OTA, zone NVS (calibration Wi-Fi + paramètrès) et partition de fichiers. Une incohérence entre la flash réelle du module et le preset choisi provoque des boot loops caractéristiques. On apprend à formater, écrire, relire un fichier de configuration et afficher l'espace utilisé.

Matériel

Code complet

#include <ESP8266WiFi.h>
#include <LittleFS.h>

void setup {
  Serial.begin(115200);

  // Montage ; formatage seulement au premier lancement
  if (!LittleFS.begin) {
    Serial.println("LittleFS absent -> formatage (efface TOUT)");
    if (!LittleFS.format) { Serial.println("Echec format : verifie Flash Size 4MB"); while (true) yield; }
    LittleFS.begin;
  }

  // État de la partition
  fs::FSInfo info;
  LittleFS.info(info);
  Serial.printf("Flash totale : %u Ko | LittleFS : %u Ko utilises sur %u Ko\n",
                ESP.getFlashChipSize / 1024, info.usedBytes / 1024, info.totalBytes / 1024);

  // Ecriture d'un fichier de configuration
  {
    File f = LittleFS.open("/config.txt", "w");
    if (f) { f.println("ssid=mon-réseau"); f.println("seuil=42"); f.close; }
  }

  // Relecture ligne par ligne
  File f = LittleFS.open("/config.txt", "r");
  if (f) {
    Serial.println("--- config.txt ---");
    while (f.available) Serial.write(f.read);
    f.close;
  } else {
    Serial.println("Fichier absent");
  }

  // Inventaire
  File d = LittleFS.open("/");
  if (d.isDirectory) {
    File e = d.openNextFile;
    while (e) { Serial.printf("%s (%u octets)\n", e.name, e.size); e = d.openNextFile; }
  }
}

void loop { yield; }

Vérification attendue

Premier lancement : « LittleFS absent -> formatage » puis l'inventaire affiche config.txt avec ses deux lignes. La ligne d'état doit indiquer environ 4096 Ko de flash totale (sinon ton preset est faux). Relance sans toucher au code : plus de formatage, le fichier est conservé — efface-le depuis le moniteur ou reformate pour revérifier le cycle. Pousse un fichier avec l'outil LittleFS Data Upload : il apparaît dans l'inventaire après redémarrage.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels