diff --git a/libraries/WiFi/src/AP.cpp b/libraries/WiFi/src/AP.cpp index db61c2f0ff1..a61be662495 100644 --- a/libraries/WiFi/src/AP.cpp +++ b/libraries/WiFi/src/AP.cpp @@ -187,6 +187,10 @@ bool APClass::begin() { log_e("AP enable failed!"); return false; } + if (!waitStatusBits(ESP_NETIF_STARTED_BIT, 1000)) { + log_e("Failed to start AP!"); + return false; + } return true; } diff --git a/libraries/WiFi/src/STA.cpp b/libraries/WiFi/src/STA.cpp index dacb0cae2d4..443d2621957 100644 --- a/libraries/WiFi/src/STA.cpp +++ b/libraries/WiFi/src/STA.cpp @@ -298,6 +298,10 @@ bool STAClass::begin(bool tryConnect) { log_e("STA enable failed!"); return false; } + if (!waitStatusBits(ESP_NETIF_STARTED_BIT, 1000)) { + log_e("Failed to start STA!"); + return false; + } if (tryConnect) { return connect(); } diff --git a/libraries/WiFi/src/WiFiGeneric.cpp b/libraries/WiFi/src/WiFiGeneric.cpp index 1903a5c9c41..75a01d1362f 100644 --- a/libraries/WiFi/src/WiFiGeneric.cpp +++ b/libraries/WiFi/src/WiFiGeneric.cpp @@ -639,7 +639,11 @@ bool WiFiGenericClass::setTxPower(wifi_power_t power) { log_w("Neither AP or STA has been started"); return false; } - return esp_wifi_set_max_tx_power(power) == ESP_OK; + esp_err_t err = esp_wifi_set_max_tx_power(power); + if (err != ESP_OK) { + log_e("Failed to set TX Power: 0x%x: %s", err, esp_err_to_name(err)); + } + return err == ESP_OK; } wifi_power_t WiFiGenericClass::getTxPower() { @@ -648,7 +652,9 @@ wifi_power_t WiFiGenericClass::getTxPower() { log_w("Neither AP or STA has been started"); return WIFI_POWER_19_5dBm; } - if (esp_wifi_get_max_tx_power(&power)) { + esp_err_t err = esp_wifi_get_max_tx_power(&power); + if (err != ESP_OK) { + log_e("Failed to get TX Power: 0x%x: %s", err, esp_err_to_name(err)); return WIFI_POWER_19_5dBm; } return (wifi_power_t)power; diff --git a/libraries/WiFi/src/WiFiGeneric.h b/libraries/WiFi/src/WiFiGeneric.h index 6ed74dfed84..3cb1515b324 100644 --- a/libraries/WiFi/src/WiFiGeneric.h +++ b/libraries/WiFi/src/WiFiGeneric.h @@ -44,6 +44,9 @@ #define wifi_event_id_t network_event_handle_t typedef enum { + WIFI_POWER_21dBm = 84, // 21dBm + WIFI_POWER_20_5dBm = 82, // 20.5dBm + WIFI_POWER_20dBm = 80, // 20dBm WIFI_POWER_19_5dBm = 78, // 19.5dBm WIFI_POWER_19dBm = 76, // 19dBm WIFI_POWER_18_5dBm = 74, // 18.5dBm