mercredi 19 décembre 2018

Consommation d'une carte ARDUINO, ESP8266 ou ESP32

Consommation d'une carte ARDUINO,

ESP8266ou ESP32

Nous allons répondre à une question souvent posée sur les forums : Quelle est la consommation d'une carte ARDUINO ou d'un ESP8266 ?

1. Les conditions de mesure

J'ai utilisé le voltmètre / ampèremètre décrit ICI.

Le sketch utilisé pour la mesure en mode éveillé est celui-ci :

#define LED 13

void setup() {
  pinMode(LED, OUTPUT);
  Serial.begin(115200);
}

void loop() {
  digitalWrite(LED, HIGH);
  delay(1000);
  digitalWrite(LED, LOW);
  delay(3000);
  Serial.println("OK");
}


Le sketch utilisé pour la mesure en mode veille est celui-ci :

#include <LowPower.h>

#define LED 13

 void setup() {
  pinMode(
LED, OUTPUT);
  Serial.begin(115200);
}

void lowPowerSleep(int minutes)
{
  int seconds = minutes * 60;
  int sleeps = seconds / 8;
  for (int i = 0 ; i < sleeps ; i++) {
    LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
  }
}

void loop() {
  lowPowerSleep(15);
  Serial.println("HELLO");
  digitalWrite(
LED, HIGH);
  delay(1000);
  digitalWrite(
LED, LOW);
}


2. La UNO

Les mesures suivantes ont été réalisées avec une carte UNO clone équipée d'un convertisseur USB / série CH340 et un régulateur 5V AMS1117.

Alimentation Mode éveillé Mode veille
USB 38mA 20mA
Broche 5V 25mA 6mA
JACK ou broche VIN (7V) 30mA 11mA

Remarque: quand la carte est alimentée autrement que par l'USB le régulateur CH340 n'est pas actif.
L'alimentation par le JACK ou la broche VIN provoque une consommation supplémentaire de 5mA due au régulateur 5V.

3. La NANO

Les mesures suivantes ont été réalisées avec une carte NANO clone équipée d'un convertisseur USB / série CH340 et un régulateur 5V AMS1117.

Alimentation Mode éveillé Mode veille
USB 29mA 13mA
Broche 5V 27mA 7.5mA
Broche VIN (7V) 32mA 12.5mA

Remarque: quand la carte est alimentée autrement que par l'USB le régulateur CH340 n'est pas actif.
Comme pour la UNO l'alimentation par le JACK ou la broche VIN provoque une consommation supplémentaire de 5mA due au régulateur 5V.

La consommation de la NANO est légèrement supérieure à celle de la UNO, mais peut s'expliquer par la dispersion de caractéristiques de composants, en particulier le régulateur AMS1117.

4. La PRO MINI

4.1. La PRO MINI 16MHz 5V

Les mesures suivantes ont été réalisées avec une carte PRO MINI 16MHz 5V clone équipée d'un régulateur marqué S8PL (non identifié).

Alimentation Mode éveillé Mode veille
Broche VCC en 5V 24mA 3.2mA
Broche RAW en 7.5V 28mA 3.22mA


4.2. La PRO MINI 8MHz 3.3V

Les mesures suivantes ont été réalisées avec une carte PRO MINI 8MHz 3.3V clone équipée d'un régulateur XC6204 (marquage 4A2D).

Alimentation Mode éveillé Mode veille
Broche VCC en 3.3V 5.6mA 1.4mA
Broche RAW en 5V 5.7mA 1.5mA


Il existe différents modèles de PRO MINI avec des régulateurs différents, et je pense que la consommation due au régulateur doit varier fortement en fonction du type de régulateur. Ici 1.4mA est une valeur assez élevée.
D'autre part la diode LED1 est alimentée également et consomme 180µA si elle est polarisée par une résistance de 10KΩ ou 380µA si elle est polarisée par une résistance de 4.7KΩ.
Avec certaines cartes, supprimer le régulateur fait économiser 70µA, pour .

4.3. La PRO MINI bricolée

Est-il possible de consommer encore moins ?
Bien sûr : avec une PRO MINI 8MHz légèrement modifiée la consommation peut descendre à 1.5µA en mode veille.
La PRO MINI 16MHz modifée d ela même façon aura une consommation de 3µA en mode veille.

La solution est ICI.

5. La MEGA

Les mesures suivantes ont été réalisées avec une carte MEGA clone équipée d'un convertisseur USB / série CH340 et un régulateur 5V AMS1117.

Alimentation Mode éveillé Mode veille
USB 75mA 20mA
Broche 5V 61mA 7mA
Broche VIN (7V) 59mA 7.2mA

6. La DUE

Les mesures suivantes ont été réalisées avec une carte DUE CORE clone équipée d'un convertisseur USB / série natif et un régulateur 5V AMS1117.

Alimentation Mode éveillé Mode veille
USB 138mA 97mA
Broche VCC (5V) 96mA 96mA
Broche 3.3V


Le port USB natif semble consommer énormément.
Je n'ai pas trouvé le moyen de faire tourner le SAM3X8E en mode veille. Si vous envisagez une application basse consommation ne vous tournez pas vers cette plateforme.

7. L'ESP8266 et l'ESP32

Le sketch utilisé pour l'ESP8266 est celui de l'article suivant :
https://riton-duino.blogspot.com/2019/02/esp8266-sur-batterie.html

L'ESP8266 a besoin de 300mA avec des pics à 430mA pour démarrer sa connexion WIFI.

Pendant les transmissions de données, la consommation dépend de la puissance d'émission :
https://bbs.espressif.com/viewtopic.php?t=133

Dans les tableaux suivants, la consommation en mode éveillé est donnée pour une période d'inactivité (réception), le modem étant actif. Un serveur HTTP convient très bien.

7.1. L'ESP8266-12E

Les mesures suivantes ont été réalisées avec un module ESP8266-12E seul, câblé comme ceci :

Alimentation Mode éveillé Mode veille
Broche VCC en 3.3V 72mA 20µA

La consommation en mode veille autorise largement un fonctionnement sur batterie.

7.2. L'ESP01

Les mesures suivantes ont été réalisées avec une carte ESP01 dont la LED power a été retirée.

Alimentation Mode éveillé Mode veille
Broche VCC en 3.3V 72mA 18µA

Avec la LED rouge, la consommation est de 340µA en mode veille.

7.3. Le NodeMCU

Les mesures suivantes ont été réalisées avec une carte NodeMCU.

Alimentation Mode éveillé Mode veille
USB 80mA 11mA
Broche 5V 72mA 1mA
Broche VCC en 3.3V 72mA 92µA

L'exemplaire que j'ai testé ne possède pas de LED de mise sous tension.
Normalement on devrait obtenir les mêmes résultats avec une WEMOS D1 MINI.

7.4. L'ESP-WROOM-32

Les mesures suivantes ont été réalisées avec une carte ESP-WROOM-32 dont la LED power a été retirée.

Alimentation Mode éveillé Mode veille
USB 80mA 10.75mA
Broche 5V 72mA 9.4mA
Broche VCC en 3.3V 63mA 3mA

Les cartes ESP-WROOM-32 sont implémentées de diverses manières. Celle-ci n'est visiblement pas adaptée à de la basse consommation.
Un ESP32 devrait consommer 5µA en veille profonde. Certains fabricants prennent des libertés, mais cela n'empêche pas les vendeurs d'annoncer "Faible Consommation D'énergie".

La carte LOLIN32 par exemple alimentée par sa broche 3.3V consomme 1.7mA en veille.

8. Conclusion

Si les cartes ARDUINO UNO ou NANO sont intéressantes d'un point de vue pratique car disposant d'un connecteur USB permettant le téléversement et l'utilisation du moniteur série, elles restent avant tout des cartes qu'il est préférable d'alimenter par une alimentation secteur.
La PRO MINI reste imbattable en matière de consommation et pourra être alimentée par une petite batterie pour peu qu'on l'alimente en 3.3V et que l'on prenne soin de supprimer sa LED power et éventuellement son régulateur.

Les plateformes à base d'ESP8266 constituent également un bon choix pour des solutions WIFI basse consommation.

J'espère que ce petit document vous aidera dans vos choix.

Cordialement
Henri

9. Liens utiles

https://www.carnetdumaker.net/articles/test-comparatif-de-la-consommation-electrique-vide-de-diverses-cartes-arduino-et-compatible/#les-cartes-arduino-officielles

11. Mises à jour

24/02/2019 : 5. La MEGA
                     6. La DUE
                     7. L'ESP8266
25/02/2019 : 7.4. L'ESP-WROOM-32
                     ajout photos
21/04/2020 : 4. La PRO MINI 16MHz

6 commentaires:

  1. comment je peux mesurer la consommation de la carte Adafruit HUZZAH32 - ESP32 Feather??

    RépondreSupprimer
  2. Tout dépend du matériel à disposition et de ce que l'on veut mesurer (mode veille ou pas).

    RépondreSupprimer
  3. Mes plus vifs remerciements pour ce travail très utile. Bravo

    RépondreSupprimer
    Réponses
    1. Merci.
      C'est malheureusement assez incomplet du côté ESP32.
      Mais je vais compléter d'ici peu, le temps de recevoir quelques cartes.

      Supprimer
  4. Merci pour le temps que vous consacrez à partager votre savoir à la communauté, et bravo pour la rigueur de vos démonstrations.
    Je m'excuse par avance de la trivialité de ma question, étant grand débutant en électronique, mais les consommations que vous fournissez en mA pour les différentes cartes sont-elles des consommations instantanées ? Comment évaluer la consommation d'une carte sur une période donnée ? Merci d'avance de votre aide. Cordialement, Romain

    RépondreSupprimer
    Réponses
    1. Je parle de courant, donc c'est à un instant T forcément.
      La consommation sur une période donnée dépend de l'activité de la carte. Si le courant est constant c'est facile, mais si ce n'est pas le cas, il faut enregistrer le courant périodiquement à l'aide d'un INA226 par exemple et produire un graphe :
      Le logger shield sur MEGA:
      https://riton-duino.blogspot.com/2018/07/banc-de-mesure-de-consommation.html
      Le logger shield sur UNO:
      https://riton-duino.blogspot.com/2019/08/un-logger-analogique-et-digital.html
      La version WEB :
      https://riton-duino.blogspot.com/2020/01/un-logger-analogique-et-digital-version.html

      Supprimer