🛠 Exposer un stockage de masse USB (TinyUSB MSC)

Arduino Nano ESP32 · avance · Schéma : IMG-nano-esp32-avance-1-nanoesp32-tinyusb-msd.svg — La carte énumérée comme clé USB dans l'explorateur, image disque stockée dans la flash de 16 Mo.

Objectifs

Exposer un stockage de masse USB (classe MSC de la pile TinyUSB du core ESP32) : la carte apparaît comme une clé USB contenant une image formatée, lue dans la flash de 16 Mo. Utile pour récupérer des données sans réseau. >

Matériel

Code complet

// Inspiré de l'exemple USBMassStorage du core ESP32-S3 (à valider sur Nano ESP32)
#include "FS.h"
#include "SPIFFS.h"
#include "USB.h"
#include "USBMassStorage.h"

USBMassStorage MassStorage;
const uint32_t tailleCluster = 512;
const uint32_t nbClusters = 2048;   // ~1 Mo

void setup {
  Serial.begin(115200);
  if (!SPIFFS.begin(true)) { Serial.println("SPIFFS KO"); return; }
  File img = SPIFFS.open("/disque.bin", "w+");
  if (!img) { Serial.println("image KO"); return; }
  uint8_t vide[512] = {0};
  for (uint32_t i = 0; i < nbClusters; i++) img.write(vide, tailleCluster);
  img.close;
  MassStorage.begin("/disque.bin");   // avant USB.begin
  USB.begin;                        // énumère la carte en « clé USB »
  Serial.println("MSC actif : disque.bin exposé");
}

void loop { delay(1000); }

Vérification attendue

Après renumérotation USB, l'explorateur montre un volume amovible adossé à disque.bin ; un fichier copié dessus persiste après reset. Le port série natif peut disparaître tant que la MSC occupe l'USB : prévoir un reset pour retrouver le téléversement.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels