ESP32-C3

Espressif SystemsMCU 32-bitarduino

⚡ L’essentiel en 60 secondes

L’ESP32-C3, développé par Espressif Systems, représente une étape charnière dans l’évolution des microcontrôleurs connectés. Annoncé en 2020 et produit en volume à partir de 2021-2022, ce composant se distingue par son architecture RISC-V, une instruction set ouverte et gratuite, contrairement aux architectures propriétaires précédentes. Il s’inscrit comme le successeur naturel de l’ESP8266, visant à offrir une solution économique pour l’Internet des objets (IoT). La fiche source précise que le prix du puce seule avoisine les 2 dollars en volume, tandis que les modules complets ou les cartes de développement, souvent surnommées « SuperMini », peuvent être trouvés pour moins de 3 dollars, bien que les prix officiels exacts restent non vérifiés avec précision. Cette approche tarifaire agressive positionne le C3 comme un point d’entrée idéal pour les projets nécessitant une connectivité sans fil robuste sans exploser les coûts.

Sur le plan technique, le cœur du système est un processeur RISC-V 32 bits à cœur unique, cadencé jusqu’à 160 MHz. Pour ceux qui ne sont pas familiers avec ce terme, un cœur unique signifie que le processeur traite une instruction à la fois, ce qui est suffisant pour la plupart des tâches IoT simples mais diffère des modèles ESP32 plus anciens à double cœur. Il est accompagné d’un coprocesseur à très basse consommation de 20 MHz, dédié à la gestion de l’alimentation, permettant de prolonger la durée de vie des batteries. La mémoire interne comprend 400 Ko de SRAM (mémoire vive rapide) et 384 Ko de ROM, avec 24 Ko supplémentaires en SRAM basse consommation pour maintenir l’état lors des veille. Le stockage des programmes se fait sur une mémoire flash externe ou intégrée au boîtier, typiquement de 4 Mo sur les modules MINI-1, avec une capacité théorique allant jusqu’à 16 Mo. Il est crucial de noter que la logique fonctionne en 3,3 volts et n’est pas tolérante aux signaux de 5 volts, ce qui impose une vigilance lors des connexions avec d’autres composants.

La connectivité est l’un des atouts majeurs de cette carte. Elle intègre le Wi-Fi 802.11 b/g/n sur la bande des 2,4 GHz ainsi que le Bluetooth 5 Low Energy (BLE). Le BLE 5 apporte des fonctionnalités avancées comme la longue portée (Coded PHY) et le maillage (Mesh), permettant de créer des réseaux de capteurs étendus. Cependant, il est important de souligner une limitation fréquemment mal comprise : l’ESP32-C3 ne dispose pas de Bluetooth Classic, ce qui exclut des usages comme l’audio stéréo ou le transfert de fichiers lourds via ce protocole. De plus, contrairement à certains cousins de la famille ESP32, le C3 ne possède pas de radio 802.15.4. Cela signifie qu’il ne peut pas être un nœud final Zigbee ou Thread de manière autonome ; il ne peut servir que d’hôte de passerelle Wi-Fi pour ces protocoles, nécessitant un autre composant radio dédié. Cette distinction a fait l’objet d’une correction récente dans la documentation, car une confusion existait auparavant sur les capacités radio du C3.

Les interfaces d’entrée/sortie sont fournies par 22 broches GPIO programmables. Celles-ci permettent de connecter des capteurs, des actionneurs et d’autres périphériques. Le système met à disposition deux interfaces UART, une I2C, une SPI, deux I2S, ainsi qu’un contrôleur TWAI (compatible CAN) et six canaux PWM pour le contrôle de moteurs ou de LED. Une particularité notable est l’absence de convertisseur numérique-analogique (DAC), ce qui limite les applications nécessitant une sortie audio analogique directe ou une tension variable précise. La gestion des broches demande une attention particulière, notamment concernant les broches de configuration (strapping pins) comme GPIO2, GPIO8 et GPIO9. Par exemple, GPIO9 est souvent utilisé comme bouton de démarrage (BOOT) ; si son niveau électrique est incorrect au démarrage, la carte peut refuser de s’initialiser correctement, un problème courant rapporté par la communauté.

La connectique USB mérite une explication spécifique. L’ESP32-C3 intègre un périphérique USB-Serial/JTAG. Cela signifie que le port USB sert à la fois à alimenter la carte, à communiquer avec l’ordinateur via une console série, à flasher le programme et à déboguer via JTAG. Il ne s’agit pas d’une interface USB OTG (On-The-Go) complète : vous ne pouvez pas utiliser le C3 pour émuler un clavier ou une souris USB (périphérique HID) ni pour lire une clé USB. Cette intégration simplifie le matériel en éliminant le besoin d’un pont USB-série externe comme le CP2102, réduisant ainsi les coûts et l’encombrement sur les cartes compactes.

En termes de développement, l’écosystème est riche et mature. Le SDK officiel est ESP-IDF, basé sur FreeRTOS, offrant un contrôle fin des ressources. Pour les débutants, le support Arduino est disponible via le cœur « espressif/arduino-esp32 », bien que certaines bibliothèques écrites en assembleur Xtensa ne soient pas compatibles avec l’architecture RISC-V du C3. MicroPython, Rust (via esp-rs), Zephyr, Tasmota et ESPHome proposent également des supports officiels, garantissant une grande flexibilité. La sécurité est prise au sérieux avec des fonctions matérielles telles que le démarrage sécurisé RSA-3072 et le chiffrement de la mémoire flash AES, protégeant le code et les données contre la copie ou l’altération.

Enfin, il convient d’être prudent avec les clones très bon marché, souvent appelés « SuperMini ». La fiche source signale des problèmes de qualité récurrents : tailles de flash non documentées, absence de circuits de réinitialisation automatique (obligeant à appuyer manuellement sur BOOT et RESET pour flasher) et régulateurs de tension trop faibles pour gérer les pics de consommation du Wi-Fi, entraînant des redémarrages en boucle. Pour les projets critiques, il est recommandé de privilégier les kits officiels comme le DevKitM-1 ou les modules de marques reconnues comme Seeed ou Adafruit, qui offrent une fiabilité et une documentation plus solides.

Forum (1 sujet) →

AttrSpecsvérifié
cpusingle-core 32-bit RISC-V RV32IMC @ up to 160 MHz, plus a 20 MHz ultra-low-power RISC-V coprocessor ("power management" core) ( datasheet✔
memory400 KB internal SRAM, 384 KB ROM, 24 KB in low-power SRAM ( datasheet URL above).✔
storageexternal or in-package SPI flash, 4 MB typical on MINI-1 (up to 16 MB supported) (✔
connectivityWi-Fi 802.11 b/g/n 2.4 GHz + Bluetooth 5 (LE) with long-range (Coded PHY), BLE Mesh, ESP-WIFI-MESH; no Bluetooth Classic (✔
usbUSB-Serial/JTAG device peripheral (CDC console + flashing + JTAG debug on GPIO18/19) — it is not USB-OTG; you cannot build USB HID devices with it (datasheet URL above).? non vérifié
gpio22 programmable GPIOs (GPIO0–GPIO21); 2× UART, 1× I2C, 1× SPI, 2× I2S, 1× RMT TX/RX pair, LEDC PWM (6 channels), 1× TWAI (CAN), GPIO matrix routing (datasheet URL above). - ADC: 12-bit SAR with a handful of channels on GPIO0–GPIO5 (exact mapping package-dependent). > ? non vérifié
logic_level3.3 v? non vérifié
powermultiple low-power modes with ULP FSM; deep sleep in the single-digit µA class (datasheet power tables). > ? non vérifié
temperaturehigh-temperature support marketed for industrial/lighting ( exact grade per chip marking — datasheet §General Characteristics.✔
  • Fabricant : Espressif Systems (Shanghai) (
  • Année : annoncé en 2020 (premier SoC Wi-Fi RISC-V d'Espressif), production en volume 2021–2022. >
  • Statut : Actif — successeur à coût réduit de l'ESP8266 chez Espressif et porte d'entrée de la famille ESP32.
  • Prix de lancement : puce ≈ 2 US$ en volume selon le message de lancement d'Espressif ; modules C3 ≈ 1,5–3 US$, cartes « SuperMini » souvent sous les 3 US$. >
  • Variantes : ESP32-SO3 (flash dans le boîtier) / les suffixes de puce ESP32-C3 encodent la flash (2/4/8/16 Mo, p. ex. modules ESP32-C3-MINI-1 avec 4 Mo) ; versions sans flash pour les conceptions à flash SPI externe (
  • Modules : ESP32-C3-MINI-1/-1U ( ESP32-C3-WROOM-02/-02U.
  • Cartes courantes : ESP32-C3-DevKitM-1, ESP32-C3-DevKitC-0, ESP32-C3-DevKitM-2U, d'innombrables clones « ESP32-C3 SuperMini », Seeed XIAO ESP32C3, Adafruit QT Py ESP32-C3.

+ Points forts

  • Cœur RISC-V — architecture ouverte d'Espressif, SoC Wi-Fi+BLE5 le moins cher ; équilibre consommation/E-sécurité pensé comme remplacement de l'ESP8266 (
  • BLE 5 longue portée + Mesh sur une puce à moins de 2 US$ (
  • USB-Serial/JTAG intégré : un seul port USB-C fournit console, flashage et GDB — pas de CP2102 sur les cartes SuperMini (URL datasheet ci-dessus).
  • Cryptographie matérielle : secure boot RSA-3072, AES-XTS, digital signature, HMAC (
  • Pas de radio 802.15.4 — le C3 ne fait que Wi-Fi + BLE 5. La page produit d'Espressif ne liste pas de 802.15.4, et le soc_caps.h d'ESP-IDF définit SOC_IEEE802154_SUPPORTED pour ESP32-C6/H2 mais pas pour le C3 (vérifié le 2026-10-13 : Les end devices Zigbee/Thread exigent un ESP32-C6/H2 ; le C3 n'apparaît que comme hôte de la passerelle Wi-Fi ( _[Corrigé le 2026-10-13 : une révision antérieure de cette fiche créditait à tort le C3 d'une radio 802.15.4.]_

− Points faibles

  • Broches de strapping GPIO2, GPIO8, GPIO9 : GPIO8 doit être HIGH au boot (sinon mode téléchargement), GPIO9 est le bouton BOOT courant, GPIO2 doit rester flottant/HIGH pour le boot SPI ; niveaux incorrects = « le port s'ouvre mais impossible de flasher/booter » (section Strapping Pins de la datasheet :
  • USB uniquement Serial/JTAG : pas d'OTG/HID — les projets copiés des exemples USB des S2/S3 échouent conceptuellement (URL datasheet ci-dessus).
  • Seulement 22 GPIO, 1 I2C, 1 SPI, 2 UART : le plan de brochage est tendu ; GPIO11–17 peuvent être restreints sur les modules à flash intégrée (datasheet MINI-1 :
  • GPIO9/GPIO10 vs flash SPI sur certaines variantes de puce — vérifier le marquage exact de votre composant avant de les utiliser (URL datasheet MINI-1 ci-dessus).
  • Pas de DAC, pas de Bluetooth classic, monocœur : les ports de code ESP32 qui supposaient ces fonctions demandent une refonte (comparatif de la page produit :
  • Contention Wi-Fi façon ADC2 : des canaux ADC partagés avec le chemin RF donnent des mesures bruitées pendant les émissions Wi-Fi ; faire la moyenne ou lire dans des fenêtrès modem-sleep (guide ADC ESP-IDF :
  • Qualité des clones SuperMini : tailles de flash non documentées, circuits d'auto-reset absents (danse manuelle BOOT+RESET), et LDO 3,3 V trop faibles pour les rafales TX — les boucles de brownout sont la réclamation n°1 sur les forums (communauté :
  • Retour d'expérience expert expert — expert-microcontroleur
    • Je viens de finir un projet avec la ESP32-C3 et il faut être clair sur ses limites. Le RISC-V à 160 MHz est réactif et le BLE 5 avec Coded PHY est top, mais attention au USB : ce n'est pas de l'OTG. J'ai perdu du temps à vouloir faire un périphérique HID, c'est impossible, c'est juste du Serial/JTA… — expert-microcontroleur
    • Merci pour le rappel sur le GPIO8, j'ai galéré pendant deux heures avec une SuperMini qui ne flashait plus. J'ai finalement compris que mon capteur branché dessus tirait la ligne vers le bas. Par contre, tu as testé l'ADC pendant que le Wi-Fi est actif ? J'ai des valeurs qui sautent dans tous les s… — maker_bricoleur
    • Pour l'ADC, c'est un souci connu car les canaux partagent le chemin RF. Il faut soit faire des moyennes, soit mettre le modem en sommeil pendant la lecture via l'API ESP-IDF. Concernant les clones, je confirme les brownouts si le LDO est faible. J'ai dû ajouter un condensateur de 100uF en entrée po… — codemine

Retours et projets de la communauté

  • ESP32-C3-DevKitM-1 official guide

    ESP32-C3-DevKitM-1 official guide — : .espressif.com/projects/esp-dev-kits/en/latest/esp32c3/esp32-c3-devkitm-1/index.html (unverified au 2026-10-13)

  • ESP-IDF Zigbee gateway sample

    ESP-IDF Zigbee gateway sample — C3 acts as the Wi-Fi gateway host and needs an external 802.15.4 SoC (ESP32-H2) as the radio ; it is not a standalone Zigbee end-device target: .com/espressif/esp-idf/tree/master/examples/zigbee (unverified au 2026-10-13) esp-m…

  • Tasmota on ESP32-C3 boards

    Tasmota on ESP32-C3 boards — : .github.io/docs/Boards/ (unverified au 2026-10-13) — référence hébergé sur tasmota, statut unverified vérifié le 2026-10-13. Projet documenté dans la fiche esp32-c3 (MCU 32-bit) ; rôle : approfondir la prise en main de cette car…

  • ESPHome on ESP32-C3

    ESPHome on ESP32-C3 — : .io (unverified au 2026-10-13) — référence hébergé sur esphome, statut unverified vérifié le 2026-10-13. Projet documenté dans la fiche esp32-c3 (MCU 32-bit) ; rôle : approfondir la prise en main de cette carte.

  • Seeed XIAO ESP32C3 wiki

    Seeed XIAO ESP32C3 wiki — (battery, BLE, deep sleep): .seeedstudio.com/XIAO_ESP32C3_Getting_Started/ (unverified au 2026-10-13)

  • Broches de strapping GPIO2, GPIO8, GPIO9 : GPIO8 doit être HIGH au boot (sinon mode téléchargement), GPIO9 est le bouton BOOT courant, GPIO2 doit rester flottant/HIGH pour le boot SPI ; niveaux incorrects = « le port s'ouvre mais impossible de flasher/booter » (section Strapping Pins de la datasheet :
  • USB uniquement Serial/JTAG : pas d'OTG/HID — les projets copiés des exemples USB des S2/S3 échouent conceptuellement (URL datasheet ci-dessus).
  • Seulement 22 GPIO, 1 I2C, 1 SPI, 2 UART : le plan de brochage est tendu ; GPIO11–17 peuvent être restreints sur les modules à flash intégrée (datasheet MINI-1 :
  • GPIO9/GPIO10 vs flash SPI sur certaines variantes de puce — vérifier le marquage exact de votre composant avant de les utiliser (URL datasheet MINI-1 ci-dessus).
  • Pas de DAC, pas de Bluetooth classic, monocœur : les ports de code ESP32 qui supposaient ces fonctions demandent une refonte (comparatif de la page produit :
  • Contention Wi-Fi façon ADC2 : des canaux ADC partagés avec le chemin RF donnent des mesures bruitées pendant les émissions Wi-Fi ; faire la moyenne ou lire dans des fenêtrès modem-sleep (guide ADC ESP-IDF :
  • Qualité des clones SuperMini : tailles de flash non documentées, circuits d'auto-reset absents (danse manuelle BOOT+RESET), et LDO 3,3 V trop faibles pour les rafales TX — les boucles de brownout sont la réclamation n°1 sur les forums (communauté :
  • Faire clignoter la LED RGB sur GPIO8 debutant Schéma : IMG-esp32-c3-debutant-1-rgb-led-gpio8-blink.svg — Carte ESP32-C3 compacte avec LED RGB sur GPIO8 clignotant, broche signalée comme strapping
  • Lire le bouton BOOT sur GPIO9 debutant Schéma : IMG-esp32-c3-debutant-2-bouton-boot-gpio9.svg — Bouton BOOT du ESP32-C3 câblé entre GPIO9 et GND avec résistance de pull-up interne, compteur d'appuis en console
  • Console sur l'USB-C natif (USB-Serial/JTAG) debutant Schéma : IMG-esp32-c3-debutant-3-console-usb-c-serial-jtag.svg — Câble USB-C branché directement sur le ESP32-C3, périphérique USB-Serial/JTAG reliant terminal série et débogueur
  • Bandeau NeoPixel piloté par le périphérique RMT intermediaire Schéma : IMG-esp32-c3-intermediaire-1-neopixel-rmt-gpio.svg — Bandeau de 8 LED WS2812 alimenté en 5 V, données sur GPIO7 du ESP32-C3 via le périphérique RMT, masses communes reliées
  • Deep sleep et réveil RTC sur GPIO0 intermediaire Schéma : IMG-esp32-c3-intermediaire-2-deep-sleep-rtc-gpio0.svg — ESP32-C3 en deep sleep, bouton relié à GPIO0 (domaine RTC) réveillant la puce, consommation en microampères
  • Publicité BLE 5 en longue portée (Coded PHY) intermediaire Schéma : IMG-esp32-c3-intermediaire-3-ble5-advertise-long-range.svg — ESP32-C3 émettant une publicité BLE 5 sur PHY codé 125 kbit/s, ondes de portée doublée vers un smartphone
  • Wi-Fi + BLE 5 : mesurer la coexistence avance Schéma : IMG-esp32-c3-avance-1-wifi-ble5-coexistence.svg — ESP32-C3 mono-cœur avec radio unique 2,4 GHz, calendrier entrelaçant trames Wi-Fi et événements BLE
  • Strapping GPIO2/8/9 : le diagnostic de boot avance Schéma : IMG-esp32-c3-avance-2-strapping-gpio2-8-9-boot.svg — Broches de strapping GPIO2, GPIO8 et GPIO9 du ESP32-C3 échantillonnées au reset, niveaux attendus indiqués
  • ADC et bruit Wi-Fi : le moyennage qui sauve avance Schéma : IMG-esp32-c3-avance-3-adc-bruit-wifi-moyennage.svg — Lecture ADC sur ESP32-C3 avec et sans trafic Wi-Fi, bruit atténué par une moyenne sur 64 échantillons

Bibliothèque de code — exemples écrits pour cette carte

  • clignotante.ino Arduino

    Le test réflexe de la carte : la LED clignote à 1 Hz grâce à millis() au lieu de delay(), ce qui laisse la boucle disponible pour le Wi-Fi ou les capteurs. Le moniteur affiche aussi la mémoire libre,…

  • bouton-led.ino Arduino

    Un bouton entre GPIO4 et GND, tiré en l'air par la résistance interne : chaque appui franc est compté et affiché. Le filtre anti-rebond de 40 ms élimine les rebonds mécaniques qui feraient compter de…

  • respiration.ino Arduino

    Le PWM matériel (LEDC) génère la porteuse tout seul : analogWrite applique un rapport cyclique 0-255 et la LED respire sans consommer de temps CPU. La fréquence choisie évite le sifflement des pilote…

  • dht22.ino Arduino

    Le DHT22 fournit température et humidité sur un seul fil : la bibliothèque Adafruit décode les trames 40 bits, et le script ajoute le point de rosée. La cadence est volontairement de 2 s, maximum du …

  • oled-i2c.ino Arduino

    L'OLED SSD1306 est l'afficheur I2C universel : deux fils, aucune bibliothèque propriétaire. Le sketch écrit dans un framebuffer puis d'un seul display() — la bonne discipline pour éviter le scintille…

  • serveur-web.ino Arduino

    Le grand classique connecté : la carte sert une page HTML sur le réseau local, deux liens allument la LED, et un ADC apparaît en direct. Aucune infrastructure externe — le serveur tourne dans la cart…

  • ble-compteur.ino Arduino

    La carte devient un périphérique BLE : un service personnalisé expose un compteur d'appuis qu'un téléphone (nRF Connect) lit et suit par notifications. Le plus simple des scénarios radio sans point d…

  • servo.ino Arduino

    Le standard absolu de la mécanique : un servo MG90/SG90 balaie 0-180° piloté en PWM 50 Hz. Sur ESP32, la bibliothèque Servo s'appuie sur LEDC, donc presque n'importe quelle broche convient.

  • sommeil-profond.ino Arduino

    En sommeil profond, le SoC consomme quelques microampères : réveil par minute ou par appui, l'autonomie d'une pile tient des mois. RTC_NOINIT_ATTR garde le compteur de réveils entre deux remises à zé…

  • mesures.py MicroPython

    MicroPython tourne sur toutes ces cartes : pas de chaîne de compilation, on édite main.py et ça part. Ce logger DHT écrit du JSON ligne à ligne dans un fichier — le format que tout outil avalera ensu…

Exemples et dépôts trouvés en ligne