Power Saving via menuconfig?
Posted: Thu Jul 13, 2017 5:18 pm
So, I've got a project where I need to save power, but I don't want to implement deep sleep.
Here's a quick overview of the program/timing:
each of the bold items is a separate task/thread
Read Sensors: for 1 ms /50 ms, turn on a bank of IR LEDs, read the state, turn them off, delay for 50 ms, via GPIO
Check battery: once / 15 minutes, read the battery voltage via ADC pin
POST data via WiFi: once per hour, start the wifi, send a POST request, stop the wifi
For the vast majority of time, I'm just burning CPU cycles via vTaskDelay();
So far, to save power, I've done simple things: the CPU clock is set to 80 MHz, the IR LEDs are minimally on, the esp_wifi_set_ps() is enabled, and the wifi is stopped for the majority of the hour.
Here are my questions:
Aside from dialing down the CPU in the menuconfig, are there other changes I can make to the component configuration to save some power?
Does esp_wifi_stop() actually power down the wifi antenna?
If I deep sleep, does the port tick timer continue to tick, or do I need to re-do my task scheduling to take advantage of deep sleep?
Here's a quick overview of the program/timing:
each of the bold items is a separate task/thread
Read Sensors: for 1 ms /50 ms, turn on a bank of IR LEDs, read the state, turn them off, delay for 50 ms, via GPIO
Check battery: once / 15 minutes, read the battery voltage via ADC pin
POST data via WiFi: once per hour, start the wifi, send a POST request, stop the wifi
For the vast majority of time, I'm just burning CPU cycles via vTaskDelay();
So far, to save power, I've done simple things: the CPU clock is set to 80 MHz, the IR LEDs are minimally on, the esp_wifi_set_ps() is enabled, and the wifi is stopped for the majority of the hour.
Here are my questions:
Aside from dialing down the CPU in the menuconfig, are there other changes I can make to the component configuration to save some power?
Does esp_wifi_stop() actually power down the wifi antenna?
If I deep sleep, does the port tick timer continue to tick, or do I need to re-do my task scheduling to take advantage of deep sleep?