Quel ESP32 choisir pour développer des objets connectés DIY en 2020 • Domotique et objets connectés à faire soi-même

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, …

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é.

rkq85d2j998ew3kfolvj-2246737

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
Image Désignation / Chipset Broches Mémoire flash (MB) Mémoire PSRAM (MB) Antenne
lpgpxc5olig43gg4a7jb-2686029 ESP32-S2-WROOM

ESP32-S2

42 4,8,16 PCB
no2dxsomoxqgbdhdxh5s-8505099 ESP32-S2-WROOM-I

ESP32-S2

42 4,8,16 PCB + IPEX
5ccmbsvtflr0vknotzbk-1932211 ESP32-S2-WROVER

ESP32-S2

42 4,8,16 2 PCB
2hagqevmmjczfsirno1c-6684785 ESP32-S2-WROVER-I

ESP32-S2

42 4,8,16 2 PCB + IPEX
4xjrlwg8wj1hnvh1eoru-4993774 ESP32-S2-MINI-1

ESP32-S2FH4

46 4Mo intégré au Chip PCB
sqposm6xxued5iz9vaop-3124119 ESP32-S2-MINI-1U

ESP32-S2FH4

46 4Mo intégré au Chip IPEX

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

Image Désignation / Chipset Pins Mémoire flash (MB) Mémoire PSRAM (MB) Antenne
2xrvobob7hmbcn0pwyrn-6826684 ESP32-WROOM-32E

ESP32-D0WD-V3

48 4,8,16 PCB
2xrvobob7hmbcn0pwyrn-6826684 ESP32-WROOM-32UE

ESP32-D0WD-V3

48 4,8,16 PCB + IPEX
2xrvobob7hmbcn0pwyrn-6826684 ESP32-WROVER-E

ESP32-D0WD-V3

48 4,8,16 8 PCB
2xrvobob7hmbcn0pwyrn-6826684 ESP32-WROVER-IE

ESP32-D0WD-V3

48 4,8,16 8 IPEX
2xrvobob7hmbcn0pwyrn-6826684 ESP32-WROOM-32

ESP32-D0WDQ6

48 4 PCB
5ogyr5rckemtgzb8htce-1705500 ESP32-WROOM-32D

ESP32-D0WD

48 4 PCB
gf81ydnhjbli7qprka8z-3165996 ESP32-WROOM-32U

ESP32-D0WD

38 4 8 IPEX
uma9fl6k3conegprf930-4857083 ESP32-WROVER

ESP32-D0WDQ6

48 4 8 PCB
uma9fl6k3conegprf930-4857083 ESP32-WROVER-I

ESP32-D0WDQ6

48 4 8 PCB + IPEX
ckaagl2jneyw6ihmlinp-6149812 ESP32-WROVER-B

ESP32-D0WD

48 4 8 PCB
pse3pejgj03nmuus0alp-7378363 ESP32-WROVER-IB

ESP32-D0WD

48 4 8 PCB + IPEX
vwfvbphhplot36ygrem5-4947952 ESP32-PICO-D4 48 4

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
i52girt4zeabe7igcstd-1282203 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
  • 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.

xk8n5udfzaez2b6c1qnp-5037621

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€.

Voir plus d’offres

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.

Voir plus d’offres

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.

cpogwu5fjummmxyg68qv-8998095

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.

kq2xeh6qnk68amvzglil-3161985

Présentation

0sw92m5sdyozdead3faa-3412060Pré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

wclsi5bcgynrvn5ahdcn-7752362

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

jpyu8idibwktmzroiu8o-5212916

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.

qtivmn02uwupm1kxyz9a-7605576

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.

3cynx1eclqtvwsuortqr-9002324

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

Avez-vous aimé cet article ?