Skip to main content

Deep sleep

Using deep sleep on Inkplate 10 is key to writing a sketch which maximizes battery efficiency. Since e-Paper does not need any kind of power to retain the image displayed - Inkplate 10 can use little to no current while in deep sleep mode, and have a sketch running for months on battery.

ℹ️
If all peripherals are in sleep mode, deep sleep current will be around 20-30µA

Simple deep sleep

Check how the deep sleep works with the example below:


#define uS_TO_S_FACTOR 1000000 // Conversion factor for micro seconds to seconds
#define TIME_TO_SLEEP 20 //How long ESP32 will be in deep sleep (in seconds)
void setup(){
//your code
///...
esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR); //Activate wake-up timer -- wake up after 20s here
esp_deep_sleep_start(); //Put ESP32 into deep sleep. Program stops here.
}

esp_sleep_enable_timer_wakeup()

This function enables wakeup by timer.

Returns type: int

Returns value: Returns ESP error code

Function parameters:

TypeNameDescription
uint64_ttime_in_usWakeup time in microseconds.

esp_deep_sleep_start()

This function enters deep sleep wit the configured wakeup options.

Returns type: None


Wake on button press

To wake on button press of the Wake button, use the ESP32 function esp_sleep_enable_ext0_wakeup() before putting it to sleep.

// Go to sleep for TIME_TO_SLEEP seconds
esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);

// Enable wakeup from deep sleep on gpio 36 (wake button)
esp_sleep_enable_ext0_wakeup(GPIO_NUM_36, LOW);

// Go to sleep
esp_deep_sleep_start();

esp_sleep_enable_ext0_wakeup()

This function uses external wakeup feature of RTC_IO peripheral.

Returns type: int

Returns value: Returns ESP error constant

Function parameters:

TypeNameDescription
gpio_num_tgpio_numGPIO number used as wakeup source. Only GPIOs which are have RTC functionality can be used.
intlevelInput level which will trigger wakeup.

Full examples

Check out the full examples from this page and many more usage options down below:

Inkplate10_Simple_Deep_Sleep.ino

This example will show you how you can use low power functionality of Inkplate board.

Inkplate10_Wake_Up_Button.ino

Full example on how to implement WAKE UP button with deepsleep on Inkplate 10

Inkplate10_RTC_Alarm_With_Deep_Sleep.ino

This example will show you how to use RTC alarm interrupt with deep sleep.