En 2020, Espressif décline sa gamme de SoC ESP32 en 3 familles de produits. L’ESP32-S2 est la nouvelle génération de SoC. Il est animé par un processeur Xtensa LX7 single-core 32-bit pouvant être cadencé jusqu’à 240MHz. L’ESP32-SOLO-1 destiné à des applications nécessitant peu de puissance et sur batterie est toujours présent. Enfin, la famille d’origine constituée des modèles WROOM et WROVER s’agrandie avec 4 nouvelles déclinaisons. Au total, les fabricants pourront choisir parmi 21 modèles
Les modules WROVER sont équipés d’un mémoire PSRAM pour les applications nécessitant des traitements numériques lourds (vidéo, détection faciale, FFT…). Les nouveaux ESP32-S2 Single Core disposent de 2MB de PSRAM. Les modules ESP32 Dual Core passe à la V3 (ESP32-D0WD-V3) et proposent 4, 8 ou 16 MB de mémoire flash ainsi que 8MB de PSRAM pour les WROVER.
Comme en 2019, il sera difficile de choisir une carte de développement surtout chez les petits cloneurs asiatiques qui donnent peu d’informations techniques sur le module ESP32 embarqué. Je vous conseille de rester sur des fabricants connus tel que LilyGo (marque TTGO), LoLin (Wemos), Sparkfun, Keyestudio, …
Sommaire
- 1 Quelle différence entre les modules ESP32 WROOM et WROVER ?
- 2 Nouveautés 2020
- 3 Modules ESP32-S2 disponibles depuis 2020
- 4 SoC ESP32 2019 actualisés en 2020
- 5 ESP32-SOLO-1
- 6 Spécifications techniques communes
- 7 Cartes de développement génériques
- 8 Les cartes obsolètes : Wemos, SparkFun, LoLin ESP32
- 9 Supports d’essai pour module ESP32 à souder
- 10 Prêts à vous lancer, voici une série de tutoriels pour bien débuter
- 11 Questions fréquentes
- 12 Abréviations
- 13 Mises à jour
Quelle différence entre les modules ESP32 WROOM et WROVER ?
La différence entre les modèles WROOM et WROVER se situe au niveau de l’intégration de la PSRAM (ou Ram Pseudo Statique SPI). Les modèles WROVER intègre de 2 à 8MB de PSRAM. Les modèles WROOM ne disposent pas de PSRAM.
A quoi sert la PSRAM ?
L’ESP32 dispose de quelques centaines de kilo-octets de RAM interne embarquée directement dans le SoC (SRAM). Si cette quantité de RAM est insuffisante, par exemple pour des applications de traitement vidéo ou de traitement du signal (FFT…), il est possible d’exploiter de la RAM externe (la PSRAM) accessible via le bus SPI.
Choisissez le modèle en fonction de la quantité de RAM nécessaire pour votre application, notamment pour des applications qui nécessitent un traitement vidéo
Différente entre la PSRAM et mémoire flash SPI
Attention, il ne faut pas confondre la mémoire flash SPI et la PSRAM.
La mémoire flash est un module mémoire externe soudé directement sur la carte de développement. Les données stockées sont conservée même lorsque le module ESP32 n’est pas alimenté. On accède à la mémoire flash via le bus SPI. C’est dans ce module mémoire que le fichier binaire du programme est stocké. Il est possible d’allouer une certaine quantité de la mémoire flash pour stocker des fichiers, par exemple les fichiers d’une interface HTML, images, fichiers audio, fichiers de configuration…
La PSRAM est une mémoire volatile qui l’on pourra utiliser pour étendre la mémoire de l’ESP32. Les données stockées ne sont pas persistantes. Elles sont effacées dès que le module ESP32 n’est plus alimenté.
Nouveautés 2020
Cette année, Espressif fait évoluer l’architecture interne des SoC ESP32 en intégrant un processeur Xtensa LX7 pour ces nouveaux modules ESP32-S2. L’architecture interne du LX7 est identique au LX6. Le LX7 apporte surtout un gain de performance au niveau du DSP intégré.
Architecture interne du processeur LX7 équipant les nouveaux ESP32-S2. Source : ip.cadence
Voici un petit tableau de synthèse qui permet de comparer les principales spécifications techniques. Architecture du core, fréquence du processeur, nombre de coeurs, nombre de broches (GPIO), quantité de mémoire flash et de PSRAM (varie en fonction du modèle) et la consommation électrique en veille (mode deep sleep).
Processeur Xtensa | Bluetooth | Core | Broches | Mémoire Flash (MB) | PSRAM (MB) | Deep Sleep* | |
ESP32-S2 | LX7 jusqu’à 240MHz | Non | x1 | 42 | 20 μA | ||
WROOM | ESP32-S2 | 4,8,16 | – | ||||
WROVER | ESP32-S2 | 4,8,16 | 2 | ||||
Mini | ESP32-S2FH4 | ||||||
ESP32 | LX6 80 ~ 240MHz | Oui | x2 | 38 | 5 μA | ||
WROOM | 4,8,16 | – | |||||
WROVER | 4,8,16 | 8 | |||||
ESP32-SOLO-1 | LX6 @ 160MHz | x1 | 38 | 4 | – | 5 μA |
(*) consommation électrique en veille annoncée par Espressif
Modules ESP32-S2 disponibles depuis 2020
Spécifications techniques communes :
- Core ESP32-S2 Single Core @ 160 MHz
- Connectivité : Wi-Fi + Bluetooth LE
- GPIO 42 broches : UART, GPIO, I2C, I2S, SDIO, PWM, ADC, SPI
SoC ESP32 2019 actualisés en 2020
Cette année Espressif annonce une plus grande stabilité des Cores qui passent à la V3 pour l’occasion. Le SoC pourra embarquer 4, 8 ou 16MB de mémoire flash. En 2019, la mémoire flash était fixe et limitée à 4MB.
Les modèles 2019 sont toujours disponibles. Pour mémoire, Espressif recommandait les modules WROOM-32D et WROOM-32U.
Spécification communes à tous les modules :
- Dual Core cadencé de 80 à 240 MHz
- Connectivité : Wi-Fi + Bluetooth LE supportant les protocoles L2CAP, GAP, GATT, SMP, GATT (BluFi, SPP-like…)
- GPIO 38 broches
Les modèles recommandés sont en gras
ESP32-SOLO-1
Single Core LX6 cadencé à 160MHz à faible consommation adapté pour les applications multimédia (streaming audio, décodage MP3).
Image | Désignation / Chipset | Pins | Mémoire flash (MB) | Mémoire PSRAM (MB) | Antenne |
ESP32-SOLO-1
ESP32-S0WD |
38 | 4 | – | PCB |
Spécifications techniques communes
Toutes les caractéristiques techniques des modules se trouvent sur ce document disponible au format PDF. Ce document compile les spécifications techniques des modules suivants :
- ESP32-D0WD-V3
- ESP32-D0WDQ6-V3
- ESP32-D0WD
- ESP32-D0WDQ6
- ESP32-D2WD
- ESP32-S0WD
- ESP32-U4WDH
Tous les Cores partagent la plupart des caractéristiques. Les différences sont notées en gras
- Connectivité
- WiFi 802.11 b/g/n conforme à la norme IEEE 802.11 compatible avec les sécurités WFA, WPA/WPA2 et WAPI
- Connecteur IPEX (U.FL) pour antenne externe : choisir les modules avec le “I” dans la référence
- Bluetooth 4.0 LE et BR/EDR supportant les protocoles L2CAP, GAP, GATT, SMP, GATT (BluFi, SPP-like…)
- Entrées/Sorties
- ESP32 : x38
- 26x E/S digitales (3.3V). Toutes les sorties peuvent être PWM
- 18x entrées analogiques
- 3x UART
- 3x SPI
- 2x I2S
- 2x DAC
- 2x I2C
- ESP32-S2 : x42
- ESP32-S2-Mini : x46
- ESP32 : x38
- Capteurs intégrés
- Effet Hall
- 10x entrées pour interface tactile capacitive
- Protection cryptographique : AES, SHA-2, RSA, ECC, random number generator (RNG)
Voici également le repérage général des broches. Comme vous pouvez le constater, contrairement à l’Arduino, la quasi totalité des broches supportent le PWM (Pulse With Modulation). Par contre pas d’évolution concernant la tension d’entrée et de sortie, elle est toujours de 3,3V.
Les broches sont identiques quelque soit le core embarqué par le module ESP32. La compatibilité avec les adaptateurs est donc conservée y compris pour les nouveaux modules.
Cartes de développement génériques
ESP32-WROOM-32
Ce sont des cartes de développement économique qui pourront convenir pour l’apprentissage et la mise au point de projet. On peut s’équiper maintenant pour moins de 4€.
Attention toutefois à la largueur de certaines cartes de développement. Il ne reste qu’une seule rangée de broche accessible sur la breadboard. Ce n’est pas très pratique pour le câblage !
Cartes de développement ESP32-WROVER-B
Le Core du ESP32-WROVER-B est cadencé à 160MHz au lieu de 240Mhz. Le ESP32-WROVER-B est équipé de 8MB de mémoire PSRAM. L’antenne est gravée sur le PCB. C’est le SoC le plus utilisé par les fabricants pour le développement de cartes avec un module caméra OV2640 du fabricant Omnivision.
Le fabricant chinois LilyGo qui commercialise ses cartes sous la marque TTGO est le principal fabricant de cartes équipées de l’ESP32-WROVER-B.
Pour le moment aucun fabricant low cost n’a opté pour le ESP32-WROVER-IB qui est équipé d’un connecteur IPEX pour antenne externe
Carte de développement avec connectivité LoRa (+GPS)
LiLyGo (TTGO) est devenu le spécialise des cartes de développement ESP32 équipée d’une connectivité LoRa. La carte TTGO T-Beam embarque également un module GPS NEO-6M du fabricant u-box (documentation), un support pour batterie 18650 et un écran OLED SSD1306
Les cartes obsolètes : Wemos, SparkFun, LoLin ESP32
La plupart des cartes de développement étant développée sous licence Open Source, On Trouve encore sur les sites marchands chinois des cartes d’ancienne génération. Ces cartes sont équipées des la première génération de module ESP-WROOM-32. Ce module n’est plus fabriqué par Espressif.
C’est par exemple l’ancienne Wemos LoLin32 présentée dans cet article. Elle était équipée de 4MB de mémoire flash et d’un connecteur micro USB pour la programmation et d’un connecteur pour batterie LiPo externe.
Wemos a changé de nom en 2018 pour devenir LoLin (store officiel sur AliExpress). A force d’être copié par de nombreux fabricants alternatifs, la marque originale est devenu invisible. LoLin commercialise encore deux cartes équipées d’un ESP-WROOM. La LoLin D32 et la LoLin D32 Pro avec connecteur pour écran TFT et I2C, lecteur de carte micro-SD, connecteur pour batterie LiPo.
Présentation |
Le carte SparkFun ESP32 Thing est toujours commercialisée mais son prix reste excessif (30€ environ). Si vous êtes un passionné de la marque, opté directement pour la nouvelle génération SparkFun Thing Plus équipée d’un ESP32-WROOM
SparkFun Thing Plus
La LoLin ESP32 qui proposait un équivalent de la Wemos d1 Mini n’est plus commercialisée. Elle était vendue seule ou sous la forme d’un kit (environ 45€) comprenant une base double, shield DHT11, DHT22, relai, 4x Led WS2812B, éclairage annulaire 12x Led, proto
Supports d’essai pour module ESP32 à souder
Si la compacité de la carte de développement est primordiale pour votre projet, il existe des cartes très compactes ou des supports amovibles. N’oublions pas que l’ESP32 intègre également le Bluetooth ce qui permet de réaliser des montages moins couteux et plus compacts qu’en partant d’un Arduino nano V3 combiné à un module Bluetooth HC-06. Un module Bluetooth HC-06 coûte à lui seul 50% d’une carte de développement ESP32 !
DIY MORE commercialise par exemple cette carte qui mesure approximativement 2cm de coté pour environ 15€. Il faudra acheter le module ESP-WROOM-32 séparément. Un système astucieux de ressort de cuivre permet de maintenir le module sans avoir besoin de le souder. Il faudra toutefois réserver ce montage pour la phase de développement. Cette carte peut aussi convenir à des projets sans chocs ni vibrations.
Si la soudure et la conception de circuit ne vous pose pas de problème, rien ne vous empêche de partir sur la solution Module ESP32 + adaptateur. On trouve des kits à partir de 5,90€ environ. Attention au module, bien souvent c’est un ESP-32S qui est livrée dans le kit.
Un bon logiciel de conception de circuit en ligne tel que EasyEDA et c’est parti ! Voici quelques modules WROOM-32D et WROOM-32U à souder.
Module WROOM-32D à souder
Module WROOM-32U à souder
Prêts à vous lancer, voici une série de tutoriels pour bien débuter
Voici une série de tutoriels pour bien débuter avec les objets connectés.
Questions fréquentes
ESP32S cette désignation ne correspond à aucun module d’Espressif. Cette désignation utilisée jusqu’en 2018 perdure encore aujourd’hui. Elle est souvent utilisée par les fabricants asiatiques de cartes génériques.
Abréviations
PCB : l’antenne est gravée sous la forme d’une piste sur le circuit
IPEX : connecteur au standard IPEX (U.FL) permettant la connexion d’une antenne externe permettant d’augmenter la portée d’emission / réception.
Mises à jour
[18/05/2020] Le module ESP32-SOLO1 disparait. Correction, pas de bluetooth pour les modules ESP32-S2, merci adricorse ! Le ESP32-PICO-D4 vendu sous la forme d’un boitier est de nouveau disponible depuis mai 2020
[30/04/2020] Actualisation des modules en 2020. Entrée des nouveaux modules ESP32-S2 Single Core dans la gamme.
[07/05/2019] Mise à jour de l’article avec les modules ESP32 disponibles en 2019
- ESP32, broches GPIO et fonctions associées. I/O, PWM, RTC, I2C, SPI, ADC, DAC
- M5Stack Atomic GPS. Tracker ESP32 TinyGPS++, export GPX sur carte SD, visualisation sur Google Maps ou VSCode
- Stocker des données sur une carte micro SD. Code Arduino compatible ESP32, ESP8266
- Débuter Arduino. Recevoir des commandes depuis le port série (compatible ESP32 ESP8266)
- Fonctions C++ print•println•printf•sprintf pour Arduino ESP32 ESP8266. Combiner•formater → port série
Avez-vous aimé cet article ?