Quel ESP32 choisir pour développer des objets connectés DIY en 2020

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

 

Article en cours d’actualisation…..

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 sa carte de développement surtout chez les petits cloneurs asiatiques qui donnent peu d’informations techniques sur le module ESP32 embarqué par la carte. Je vous conseille de rester sur des fabricants connus tel que LilyGo (marque TTGO), LoLin (Wemos), Sparkfun, Keyestudio, …

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

xtensa lx7 architecture esp32

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 @ 160MHz Non x1 42 20 μA
WROOM 4,8,16
WROVER 4,8,16 2
ESP32 LX6 80 ~ 240MHz Oui x2 38 5 μA
VROOM 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 Mémoire flash (MB) Mémoire PSRAM (MB) Antenne
ESP32-S2-WROOM ESP32-S2-WROOM 4,8,16 PCB
ESP32-S2-WROOM-I ESP32-S2-WROOM-I 4,8,16 PCB + IPEX
ESP32-S2-WROVER ESP32-S2-WROVER 4,8,16 2 PCB
ESP32-S2-WROVER-I ESP32-S2-WROVER-I 4,8,16 2 PCB + IPEX

Modules ESP32 disponibles depuis 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
esp32-wroom-32 ESP32-WROOM-32E

ESP32-D0WD-V3

48 4,8,16 PCB
esp32-wroom-32 ESP32-WROOM-32UE

ESP32-D0WD-V3

48 4,8,16 PCB + IPEX
esp32-wroom-32 ESP32-WROVER-E

ESP32-D0WD-V3

48 4,8,16 8 PCB
esp32-wroom-32 ESP32-WROVER-IE

ESP32-D0WD-V3

48 4,8,16 8 IPEX
esp32-wroom-32 ESP32-WROOM-32

ESP32-D0WDQ6

48 4 PCB
ESP32-WROOM-32D ESP32-WROOM-32D

ESP32-D0WD

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

ESP32-D0WD

38 4 8 IPEX
esp32-wrover-i-01 ESP32-WROVER

ESP32-D0WDQ6

48 4 8 PCB
esp32-wrover-i-01 ESP32-WROVER-I

ESP32-D0WDQ6

48 4 8 PCB + IPEX
esp32-wrover-b ESP32-WROVER-B

ESP32-D0WD

48 4 8 PCB
ESP32-WROVER-IB

ESP32-D0WD

48 4 8 PCB + IPEX
esp32-pico-d ESP32-PICO-D4 48 4

ESP32-SOLO-1 (retiré)

Le module ESP32_SOLO1 a été retiré de la liste en mai 2020.

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-solo1 ESP32-SOLO-1

ESP32-S0WD

38 4 PCB

Différence entre WROOM et WROVER

La différence entre les modèles WROOM et WROVER se situe au niveau de l’intégration de PSRAM (ou Ram Pseudo Statique SPI). Les modèles WROVER intègre de 2 à 8MB de PSRAM. Les modèles WROOM n’ont pas de PSRAM.

A quoi sert la PSRAM ?

L’ESP32 dispose quelques centaines de kilo-octets de RAM interne embarqué 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.

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

ESP32 espressif Pinout broche esp-wroom-32

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 ESP32 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

Attention les cartes LoRa sont encore équipées d’un module ESP32 rev.1 d’ancienne génération.

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 esp32 lolin32 breadboard

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.

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_ESP32_WROOM-01

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

lolin esp32 wemos kit

 

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.

esp32 diy more development board

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.

esp32s adapter board

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 ?
[Total: Moyenne: ]
A lire aussi
9 Commentaires
  1. Je n’ai rien trouvé dans les documents qui indique que le ESP32-S2 intègre le bluetooth, c’est vraiment le cas ?

    • Absolument, grosse erreur de ma part, je suis complètement passé à coté. Pas de Bluetooth pour le S2 ! Merci beaucoup, je corrige immédiatement.

  2. question entrées/sortie, vous signalez 26x E/S digitales (3.3V) et
    18x entrées analogiques, ce qui ferait … 44 pins ?

    merci de confirmer/infirmer en particulier le nb d’entrées analogiques, svp

  3. Je n’ai jamais touché à l’ESP8266 ni ESP32 mais uniquement à des cartes Arduino. Dans le cadre d’un nouveau dev, pensez vous qu’il faut mieux partir sur l’ESP8266 ou directement s’orienter vers le nouveau ESP32 ?

    • Bonjour Julien. La programmation de l’ESP8266 est globalement identique à celle d’un Arduino. Pour débuter, je vous conseille l’ESP8266 plus ancien et donc avec beaucoup plus d’exemples. L’ESP32 est encore en cours de développement. Le bluetooth par exemple est très peu pris en charge. Par contre si vous avez besoin de plus de 11 E/S ou plus d’une entrée analogique, alors prenez un ESP32. J’ai une préférence pour la LoLin32 de Wemos http://s.click.aliexpress.com/e/rRbqbqn car elle est étroite (comme la Wemos d1 mini). Ce sera plus facile (et plus compact) que d’ajouter une carte d’extension. Si vous avez encore besoin de conseils, n’hésite pas. A très bientôt

      • Merci pour votre réponse. N’y a t il pas un risque que l’ESP8266 disparaisse un jour proche si je veux dupliquer le projet ?
        J’ai pour projet de faire une régulation pour mes capteurs solaires thermique donc principalement du relevé de température via PT1000 et action de relais pour pompe en 220V. En regardant la doc, je me rends compte qu’il est possible d’avoir une connexion RJ45 sur l’ESP32 (ce qui ne semble pas être le cas de l’ESP8266). Ceci m’intéresse grandement (j’étais justement initialement parti sur l’OrangePi Zero un peu pour cela…). Je viens de voir qu’OLIMEX proposait une carte de dev avec Ethernet (https://www.olimex.com/Products/IoT/ESP32-EVB/open-source-hardware). Connaissez vous un autre moyen pour adapter facilement un RJ45 sur l’ESP32 (ou une autre carte qui possèderait les mêmes features) ?

        • Alors dans ce cas, vous avez meilleur temps de rester sur Arduino et ajouter un shield RJ45 (carte d’extension) W5100 http://s.click.aliexpress.com/e/VJemAai. L’intérêt de l’ESP8266 est de disposer d’une connexion WiFi et d’exécuter directement du code Arduino. Donc même si en théorie l’ajout d’une carte RJ45 est possible, ce n’est pas très répandu. L’Orange Pi (comme le Raspberry Pi) fonctionne sur Linux. Il y a des avantages et des inconvénients (on peut considérer que le prix est identique). Puissance, langage de programmation évolué, GPIO, serveur Web, base de données… par contre il faut le protéger des coupures de courant (sinon adieu la carte SD) et accepter le temps de démarrage de l’OS (20 secondes), immédiat pour un microcontroleur.

  4. Je rêve qu’un de ces jours, un développeur nous fasse un genre de ESPEasy pour ESP32 pour les cancres en programmation et débordés comme moi…
    Non pas que je n’aime pas bidouiller du code mais le travail réalisé pour l’ESP8266 comme ESPeasy est tellement agréable et simple d’utilisation 😉

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Domotique et objets connectés à faire soi-même