Commit 321d75e0 authored by Damien George's avatar Damien George

esp8266/modnetwork: Automatically do radio sleep if no interface active.

Reduces current of device by about 55mA when radio is sleeping.
parent 9e2dd931
......@@ -102,6 +102,13 @@ void soft_reset(void) {
}
void init_done(void) {
// Configure sleep, and put the radio to sleep if no interfaces are active
wifi_fpm_set_sleep_type(MODEM_SLEEP_T);
if (wifi_get_opmode() == NULL_MODE) {
wifi_fpm_open();
wifi_fpm_do_sleep(0xfffffff);
}
#if MICROPY_REPL_EVENT_DRIVEN
uart_task_init();
#endif
......
......@@ -83,7 +83,15 @@ STATIC mp_obj_t esp_active(size_t n_args, const mp_obj_t *args) {
} else {
mode &= ~mask;
}
if (mode != NULL_MODE) {
wifi_fpm_do_wakeup();
wifi_fpm_close();
}
error_check(wifi_set_opmode(mode), "Cannot update i/f status");
if (mode == NULL_MODE) {
wifi_fpm_open();
wifi_fpm_do_sleep(0xfffffff);
}
return mp_const_none;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment