Skip to content

uPesy now ships to the entire European Union

Livraison à partir de seulement 2.50€ !

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

uPesy ESP32C3 Basic

(Mis à jour le 12/10/2023)

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

Voici la documentation technique de la carte uPesy ESP32C3 Basic Low Power DevKit. Il s’agit d’une carte basée sur le nouveau module ESP32-C3, spécialement optimisée pour minimiser la consommation de courant lorsque l’ESP32C3 est en mode Deep Sleep (en veille profonde).

présentation uPesy ESP32-C3 Low Power Basic

Avertissement

Si c’est la première fois que vous touchez à une carte ESP32, je vous conseille de commencer par une carte basée sur le module ESP32 Wroom classique, au lieu du modèle ESP32C3, très récent qui se base sur l’écosystème de l’ESP32 classique.

Caractéristiques techniques

Quelques caractéristiques de l’ESP32-C3

L’ESP32-C3 possède une architecture relativement différente de l’ESP32 classique et des ESP32-S2/S3. Il fonctionne avec un microprocesseur mono-coeur basé sur l’architecture Open Source RISC-V.

présentation uPesy ESP32-C3 Low Power Basic

Voici une liste de quelques caractéristiques techniques pertinentes :

  • Microprocesseur RISC-V cadencé à 160MHz

  • 4Mo de Flash et 400Ko de RAM

  • Interface USB → Série intégrée

  • Un mode Deep Sleep à 5µA et un mode LightSleep à seulement 150µA

  • Débogage par JTAG via l’USB

  • Connectivité WiFi et BLE 5.0

Note

La carte uPesy ESP32C3 Basic utilise le module ESP32-C3-WROOM-02-N4.

Pour plus d’informations sur le module C3, vous pouvez consulter la datasheet de la puce :

esp32-c3_datasheet_en

Les caractéristiques techniques de la carte uPesy ESP32C3

Voici les caractéristiques clés de la carte de développement uPesy basée sur l’ESP32C3 :

  • Carte basée sur le module ESP32-C3-WROOM-02-N4

  • Connecteur USB-C

  • Plusieurs modes d’alimentation possibles très faible consommation

  • Connecteur batterie JST 2.0mm (polarité positive à gauche)

Comprendre les broches de l’ESP32-C3

Les numérotations des broches de l’ESP32-C3 sont complètement différentes de l’ESP32 classique. Il y a beaucoup moins de broches disponibles et elles ont moins de fonctionnalités. Par exemple, il n’y a pas de capteurs capacitifs, ni de DAC (pas très important car le DAC de l’ESP32 classique de 8bits n’est pas terrible). L’avantage est de pouvoir proposer une carte compacte et avoir plus de place sur une breadboard (2 rangées de chaque côté).

Le schéma des broches - ESP32-C3 Pinout

schéma des broches de l’uPesy ESP32-C3 Low Power Basic

Pinout complet de la carte uPesy ESP32C3 Low Power Basic

Il y a 12 broches GPIO disponibles sur la carte uPesy ESP32C3 Basic. Elles peuvent être toutes utilisée aussi bien en entrées qu’en sorties.

Note

Comme sur l’ESP32 classique, on peut router les périphériques I2C, I2S, SPI, UART sur n’importe quelles broches.

Périphériques de l’ESP32C3 - Fonctionnalitées des broches

En termes de périphériques disponibles, ils sont les suivant :

  • PWM sur n’importe quelles broches.

  • 5 broches analogiques de l’ADC1 (Il y a également un ADC2 qui est utilisé pour le Wi-Fi).

  • 1x I2C

  • 1x SPI

  • 1x I2S (pour échanger de l’audio)

  • 2x UART  : Puisque la carte utilise l’USB sur les broches GPIO18 et GPIO19 (non exposée), on gagne un UART supplémentaire (UART0 ). L’UART de base est sur les broches GPIO20 et GPIO21 . L’autre port série, UART1 peut être utilisé sur n’importe quelle broches.

Quelques broches spéciales

  • La broche RESET permet de rebooter l’ESP32C3 si elle est mise à la masse. Elle est également reliée au bouton EN à gauche. Il intervient dans la manipulation manuelle pour mettre l’ESP32C3 en mode “Téléversement d’un nouveau programme”.

  • La broche GPIO9 intervient également lors d’un téléversement d’un nouveau programme. Elle est reliée au bouton BOOT .

    Note

    C’est l’équivalent de la broche GPIO0 de l’ESP32 classique.

  • Les broches GPIO8 et GPIO2 ont des résistances de tirages vers le haut (pull-up) pour configurer le mode BOOT de l’ESP32. Ce sont des strapping pins.

  • La broche OFF permet de complètement désactiver l’alimentation de la carte via un signal extérieur. Ce mode consomme encore moins que le Deep Sleep de l’ESP32C3, car toute l’alimentation est désactivée. La consommation dans ce mode est de seulement 6.5µA en moyenne.

    Note

    En imposant une tension de 0V sur la broche OFF , la carte est éteinte.

  • Les broches GPIO18 et GPIO19 sont utilisés par l’USB. Il ne faut pas les utiliser depuis votre programme pour ne pas perturber la communication. C’est pour cela qu’elles ne sont pas exposées.

  • La broche GPIO0 (non exposée) est utilisée par la carte pour mesurer la tension d’alimentation.

Note

Comme sur les autres cartes Low Power, il n’y a pas de LED reliée à une broche particulière.

Note

Quand l’ESP32C3 est en Deep Sleep et alimenté par batterie, la LED rouge d’alimentation s’éteint automatiquement.

Alimentation de la carte ESP32C3 Basic

Les modes d’alimentations

Il y a 2 façons d’alimenter la carte ESP32C3 Basic, dont une est optimisée 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 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 6.5V maximum . Si votre alimentation externe est une batterie LiPo avec la bonne connectique, vous pouvez la brancher directement dans le connecteur prévu. Ce mode d’alimentation est optimisé pour la consommation de courant : autour de 15µA en Deep Sleep.

Avertissement

Le connecteur JST de batterie et la broche \(V_{IN}\) sont reliés.

La version ESP32C3 Basic n’intègre pas de circuit de charge pour une batterie LiPo/Lithium-ion. Ainsi vous pouvez y brancher n’importe quel type de sources d’alimentation (comprise entre 3.5 et 6.5V) :

  • Une batterie LiPo ou Lithium

  • 3 piles AAA en série

  • La sortie d’un chargeur d’un panneau solaire

  • Une alimentation stabilisée

Note

Il est techniquement possible d’alimenter également la carte directement en 3.3V sur la broche 3V3 , même si cela est déconseillé. Des connaissances approfondies et une lecture du schéma est nécessaire avant d’utiliser cette option.

Il serait possible de brancher directement une batterie LiFePO4 sur le rail 3.3V.

Le danger, c’est qu’il n’y a aucune sécurité particulière si la carte est alimentée en même temps par USB : la batterie LiFePO4 recevra directement une tension entrante de 3.3V provenant du régulateur. Ainsi vous devez prendre beaucoup de précautions avant de choisir cette méthode.

Fonctionnement des modes d’alimentation

L’ESP32 est alimenté en 3.3V régulé par un régulateur de tension.

circuit électrique des différents modes d’alimentations

Schéma électrique de la gestion des chemins d’alimentation (Vext → Broche Vin)

  • Dès que l’on alimente la carte par USB, une éventuelle alimentation externe qui serait branchée sur le connecteur ou la broche \(V_{IN}\) 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 batterie de branchée.

    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 JST 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}\) pour alimenter un éventuel montage.

    Avertissement

    Il faut donc jamais brancher en même temps 2 types d’alimentation différente sur le connecteur JST et la broche \(V_{IN}\) .

  • Si le mode OFF est activé, c’est-à-dire la broche OFF mise à la masse, le régulateur est désactivé. Tout le rail 3.3V est éteint. On utilise ce mode lorsqu’on veut que l’ESP32 soit éteint la majeure partie du temps et s’allume juste suite à un éventement externe déclenché en mode tout ou rien. Un circuit additionnel avec un transistor Mosfet est nécessaire. C’est ce qu’on appelle du “Soft latching” en anglais. Vous pouvez regarder cette vidéo pour mieux comprendre l’intérêt de mode : https://www.youtube.com/watch?v=r3ggKO34lIM

Le type de batterie à utiliser

Sur cette carte, il y a beaucoup plus de flexibilité possible concernant le type d’accumulateur que l’on peut utiliser. Puisqu’il n’y a pas de chargeur intégré, la carte n’attend pas un type de batterie particulier, tant que la plage de tension est respectée : entre 3.5V et 6.5V.

Avertissement

Par exemple, vous ne pouvez pas utiliser de batterie 9V.

Cependant une batterie Li-Ion/Li-Polymer rechargeable composée d’une seule cellule de 3.7V (ou 4.2V lorsque la batterie est complètement chargée) est conseillé.

circuit électrique des différents modes d’alimentations

Batterie rechargeable LiPo de 3.7V

Astuce

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

La capacité de la batterie à choisir dépendra de l’autonomie souhaitée. Une capacité autour de 1000mAh sera suffisante dans la plupart des cas.

Note

Vous devriez posséder un chargeur externe de batterie LiPo pour recharger la batterie.

Vous pouvez aussi utiliser plusieurs piles AAA, LR3, LR6 (qui peuvent être rechargeables) à la place. En partant du principe que vous utilisez une pile avec une tension nominale de 1.5V, vous pouvez en mettre trois en série pour obtenir une tension de 4.5V.

Note

La capacité globale des piles doit aussi être du même ordre de grandeur que si vous utilisiez une batterie LiPo. Par exemple, une pile bouton de 3.3V sera très rapidement vide.

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 GPIO0 , qui divise la tension \(V_{DC}\) par un ratio.

Avertissement

Cette méthode fonctionne uniquement quand la carte est alimentée par batterie. La tension renvoyée sera erronée si l’USB est branché en même temps pour recharger la batterie.

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\times \frac{V_{IO0, bits}}{4095}\times 3.3V\]

Le ratio est de \(2\) . Le code Arduino suivant permet de mesurer la tension de la batterie :

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

void loop() {
  float v_mes = analogRead(0);
  float v_dc = 2*(v_mes/4095)*2.5;
  Serial.println(v_dc);
  delay(100);
}

Avec l’USB de branché, vous devriez obtenir une tension d’environ 4.74V.

Mesures de consommation

L’ESP32C3, tout comme l’ESP32 classique possède différents modes de fonctionnement pour limiter la consommation d’énergie. Pour limiter la consommation, les fonctionnalités de l’ESP32-C3 sont progressivement désactivées. Le mode Deep Sleep, le plus connu est celui qui consomme le moins, car le CPU principal de l’ESP32C3 est complètement éteint.

modem sleep esp32c3
low power mode esp32c3 list

Voici quelques mesures réalisées avec la carte ESP32-C3 dans différentes applications.

Note

D’une carte à l’autre, les mesures peuvent légèrement varier de quelques µA.

Carte ESP32C3 éteinte (OFF mis à la masse)

Lorsqu’un circuit de “Soft Latch” est utilisé, c’est-à-dire l’auto-maintien du circuit d’alimentation par l’ESP32C3, on obtient la consommation la plus faible.

../_images/upesy-esp32c3-current-consumption-measure-off.png

Une consommation moyenne autour de 7.5µA

Carte ESP32C3 en Deep Sleep

Lorsque la carte est mise en Deep Sleep, sa consommation se situe autour de 15µA. C’est le mode à privilégier lorsqu’on veut réveille l’ESP32C3 toutes les x secondes pour envoyer des données par Wi-Fi.

../_images/upesy-esp32c3-current-consumption-measure-deep-sleep.png

Une consommation moyenne autour de 15µA

Pics de courant dû à l’émission de paquets Wi-Fi

La réception et surtout l’émission de paquets Wi-Fi créer des pics de courants pouvant facilement dépasser la centaine de mA.

../_images/upesy-esp32c3-current-consumption-measure-wifi-spikes.png

Pics de courant de 92mA qui correspondent à l’émission/réception de paquets Wi-Fi

Quelques précautions à garder en tête

Tolérance en tension des pins

  • L’ESP32C3 est un microcontrôleur qui fonctionne en 3.3V. 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 sur le long terme .

  • 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). La plage de l’ADC est limitée à 2.5V.

Protections intégrées

La carte uPesy ESP32-C3 possède plusieurs sécurités en cas de mauvaises manipulations :

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

  • Inversion de polarité batterie : La carte possède une protection si vous branchez la batterie dans le mauvais sens au niveau du connecteur JST. Cette protection fonctionne également si vous branchez une alimentation dans le mauvais sens sur la broche VIN .

Note

À noter que les cartes ESP32C3 “génériques” d’autres fabricants ne disposent pas de ce genre de protections.

Fichiers mis à disposition

Changelog | Historique des modifications

v0.1 (Juillet 2023)

Première version