# ESP8266 : panorama du SoC, des modules et des cartes de développement ## Présentation L'**ESP8266** est un microcontrôleur économique intégrant nativement une interface **Wi-Fi 2,4 GHz** (IEEE 802.11 b/g/n) et une pile **TCP/IP**. Il est conçu et commercialisé par **Espressif Systems**, une société chinoise basée à Shanghai et présente à l'international (États-Unis, Inde, République tchèque, Brésil, Singapour). Lancé fin **2014**, l'ESP8266 a connu un succès très rapide grâce à un rapport prix / fonctionnalités sans précédent : pour quelques euros, il met à disposition un microcontrôleur 32 bits cadencé à 80 MHz et une connectivité Wi-Fi complète. Sa version la plus connue, l'**ESP-01**, est devenue la porte d'entrée standard vers l'IoT pour le grand public. Le SoC a depuis été complété par la famille **ESP32** (cœur Xtensa LX6/LX7 dual-core, Bluetooth en plus du Wi-Fi), puis par les **ESP32-Cx / ESP32-Sx / ESP32-Hx**, mais l'ESP8266 reste massivement utilisé pour les projets simples et peu gourmands. ## Trois niveaux à ne pas confondre Avant d'entrer dans les spécifications, une clarification utile sur le vocabulaire — fréquemment mélangé dans la documentation amateur : | Niveau | Définition | Exemples | |---|---|---| | **SoC** *(System on Chip)* | Le circuit intégré nu, vendu par Espressif. | ESP8266EX | | **Module** | Un petit PCB qui embarque le SoC, sa flash, son antenne et un brochage standardisé. | ESP-01, ESP-12E, ESP-WROOM-02 | | **Carte de développement** | Une carte plus large qui embarque un module + un USB-série + un régulateur + des boutons + des broches au pas standard. | NodeMCU, WeMos D1 mini, Adafruit HUZZAH | L'ESP-01 est donc un *module* (vendu par AI-Thinker), pas un SoC ni une carte de développement à proprement parler. ## Spécifications techniques du SoC ESP8266EX ### Processeur - cœur **Tensilica Xtensa LX106**, RISC 32 bits ; - cadencé à **80 MHz** par défaut, **160 MHz** en mode overclock logiciel. ### Mémoire - **32 Kio** d'IRAM (instructions) ; - **32 Kio** de cache d'instructions ; - **80 Kio** de RAM utilisateur ; - **16 Kio** de RAM système réservée à l'ETS ; - pas de ROM ni de flash interne : le code est chargé depuis une **flash SPI externe** (QSPI) pouvant atteindre **16 Mio**, généralement comprise entre 512 Kio et 4 Mio sur les modules vendus. ### Radio Wi-Fi - norme **IEEE 802.11 b/g/n** (2,4 GHz uniquement) ; - chiffrement **WEP, WPA, WPA2** (mais pas WPA3) ; - modes **station**, **point d'accès** et **mixte (STA+AP)** ; - bloc RF intégré (TR switch, balun, LNA, PA, matching network) — le module n'a besoin que de son antenne. ### Périphériques - **17 GPIO** théoriques au niveau du SoC (mais beaucoup sont préemptées par la flash SPI ou non exposées sur les modules courants) ; - **SPI** matériel ; - **I²C** logiciel (bit-banging, pas de contrôleur dédié) ; - **I²S** avec DMA ; - **UART** matérielle complète sur des broches dédiées ; un second UART en émission seule peut être activé sur GPIO2 ; - un **ADC 10 bits** unique, par approximations successives, lisible sur la broche TOUT/ADC0. ### Alimentation - tension d'alimentation **3,0 à 3,6 V** (nominal 3,3 V) ; - pics de courant pouvant atteindre **environ 300 mA** lors des émissions Wi-Fi. ## Modules à base d'ESP8266 Deux familles principales coexistent. AI-Thinker a inondé le marché avec la série « ESP-0x / ESP-1x », pendant qu'Espressif a publié sa propre gamme « ESP-WROOM » plus tardive. ### Modules AI-Thinker ![Logo AI-Thinker](ai-thinker.png) AI-Thinker a produit une longue série de modules, qui se distinguent essentiellement par leur **facteur de forme**, leur **antenne** (PCB, céramique, IPEX), leur **nombre de broches exposées** et la **taille de la flash** soudée. Les plus connus : | Module | Particularités | |---|---| | **ESP-01** | Le plus compact, 8 broches, antenne PCB, 1 Mo de flash sur les versions noires. Le plus économique, mais GPIO très limités. | | **ESP-01S** | Version améliorée de l'ESP-01, généralement 1 Mo de flash et LED câblée différemment. | | **ESP-07** | 16 broches, antenne céramique + connecteur IPEX pour antenne externe, blindage RF. | | **ESP-12E / ESP-12F / ESP-12S** | Format SMD 22 broches, blindé, antenne PCB. Base de la quasi-totalité des cartes NodeMCU et WeMos. | Les autres références (ESP-02 à ESP-11, ESP-13, ESP-14) existent mais ont peu percé en pratique. La plupart sont aujourd'hui difficiles à trouver et n'ont pas d'intérêt particulier face aux ESP-12x. ### Modules Espressif ![Logo Espressif](espressif-logo-pratik-panda-clients-2.png) Espressif a publié sa propre gamme « WROOM » certifiée FCC/CE, souvent privilégiée pour les produits commerciaux : | Module | Antenne | |---|---| | **ESP-WROOM-02** | PCB | | **ESP-WROOM-02D** | PCB (version révisée) | | **ESP-WROOM-02U** | Connecteur U.FL pour antenne externe | | **ESP-WROOM-S2** | Variante avec SDIO | Liste détaillée et historique des modules sur Wikipédia : ## Cartes de développement Les cartes de développement embarquent un module ESP8266 et tout le nécessaire pour démarrer immédiatement : convertisseur USB-série, régulateur 3,3 V, boutons RESET et FLASH, broches au pas de 2,54 mm, parfois LED utilisateur. ### NodeMCU ![Brochage NodeMCU v3](nodemcuv3.0-pinout.jpg) La carte la plus populaire de la famille. Elle existe en plusieurs révisions : - **v0.9** : module ESP-12, format « large » 47 mm de large ; - **v1.0** (DEVKIT v1.0) : module ESP-12E, USB-série CP2102, format normalisé ; - **v3** (« LoLin » et clones) : module ESP-12E ou ESP-12F, USB-série CH340. C'est la version la plus répandue, bien que la numérotation « v3 » soit purement commerciale (non officielle). La carte expose la plupart des GPIO du module sous des noms **D0 à D8** propres à NodeMCU, qui ne correspondent **pas** directement aux numéros GPIO de l'ESP8266. Une table de correspondance est indispensable : | Étiquette NodeMCU | GPIO ESP8266 | |---|---| | D0 | GPIO16 | | D1 | GPIO5 | | D2 | GPIO4 | | D3 | GPIO0 | | D4 | GPIO2 (LED interne) | | D5 | GPIO14 | | D6 | GPIO12 | | D7 | GPIO13 | | D8 | GPIO15 | ### WeMos D1 mini Format compact (34 × 25 mm), module ESP-12F, USB-série CH340. Compatible mécaniquement avec un large écosystème de **shields** empilables (relais, OLED, batterie, capteur DHT…). C'est aujourd'hui la carte la plus utilisée pour des projets domotiques. ### Adafruit HUZZAH Carte haut de gamme avec module ESP-12E, régulateur 500 mA, niveau logique compatible avec une logique 5 V via résistances de pull-up. Idéale pour prototyper de manière fiable, mais plus chère et nécessite un FTDI externe sur la version sans USB. ### Espressif ESP-12E (module) Le module ESP-12E n'est pas une carte de développement à proprement parler : c'est le module SMD soudé sur la majorité des NodeMCU et WeMos. Son brochage est cependant utile à connaître lorsqu'on veut concevoir sa propre carte autour de lui. ![Brochage du module ESP-12E](20220128-104522.png) ### DOIT ESP-12F Carte de prototypage à base de module ESP-12F, comparable à une NodeMCU v3, parfois vendue sous le nom **DOIT DevKit V1**. ## Pour aller plus loin - [L'ESP-01 : présentation et premiers pas](https://varlog.a5l.fr/post/esp-01-presentation-premiers-pas) - [Premier programme ESP-01 : afficher les informations système](https://varlog.a5l.fr/post/esp-01-premier-programme) - [ESP8266 : commandes AT](https://varlog.a5l.fr/post/esp8266-commandes-at) - Documentation officielle Espressif : - Article Wikipédia (en anglais), plus complet : ```