I am usually good at getting things working but here is my conundrum:
I created an IoT sensor at my office which uses WPA3 Personal wifi on 2.4 and it connects without issue:
- WiFi.begin(ssid,password);
- while(WiFi.status() != WL_CONNECTED)
- {
- display.print(".");
- display.display();
- D_println(WiFi.status());
- delay(500);
- }
PROBLEM:
Customer uses a Cisco Meraki system (apparently) with a Hidden SSID on Channel 6 (-70dB measured by ESP32 scanner) on the 2.4GHz band, using WPA3 Personal with WPA2 fallback.
Instead of connecting, the above code shows status = 1 which means NO_AP_FOUND.
WHAT I HAVE TRIED:
* I copied the exact connection credentials (SSID and PW) used by my PC which is connected to the same hidden network just fine.
* I tested conneciton to my office router's SSID and it connects fine to hidden SSID when using channels 1 to 11.
* I set the channel explicitly to 6 by WiFi.begin(ssid,password,6);
No joy.
* I did manage to connect to other networks at the customer's place which are not from the Cisco, i.e. AV room projectors, smart TVs etc.
Here is where I think I may be misunderstanding something.
I ran the usual scanner program and got a list of WiFi APs with -70db or better.
I then changed the SSID to one of the APs offered from the Cisco Meraki routers in the list and ran my code with a random password.
AGAIN I GOT NO_AP_FOUND...
I was expecting to get an authentication error but no... I went through the whole list of Cisco supplied APs on 2.5GHz and got NO_AP_FOUND on all 5 of them. Yet I was able to connect to all of the non Cisco routers as expected.
Am I misunderstanding the NO_AP_FOUND meaning? I had assumed it just meant the device couldn't find the SSID... But it appears that there is some kind of handshaking that the Cisco kit is using that is incompatible with the ESP32 on Arduino.
Any help appreciated, I'm tearing what little hair I have left out....