Three key solutions
1. Turn off the power saving in the ESP32 .
In the Arduino or esp-idf code add the line:
esp_wifi_set_ps(WIFI_PS_NONE)
For ESPHome add in the configuration:
wifi:
power_save_mode: NONE
2. Set the Wi-Fi access points to 20 MHz channels .
In the router settings:
- Go to the router's administration panel
- Find the 2.4 GHz Wi-Fi settings
- Change the channel/bandwidth to 20 MHz (not 40, not 60, not auto)
3. Assign the ESP32 to a specific access point .
If you have multiple access points:
- In the administration panel of your router/mesh system
- Find the "client steering" or "band steering" settings
- Disable automatic transfer of devices between access points
- Manually assign the MAC address of the ESP32 device to the nearest access point
Based on the article:
https://supakeen.com/weblog/esp32-wifi-superstitions/
1. Turn off the power saving in the ESP32 .
In the Arduino or esp-idf code add the line:
esp_wifi_set_ps(WIFI_PS_NONE)
For ESPHome add in the configuration:
wifi:
power_save_mode: NONE
2. Set the Wi-Fi access points to 20 MHz channels .
In the router settings:
- Go to the router's administration panel
- Find the 2.4 GHz Wi-Fi settings
- Change the channel/bandwidth to 20 MHz (not 40, not 60, not auto)
3. Assign the ESP32 to a specific access point .
If you have multiple access points:
- In the administration panel of your router/mesh system
- Find the "client steering" or "band steering" settings
- Disable automatic transfer of devices between access points
- Manually assign the MAC address of the ESP32 device to the nearest access point
Based on the article:
https://supakeen.com/weblog/esp32-wifi-superstitions/