La prise en main du XIAO ESP32-S3 consiste à installer le support de la carte dans l’IDE Arduino, à la faire reconnaître par l’ordinateur via l’USB-C, et à téléverser un premier programme. Comme la carte est un ESP32-S3, la procédure est celle de la prise en main de l’ESP32. On l’adapte ici aux spécificités du format : barrettes à souder, antenne à clipser, LED utilisateur active à l’état bas, et surtout la séquence de récupération quand la carte « disparaît ».
Avant de commencer
La XIAO est livrée sans barrettes : souder les broches nécessaires (attention aux pâtés de soudure, la carte est minuscule). Pour le Wi-Fi/BLE, clipser l’antenne fournie sur le connecteur U.FL — un côté dans le bloc d’abord, puis presser l’autre ; ne jamais tirer sur le câble pour la retirer.
Installer le support et téléverser (Arduino)
- Installer l’IDE Arduino (version stable).
- Fichier → Préférences → URL de gestionnaire de cartes supplémentaires, ajouter :
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json - Outils → Type de carte → Gestionnaire de cartes, chercher
esp32(Espressif) et installer la dernière version (il faut ≥ 2.0.8). - Sélectionner la carte
XIAO_ESP32S3et le port (unCOM3ou plus sous Windows ; unusbmodem/usbserialsous macOS — au doute, débrancher/rebrancher pour voir lequel disparaît). - Ouvrir Fichier → Exemples → 01.Basics → Blink et téléverser : la LED orange se met à clignoter.
La démarche complète (et l’alternative ESP-IDF) est détaillée dans prise en main de l’ESP32 et ESP32 Arduino-core. Ici, on s’en tient au minimum pour valider la carte.
Premier programme : la LED qui clignote
La LED utilisateur est câblée sur GPIO21, et elle est active à l’état bas : un niveau LOW l’allume, un niveau HIGH l’éteint. C’est le piège classique du « Blink à l’envers ».
En Arduino :
void setup() {
pinMode(LED_BUILTIN, OUTPUT); // LED_BUILTIN = GPIO21
}
void loop() {
digitalWrite(LED_BUILTIN, LOW); // allumée (actif à l'état bas)
delay(500);
digitalWrite(LED_BUILTIN, HIGH); // éteinte
delay(500);
}Le même en MicroPython (une fois le firmware MicroPython flashé, voir MicroPython) :
from machine import Pin
from time import sleep
led = Pin(21, Pin.OUT)
while True:
led.value(0) # allumée
sleep(0.5)
led.value(1) # éteinte
sleep(0.5)Pour vérifier que les radios répondent, lancer ensuite un scan Wi-Fi ou BLE (voir Wi-Fi et BLE).
Récupérer une carte qui ne répond plus
Tôt ou tard, un mauvais programme (ou un deep sleep mal réglé) fait « disparaître » la carte : plus de port, ou un port présent mais le téléversement échoue. La parade est le mode bootloader, qu’on force avec le bouton BOOT.
Une fois en mode bootloader, téléverser un programme sain (le Blink fait l’affaire), puis appuyer sur Reset pour le lancer. Le bouton Reset seul, lui, relance simplement le programme déjà en place.
Moniteur série vide ou en erreur ?
L’ESP32-S3 gère l’USB nativement (pas de puce série dédiée). Si le moniteur reste muet ou renvoie une erreur à l’ouverture, activer l’option « USB CDC On Boot » dans le menu Outils, puis re-téléverser. Pour l’usage de la liaison série, voir moniteur.
Raccrochage projet
- Étape 4 de la phase de preuve de concept. Le premier téléversement sur la carte cible valide d’un coup toute la chaîne (IDE, support ESP32, USB natif, sélection carte et port). Tant que le Blink ne clignote pas, aucune mesure ni asservissement aval n’est crédible.
- Toutes les fiches XIAO et ESP32 aval. La séquence bootloader et l’option USB CDC On Boot débloquent la majorité des séances qui s’enlisent. Les acquérir ici, sur du code trivial, évite de les redécouvrir dans l’urgence d’un projet.
Le format timbre-poste ajoute une contrainte propre : soudure et antenne se font avant le premier essai, et une carte mal soudée donne les mêmes symptômes qu’un problème logiciel. Valider la carte nue en début de PoC évite ce doute.
Voir aussi
- XIAO ESP32-S3 — le hub de la carte (brochage, variantes, mise en œuvre)
- Prise en main de l’ESP32 — la procédure de référence, en détail
- ESP32 Arduino-core — le cœur Arduino pour ESP32
- moniteur — dialoguer avec la carte
- MicroPython — l’autre voie de programmation
- XIAO — alimentation — alimenter et recharger la carte