Page 1 of 1

WiFi Scan Inconsistencies

Posted: Sat Jun 03, 2017 5:26 pm
by solutionsby
While developing a MQTT app using the ESP32 Arduino (latest build) I noticed that the ESP32 Dev Kit module could not consistently connect to my Airport Extreme Router(firmware version 7.7.8). To isolate the issue I moved to Wifi Scan example and here I noticed that my Airport Extreme was only being picked up by in 1 out of 100 scans. To further isolate the issue I moved over to the ESP32 IDF (latest version) and used an example 06_Scan_Wifi (https://github.com/icamgo/esp-idf.git). This code gave me the same results as the Arduino Wifi Scan.

After several days of trying things (e.g., erasing flash, tried 2 different ESP32 modules, tried ESP8266 examples on several ESP8266 Modules, etc) I finally setup Wireshark and added a NetGear N300 Access Point (in bridge mode) to my network. Upon reviewing the Wireshark results while the 06_Scan_Wifi was running I noticed a significant difference in the Wifi probe request/probe response sequence between the Airport Extreme AP and the NetGear N300 AP and the ESP32 Dev Kit Module. The Airport Extreme responded to the ESP32 probe request on a single response but the NetGear N300 responded with four responses one normal response and 3 with the 802.11 Retry flag set.

The pattern of multiple responses being required by the ESP32 is consistent for all of the APs that the scan picked up. If an AP sends only a single response to the probe request the scan does not pick it up. This seems to be the case for some non-Airport Extreme APs that are in my neighborhood (an Actiontec Electronics Inc AP).

I can run a WiFi scanner on my iMac and see eight 2.4GHz APs but the ESP32 only sees 1 or 2 in most scans and as stated above every so often 1 in 100 or more scans it will pick up an AP that only sends one probe response.

I have seen other mention that they have seen inconsistent results from ESP32 WiFi scan and I think this summary maybe relevant to them.