Skip to main content

Reducing Power Usage

These are strategies you can use in order to maximize your project's battery life.

Use ESP32-S3 deep sleep

The lowest sleep state ESP32-S3 can be in is deep-sleep. At this state, PowerFeather's current consumption can be under 20 μA. One common strategy to save power is for ESP32-S3 to be in deep-sleep most of the time, only waking up to do processing at set intervals or from a trigger signal on a pin - then going back to deep-sleep.

Turn off 3.3V outputs

PowerFeather has two 3.3 V outputs: 3V3 and VSQT. Each of them can be individually enabled or disabled using Mainboard::enable3V3 and Mainboard::enableVSQT. This is useful for turning off loads to save power, and only turning them on when necessary.

Board.enable3V3(false); // cut power to connected loads on 3V3
// ...
Board.enable3V3(true); // restore power to connected loads on 3V3
Board.enableVSQT(false); // cut power to connected STEMMA QT modules
// ...
Board.enableVSQT(true); // restore power to connected STEMMA QT modules

The set state persists across deep sleep. That is, if 3V3 or VSQT is enabled prior to deep-sleep, it remains enabled during deep-sleep and after wake-up. Consequently, if 3V3 or VSQT is disabled prior to deep-sleep, it remains disabled during deep-sleep and after wake-up.

Disable Feather Wings using EN

Feather Wings connected to the board can be enabled or disabled by using the function Mainboard::setEN. Much like the 3.3 V outputs 3V3 and VSQT, the set EN state persists across deep sleep.

Borad.setEN(false); // disable connected Feather Wings
// ...
Board.setEN(true); // enable connected Feather Wings

Use ship or shutdown mode

Ship and shutdown mode are special power modes in which the battery is as good as cut off from the board. Use Mainboard::enterShipMode and Mainboard::enterShutdownMode to enter these modes.

Board.enterShipMode(); // enter ship mode
Board.enterShutdownMode(); // enter shutdown mode

There are entry and exit conditions for these modes. Read about these conditions in the documentation for Mainboard::enterShipMode and Mainboard::enterShutdownMode.