Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ESP32-S3 DeepSleep Touch Wakeup from any pin (IDFGH-14712) #15452

Open
3 tasks done
DarkZeros opened this issue Feb 23, 2025 · 1 comment
Open
3 tasks done

ESP32-S3 DeepSleep Touch Wakeup from any pin (IDFGH-14712) #15452

DarkZeros opened this issue Feb 23, 2025 · 1 comment
Assignees
Labels
Awaiting Response awaiting a response from the author Status: Opened Issue is new

Comments

@DarkZeros
Copy link

Answers checklist.

  • I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
  • I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
  • I have searched the issue tracker for a similar issue and not found a similar issue.

General issue report

Hi, I have a WIP prototype on a ESP32-PICO-D4, that uses touch wake from deep sleep.
It has 4 pins/pads (touch buttons), and it wakes from deep sleep under any touch on them.

Then, I simply use touch_ll_read_trigger_status_mask() to detect the firing one and perform the 4 different actions.

Due to lack of GPIOs that i needed to extend my design, I decided that ESP32-S3 was the only valid option, since it is the only new generation chip with Touch pad support, as well as more GPIOs.


However, I am unable to make this wakeup form deep sleep feature work on the 4 pads, only 1 pad/pin wakes the chip, the last one configured. The rest don´t wake up the chip from deep sleep. Calling the read trigger_status_mask() gives always 0, when this wakeup occurs.

I read here: https://esp32.com/viewtopic.php?t=41970
That there is a way to make it work, however I failed making it work.
I tried this with no sucess:
esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON);

This is for me quite a trap, since the 14 touch pads are totally useless for me, if I can´t use them in deep sleep.
My ESP is all the time in deep sleep, until a user input occurs (on any pin!).

Any help to fix it using more power in deep sleep is welcomed, as well as alternatives (I can change to another chip still, since i am prototyping)

@espressif-bot espressif-bot added the Status: Opened Issue is new label Feb 23, 2025
@github-actions github-actions bot changed the title ESP32-S3 DeepSleep Touch Wakeup from any pin ESP32-S3 DeepSleep Touch Wakeup from any pin (IDFGH-14712) Feb 23, 2025
@L-KAYA
Copy link
Collaborator

L-KAYA commented Feb 24, 2025

Hi @DarkZeros ! Seems you are still using the legacy touch driver, FYI, the new touch driver is ready on the master branch, please take a try! (see the programming guide)

About the issue you met, it actually a limitation of the legacy driver.

As you know the touch hardwares are different on ESP32 and S3, and the S3 Touch has more features, 'only can wake-up by one touch pad' is one of these features, it allows the touch power domain (i.e, RTC_PERIPH power domain) shutdown during the deep sleep, which can help to save more power consumption. However, this feature is enabled by default, and not likely to disable by a public API.

But in the new driver, you can disable it by setting touch_sleep_config_t::deep_slp_allow_pd to false.

@espressif-bot espressif-bot added the Awaiting Response awaiting a response from the author label Feb 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Awaiting Response awaiting a response from the author Status: Opened Issue is new
Projects
None yet
Development

No branches or pull requests

3 participants