Ignorer et passer au contenu

Livraison offerte à partir de 50€ d'achats, livrée sous 48h !

Livraison à partir de seulement 2.50€ !

Contents Menu Expand Light mode Dark mode Auto light/dark mode

uPesy ESP32 Wroom Low Power DevKit v1.0

(Mis à jour le 06/03/2023)

Sélectionnez la version de votre carte mentionnée au verso: Rev x.y

Voir aussi

Si vous venez de recevoir une carte uPesy ESP32 Wroom Low Power DevKit, je vous conseille d’abord de regarder le guide de prise en main rapide , si ce n’est pas déjà fait.

Voici la documentation technique de la carte uPesy ESP32 WROOM Low Power DevKit. Il s’agit d’une variante de la carte uPesy ESP32 Wroom Devkit optimisée pour minimiser la consommation de courant lorsque l’ESP32 est en mode Deep Sleep (en veille profonde). Les tests effectués sur différents modèles, montre une consommation comprise entre 8 et 15µA , ce qui la place dans le haut du podium des cartes ESP32 les plus économes en Deep Sleep .

carte upesy esp32 wroom low power en Deep Sleep

uPesy ESP32 Wroom Low Power Devkit

Sur certains modèles, la consommation en mode Deep Sleep n’est que de 9µA !

graphique consommation courant esp32 deep sleep

Mesure de courant moyen lorsque l’ESP32 est en Deep Sleep via une batterie

Pinout

Le brochage est très similaire aux autres cartes uPesy ESP32. Pour rappel, chaque broche de la carte uPesy est identifiable par un numéro GPIOxx qui permet de connaître ses fonctionnalités. Vous recevez avec la carte un schéma sur le brochage sous forme papier. Voici la version complète :

schéma des broches de l’uPesy ESP32 Wroom Low Power complet

Pinout complet de la carte uPesy ESP32 Wroom Low Power Devkit

Note

Les pins 36, 39, 34, à savoir les pins GPIO36, GPIO39, GPIO34, ne peuvent être utilisés qu’uniquement en entrée. Ils n’ont pas non plus de résistances pullup internes (On ne peut pas utiliser pinMode(36, INPUT_PULLUP) ).

Avertissement

Contrairement à la carte uPesy Wroom DevKit, le pin GPIO35 ne peut pas être utilisé, car celui-ci sert à mesurer la tension en entrée du régulateur, pour mesurer la tension de la batterie par exemple. Le résultat de la mesure est accessible via le code.

Avertissement

Il n’y a pas non plus de LED bleue sur le pin GPIO2 !

Si vous n’êtes pas à l’aise avec les pins GPIO de l’ESP32, je vous conseille de lire la documentation de la carte ESP32 basique d’uPesy, puis de compléter par la lecture du fonctionnement détaillé des broches de l’ESP32 .

Le connecteur pour la batterie externe est du type JST PH 2.0 (avec un pas de 2 mm)

Caractéristiques

La carte uPesy ESP32 WROOM Low Power DevKit peut être découpée en 4 principaux blocs :

  • Le module ESP32

  • Le convertisseur USB vers UART

  • La gestion de l’alimentation

  • La connectique

Module ESP32

Le cerveau de la carte est l’ESP32 : un microcontrôleur puissant fabriqué par Espressif . Sur cette carte, un module WROOM est utilisé (comme indiqué dans le nom de la carte 🤔). Il contient un chip ESP32 et un circuit élémentaire pour le faire fonctionner.

Vous trouverez toutes les informations techniques qui vous intéressent dans les datasheets du fabricant:

Convertisseur USB/UART

Puisque l’ESP32 ne comprend pas le protocole USB, un chip de Silicon Labs, le CP2102 joue le rôle de traducteur avec l’ordinateur. Il est nativement supporté par Windows, MacOS et Linux. Il n’y a donc pas besoin d’installer de driver supplémentaire, comme cela pourrait être le cas avec un CH340G.

Note

Si vous rencontrez l’erreur “A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header”, vous pouvez essayer de rajouter un condensateur de 10 µF entre la broche EN et GND . Sinon il faudra utiliser la solution manuelle, décrite un peu plus bas.

Gestion de l’alimentation

Cette section de la carte est responsable de la gestion de l’alimentation. Elle contient entre autres un régulateur de tension 3.3V ainsi que des protections. Son fonctionnement sera détaillé dans la section Utilisation . Les composants ont été soigneusement choisis pour consommer un minimum de courant lorsque la carte est alimentée par batterie ou via une alimentation externe.

Connectique

Le connecteur USB-C permet d’alimenter la carte et de communiquer avec l’ordinateur. Il permet notamment de téléverser un programme, d’envoyer des messages via print()

Note

Il faut s’assurer d’utiliser un câble USB qui laisse transiter les données, et non pas un qui sert uniquement à charger un appareil.

Les 2 boutons EN et BOOT de la carte permettent de contrôler l’état de l’ESP32:

  • EN : Ce bouton, appelé parfois RESET permet de redémarrer de force l’ESP32.

  • BOOT : L’utilisation seule de ce bouton n’a pas aucun effet lorsque l’ESP32 est déjà allumé. Il agit sur son comportement lors du démarrage (lors du boot).

On peut utiliser ces boutons pour mettre manuellement l’ESP32 en mode FLASH , mode qui permet de charger un nouveau programme sur l’ESP32. Normalement, l’ESP32 se met automatiquement dans ce mode lorsque le téléversement se fait via USB grâce au convertisseur CP2102.

Astuce

C’est en général la solution manuelle de secours, lorsque l’on n’arrive pas à résoudre l’erreur : A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header

Pour ce faire, lorsque l’étape de connexion avec l’ESP32 arrive :

Connecting........_____....._____....._____....._____....._____....._____....._____....._____....._____....._____

Il faut réaliser la combinaison suivante :

  • Maintenir appuyé en même temps les boutons EN et BOOT pendant 2 secondes.

  • Relâchez le bouton EN tout en maintenant BOOT appuyé pendant 2 secondes.

  • Relâchez le bouton BOOT

manipulation Failed to connect to ESP32: Timed out waiting for packet header

Manipulation pour activer le mode FLASH de l’ESP32 manuellement

Utilisation

Tolérance en tension des pins

  • L’ESP32 est un microcontrôleur qui fonctionne en 3.3V. Les niveaux logiques sont donc de 0 et 3.3V et non pas de 0 et 5V. C’est-à-dire que la tension en sortie des pins GPIO est de 3.3V et la tension en entrée ne doit pas excéder 3.3V. Les pins GPIO ne sont pas prévus pour avoir des niveaux logiques de 5V .

  • La tension mesurée par le convertisseur analogique numérique ne doit pas non plus excéder 3.3V (et pas non plus négative bien sûr).

Note

La plupart des modules/capteurs peuvent fonctionner avec des niveaux logiques de 3.3V, mais si ce n’est pas le cas, des levels shifters (ou a minima des ponts diviseurs de tension) seront nécessaires pour passer d’une tension de 3.3V à 5V et vice versa.

Avertissement

Puisque l’ESP32 n’a pas été prévu pour recevoir du 5V sur ces pins GPIO, les pins de l’ESP32 peuvent être endommagés s’ils sont exposés trop longtemps à cette tension.

Les différents modes d’alimentation

Il y a 3 façons d’alimenter la carte ESP32 Low Power, dont 2 sont optimisées pour la consommation de courant :

  • Via USB (\(V_{BUS}\) ) : On connecte la carte via son connecteur USB-C à un ordinateur ou à un chargeur de téléphone adéquat. Une LED rouge s’allume dès la mise sous tension. Ce mode d’alimentation n’est pas optimisé pour la consommation de courant.

  • Via une batterie externe (\(V_{BAT}\) ) : On connecte une batterie Lithium-ion/LiPo de 3.7V sur le connecteur JST PH 2.0. Si l’on branche l’USB en même temps, la carte recharge la batterie. Ce mode d’alimentation est optimisé pour la consommation de courant : la consommation sera < 15µA en Deep Sleep.

    carte esp32 alimentée par battery lipo lithium ion de 3.7V

    Carte ESP32 alimentée par batterie

  • Via une alimentation externe (\(V_{IN}\) ) : On connecte sur la broche \(V_{IN}\) de la carte ESP32 une alimentation externe avec une tension comprise entre 3.5V et 7V maximum . Ce mode d’alimentation est optimisé pour la consommation de courant : la consommation sera également < 15µA en Deep Sleep.

Note

Dans les modes d’alimentation optimisés, aucune LED s’allume lorsque la carte est sous tension . En effet, même une simple LED consomme quelques mA.

Fonctionnement des modes d’alimentation

Puisqu’il y a plusieurs chemins d’alimentations possibles, voici des explications supplémentaires sur leurs interactions:

circuit électrique des différents mode d’alimentations

Schéma électrique de la gestion des chemins d’alimentation

  • Dès que l’on alimente la carte par USB, une éventuelle alimentation externe qui serait branchée sur la broche \(V_{IN}\) ou bien une batterie branchée sur le connecteur sera désactivée. L’énergie électrique vient uniquement de l’USB.

    Astuce

    On peut avoir en toute sécurité, la carte alimentée par USB tout en ayant une alimentation externe ou une batterie de branchée.

    Si une batterie est branchée, et quelle est en partie déchargée, le chargeur intégré de la carte va se mettre à la recharger : une led bleue s’allume.

    Note

    Notez qu’il y a une tension de 5V sur la broche 5V de la carte uniquement lorsque la carte est branchée par USB.

  • Le connecteur de la batterie est directement relié à la broche \(V_{IN}\) , par conséquent, si vous branchez une batterie, la tension de la batterie sera aussi disponible sur la broche \(V_{IN}\) .

    Avertissement

    Il faut donc jamais brancher en même temps une alimentation externe et une batterie ! Sinon sans ajout de protection de votre part, la batterie et/ou votre alimentation externe risque d’être endommagée, voire détruite.

    Le connecteur de la batterie est également relié au circuit de recharge.

Le type de batterie à utiliser

La batterie utilisée doit être compatible avec le chargeur intégré de la carte uPesy. Le chargeur est un MCP73831 de chez MicroChip qui permet de recharger des batteries Li-Ion/Li-Polymer composées d’une seule cellule de 3.7V (ou 4.2V lorsque la batterie est complètement chargée).

circuit électrique des différents mode d’alimentations

Batterie rechargeable LiPo de 3.7V

Elles sont beaucoup utilisées dans les appareils mobiles.

Astuce

Pour ceux qui font du modélisme, cela correspond à un accu lipo 1S.

Avertissement

Il ne faut surtout pas utiliser des batteries qui contiennent plusieurs cellules (2S, 3S, …)

Avertissement

Il ne faut pas non plus utiliser des piles AAA, LR3, LR6 rechargeables ou non sur le rail \(V_{BAT}\) .

La capacité de la batterie à choisir dépendra de votre application et de tout les combien temps vous devrez recharger la batterie. Une capacité entre 1000mAh et 2000mAh sera amplement suffisante dans la plupart des cas.

L’autre point important est de vérifier que la polarité de votre batterie correspond bien à celle de la carte. Malheureusement, il semblerait qu’il n’y a pas de consensus sur la polarité des connecteurs des batteries.

Avertissement

Il n’y a pas de protection contre les inversions de polarité aux niveaux du connecteur de la batterie.

orientation correct de la polarité

Polarité pour le connecteur de la batterie

Référez-vous à l’image ci-dessus, pour vérifier la polarité : le 3.7V de la batterie, représenté par le fil de couleur rouge doit rentrer du côté du “+”. Dans le doute, vérifiez avec un voltmètre la polarité avant branchement.

Astuce

Vous pouvez facilement intervertir les 2 câbles du connecteur si la polarité est incorrecte.

Voici des exemples de batteries LiPo compatibles avec la carte uPesy :

Le fonctionnement du chargement

Le rechargement d’une batterie déjà connectée sur le connecteur JST se passe de la manière suivante :

  • Lorsqu’un câble USB est branché, la batterie n’alimente plus la carte. C’est l’alimentation USB qui va à la fois alimenter la carte et charger la batterie en plus.

  • La LED bleue doit s’allumer. Cette LED s’allume uniquement pendant le chargement de la batterie.

  • Lorsque la LED est éteinte, c’est que la batterie est complètement chargée.

  • On peut débrancher le câble USB, et la batterie alimentera de nouveau l’ESP32.

Le courant de charge maximal est limité autour de 300 mA. En fonction de la capacité de la batterie, le temps de charge sera plus au moins long. Par exemple, pour une batterie de 1000mAh, le temps de charge sera un peu plus de 3h.

Note

La procédure complète du chargement est disponible dans la datasheet du chargeur MCP73831 .

Connaître le déchargement de la batterie depuis un programme

Avec une batterie Li-Ion/Li-Polymer, on peut estimer sa capacité restante en se basant sur sa tension. La carte intègre un pont diviseur de tension, relié à la broche GPIO35 , qui divise la tension \(V_{DC}\) par un ratio.

circuit électrique des différents mode d’alimentations

On peut donc connaître soit la tension de la batterie \(V_{BAT}\) , soit d’une alimentation externe \(V_{IN}\) , voir celle de l’USB \(V_{BUS}\) avec la formule suivante :

\[V_{BAT}=2.15\times \frac{V_{IO35, bits}}{4095}\times 3.3V\]

Le code Arduino suivant permet de mesurer la tension de la batterie :

void setup() {
  pinMode(35, INPUT); // Il faut déclarer le pin en entrée
  Serial.begin(115200);
}

void loop() {
  float v_mes = analogRead(35);
  float v_dc = 2.15*(v_mes/4095)*3.3;
  Serial.println(v_dc);
  delay(100);
}

Protections intégrées

circuit électrique des différents mode d’alimentations

Schéma électrique de la gestion des chemins d’alimentation

La carte uPesy ESP32 WROOM Low Power DevKit intègre des fusibles pour sécuriser vos projets contre des courts-circuits :

  • Sur le rail de l’USB (\(V_{BUS}\) ), il y a un fusible thermique auto-réarmables de 500mA. Il s’active et se désactive automatiquement (c’est une résistance qui varie avec la température appelée polyfuse en anglais).

Note

Lors de la charge d’une batterie, il faudra donc éviter de tirer trop de courant sur d’autres circuits (sur des moteurs par exemple), pour éviter que ce fusible se déclenche.

  • Sur chacun des rails \(V_{BAT}\) et \(V_{IN}\) , il y a des fusibles non-réarmables de 500mA de chez LittleFuse : \(F_{BAT}\) et \(F_{VIN}\) . S’ils se déclenchent, il faudra en mettre des nouveaux car la carte ne sera plus alimentée. Heureusement, des emplacements ont été prévus à cet effet derrière la carte.

    emplacement pour remplacer les fusibles

    Emplacement pour remplacer les fusibles

Astuce

Il est également possible de désactiver ces 2 fusibles en faisant un pont de soudure qu’ils soient grillés ou non. En désactivant cette sécurité, vous devrez vous assurer que votre alimentation (batterie ou alimentation externe) possède des protections efficaces contre des éventuels courts-circuits.

Il y a globalement moins de protection que sur la carte uPesy ESP32 Wroom DevKit, pour limiter au maximum la consommation et ainsi obtenir une très basse consommation en mode Deep Sleep. Il n’y a pas en autres de protections contre les surtensions sur les rails \(V_{BAT}\) et \(V_{IN}\) ni de protections contre les inversions de polarités au niveau de la batterie. A noté que les cartes ESP32 “génériques” ne disposent pas non plus de ses protections.

Fichiers mis à disposition