diff --git a/README.md b/README.md index 150ebaaa..efea719e 100644 --- a/README.md +++ b/README.md @@ -513,11 +513,14 @@ The esp32 can enter deep sleep after an audio inactivity timeout, after a button The NVS parameter `sleep_config` is mostly used for setting sleep conditions ``` -[delay=][,sleep=[:0|1]][,wake=[:0|1][|[:0|1]...][,rtc=[:0|1][|[:0|1]...] +[delay=][,sleep=[:0|1]][,wake=[:0|1][|[:0|1]...][,rtc=[:0|1][|[:0|1]...][,batt=] ``` -- delay is in **minutes** -- sleep is the GPIO that will put the system into sleep and it can be a level 0 or 1 -- wake is a **list** of GPIOs that with cause it to wake up (reboot) with their respective values. In such list, GPIO's are separated by an actual '|' +- delay is in **minutes**. +- sleep is the GPIO that will put the system into sleep and it can be a level 0 or 1. +- wake is a **list** of GPIOs that with cause it to wake up (reboot) with their respective values. In such list, GPIO's are separated by an actual '|'. +- batt is a threshold in **volts** under which the system will enter into sleep. + +The battery voltage is measured every 10 seconds and 30 values are averaged before producing a result. The result must be 3 times below the threashold to enter sleep, so it takes a total of 10*30*3 = 15 minutes. Be mindful that if the same GPIO is used to go to sleep and wakeup with the *same* level, in other word it's a transition/edge that triggers the action, the above will not work and the esp32 will immediately restart. In such case, you case use a button definition. The benefit of buttons is that not only can you re-use one actual button (e.g. 'stop') to make it the sleep trigger (using a long-press or a shift-press) but by selecting the ACTRLS_SLEEP action upon 'release', you can got to sleep upon release (1-0-1 transition) but also wake up upon another press (0 level applied on GPIO) because you only go to sleep *after* the GPIO returned to 1.