🛠 Console série sur l'USB natif (CDC) du S3

ESP32-S3 · debutant · Schéma : IMG-esp32-s3-debutant-3-esp32-s3-console-usb-cdc.svg — Carte ESP32-S3 reliée par un seul câble USB à l'ordinateur, le moniteur série affichant des messages, la mention USB CDC On Boot Enabled visible dans le menu Outils.

Objectifs

Maîtriser la console série sur ESP32-S3 via l'USB natif. Contrairement à l'ESP32 classique, le S3 n'a pas besoin de puce pont USB-série : il possède d'une part un contrôleur USB-OTG (broches GPIO19/GPIO20) et d'autre part un périphérique USB-Serial/JTAG. En activant « USB CDC On Boot: Enabled », la commande Serial.print sort directement par le port USB de la carte. Vous apprendrez aussi la différence avec l'ancienne UART0 (GPIO43 TX / GPIO44 RX par défaut) et comment récupérer l'accès si le port disparaît.

Matériel

Code complet

// Console sur USB natif : outils Arduino -> "USB CDC On Boot: Enabled"
// (sur certaines cartes : "USB Mode: Hardware CDC and JTAG")
unsigned long t0 = millis;
uint32_t n = 0;

void setup {
  Serial.begin(115200);          // flux CDC, pas d'UART materielle ici
  while (!Serial && millis < 5000) {
    // attend que le terminal hote soit branche (max 5 s)
    delay(10);
  }
  Serial.println;
  Serial.println("ESP32-S3 : console sur USB natif (CDC)");
  Serial.printf("Chip: %s, %d coeur(s), %.0f MHz\n",
                "ESP32-S3", portNUM_PROCESSORS,
                (double)getCpuFreqMHz);
}

void loop {
  Serial.printf("[%4.1f s] message n=%u\n", (millis - t0) / 1000.0, ++n);
  if (Serial.available) {      // echo de ce que l'hote envoie
    char c = Serial.read;
    Serial.print("Recu: ");
    Serial.println(c);
  }
  delay(1000);
}

Vérification attendue

Le moniteur série de l'IDE (ou PuTTY/Arduino Serial Monitor à 115200) affiche l'en-tête puis une ligne par seconde ; les caractères tapés côté ordinateur sont renvoyés. Tout cela avec un seul câble USB, sans pont série externe. Le moniteur système Windows confirme la présence d'un périphérique « USB Serial Device » quand la carte est reconnue.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels