The following is the test data of power consumption of ESP8266.
Currently ESP8266 can support three low power modes: Light Sleep, Modem Sleep and Deep Sleep.
①：Modem-Sleep requires the CPU to be working, as in PWM or I2S applications. According to 802.11 standards (like U-APSD), it saves power to shut down the Wi-Fi Modem circuit while maintaining a Wi-Fi connection with no data transmission.
E.g. in DTIM3, to maintain a sleep 300ms-wake 3ms cycle to receive AP’s Beacon packages, the current is about 15mA.
②：During Light-Sleep, the CPU may be suspended in applications like Wi-Fi switch. Without data transmission, the Wi-Fi Modem circuit can be turned off and CPU suspended to save power according to the 802.11 standard (U-APSD).
E.g. in DTIM3, to maintain a sleep 300ms-wake 3ms cycle to receive AP’s Beacon packages, the current is about 0.9mA.
③：Deep-Sleep does not require Wi-Fi connection to be maintained. For application with long time lags between data transmission, e.g. a temperature sensor that checks the temperature every 100s.
E.g. sleep 300s and waking up to connect to the AP (taking about 0.3~1s), the overall average current is less than 1mA.
There are a few things need to pay attention to.
*You can use wifi_set_sleep_type to set sleep type for power saving and set NONE_SLEEP_T to disable power saving.
*power saving modes can only be enabled in station mode, since ESP8266 do not sleep when working in softap mode.
*Wake up of sleep:
Deep Sleep: ESP8266 need be waked up by xpd_dcdc(Pin8) or by other gpio of external MCU. Thus, xpd_dcdc(Pin8) or external GPIO should be connected to ext_rstb(Pin32).
Light Sleep and Modem sleep:Both are automatically added by underlying, which can sleep and be waked up automatically. There is no need of any processing in hardware.
*About test data:
Light Sleep and Modem Sleep:Both can adjust themselves to support the type of DTIM according to the AP that connected. Thus, the above data of power consumption in DTIM1 and DTIM3 is just calculated.
Deep sleep: There is a parameter(108th byte) for the interval of RF cal in the esp_init_data_default.bin as is shown below. Currently, you can set the interval of RF cal by modifying the value of this parameter. Then,you can get more accurate power consumption data in deep sleep mode.
Given our power saving plans are still in optimization, please do forgive if there are any deficiencies.
Thanks for your interest in ESP8266 !
- 20150112210502.jpg (41.19 KiB) Viewed 53499 times
Code: Select all
at_setupCmdLslp(uint8_t id, char *pPara)
n = atoi(pPara);
wifi_set_opmode(STATION_MODE); //set WiFi mode to null mode.
wifi_fpm_set_sleep_type(LIGHT_SLEEP_T); // light sleep
wifi_fpm_open(); //enable force sleep function
wifi_fpm_set_wakeup_cb(fpm_wakup_cb_func1); //Set fpm wakeup callback
I have two questions:
I see that power consumption does not go below 16mA, isn't it supposed to be 0.5mA?
GPIO wake-up seems not to affect in case of 0XFFFFFFFF value.
I would appreciate any hint.
Thanks a lot,
You can refer to "9B-ESP8266__Sleep__Function_Description__EN_v1.0.pdf" which can be obtained in the following link.
More questions, please feel free to let us know.
Who is online
Users browsing this forum: No registered users and 0 guests
Newbies Start Here
Are you new to ESP8266?
Unsure what to do?
Dunno where to start?
Start right here!
We also have a RTOS version and a MESH version too!
Complete listing of the official ESP8266 related documentation release by ESPRESSIF!
Must read here!