UltraLowPower for Arduinos

Hello together,

Since we finally have the Pro Mini again in our delivery program, I want to briefly point out ways to reduce the power connection of the Pro Mini to enable for example a long battery operation. 

In order to save as much energy as possible, in addition to a library created for this purpose, there are also hardware-side changes which can reduce the consumption even further. How far you want to reduce power consumption is left to you.

The easiest and quickest way to reduce power consumption is to Git Available LibraryThis is also in the board manager, but is not up to date there. Since today's contribution is aimed at more advanced users, I will omit the part of the installation of the library today. The example "powerDownWakePeriodic.ino" contained in the library is quite self-explanatory: 

#include "LowPower.h"

void setup()
{     // No setup is required for this library
}

void loop() 
{     // Enter power down state for 8 s with ADC and BOD module disabled     LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);            // Do something here     // Example: Read sensor, data logging, data transmission.
}

The maximum duration of the LowPower.powerDown is 8 seconds. For the wakeup, an interrupt can also be used instead of the timer. In addition, the library offers several options of the operating mode such as an IDLE or STANDBY mode, a view into the LowPower.cpp helps here.

With a simple for-loop, this time interval can be repeated as desired:

 

#include "LowPower.h"

const unsigned INTERVAL = 600;
void setup() {
}

void loop() {      int sleepcycles = INTERVAL / 8;     for (int I=0; I<sleepcycles; I++) {       LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);     }   }

 

The power consumption is in the normal operating mode at approx. 20 mA, in deep sleep this is reduced to approx. 4 mA if used to supply the RAW pin. 

In order to avoid the use of additional current, these sensors can also be supplied via a digital GPIO instead of the usual 5V-Pins. Thus, the current supply of the sensor can be controlled via a simple HIGH/LOW. In order for this to function reliably, a corresponding delay () must be installed, depending on the sensor.

If we want to reduce the power consumption even further, hardware-side changes are required, but respect: In the case of hardware-side changes, the warranty will be deleted.

In order to reduce the remaining consumers (red), we can remove both the operating LED (yellow) and the fixed-voltage regulator (green) from the board. The larger consumer in this case represents the operating LED.

This is not necessary for operation and can be soldered with some skill.

In the picture above: soldered LED

This is exactly the case with the fixed-voltage regulator located on the board. If 5V is available, this is superfluous and we can remove this, just like the LED, without any doubt.

In the picture above: soldered LED and soldered fixed voltage regulator

Since the RAW pin is connected directly to the fixed-voltage regulator, it can no longer be used after the component has been triggered.

If power consumption is still too high, a change to the 3.3V version is recommended.

 

A lot of success in post-tinkering and until the next post:)

 

Esp-8266Specials

3 comments

Ulrich Engel

Ulrich Engel

Hallo, im Rahmen eines LoRa Wetterprojektes messe ich Wetterdaten eines BME280 und übertrage diese per LoRa vom Sender zum Receiver.
Aktuell messe ich alle 8 Sekunden und zwischen zwei Messzeiten wird der ESP32 LoRa “schlafen” gelegt:
LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
Meine Frage:
Kann man den “Schlafzyklus” auf 30 Sekunden verlängern, um den Stromverbrauch des Senders (Akku) zu senken?
Viele Grüße und Danke für eine Antwort.

DD1UZ

DD1UZ

Wie hoch ist der Stromverbrauch ohne LED bei 3V / 5V?
Hat jemand Erfahrungen?

Andreas Engelmann

Andreas Engelmann

Um den Spannungsregler zu entfernen einfach die Beinchen mit einem schlanken Seitenschneider durchkneifen. Oft ist es auch leichter den Vorwiderstand der LED zu entfernen als die LED selbst. Wer die Platine noch sauber haben möchte kann ja anschließend mit dem Lötkolben die Reste vorsichtig entfernen.

Leave a comment

All comments are moderated before being published

Recommended blog posts

  1. Install ESP32 now from the board manager
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. OTA - Over the Air - ESP programming via WLAN