Multiple Access Points with same SSID in Corporate WiFi

my office has a more complex WiFi infrastructure which causes some problems.
When I use any other commercial device (iPhone etc), I get 4 APs reported:

MotesqueApple, WWGuest, WeWork 2.4Ghz, Sprintship 2.4Ghz

But when I setup my Photon via Particle iOS app (or use WiFi.scan in the firmware), I get a choice looking like this:

content={"ssid": MotesqueApple, "channel": 1, "rssi": -23, "bssid": D0:03:4B:64:B8:E0}
content={"ssid": WWGuest, "channel": 1, "rssi": -57, "bssid": 2C:C5:D3:22:AD:D8}
content={"ssid": WWGuest, "channel": 1, "rssi": -78, "bssid": 2C:C5:D3:1F:9C:38}
content={"ssid": WWGuest, "channel": 6, "rssi": -75, "bssid": 2C:C5:D3:1F:9A:F8}
content={"ssid": Sprintship 2.4Ghz, "channel": 11, "rssi": -58, "bssid": 2C:C5:D3:63:0F:F8}
content={"ssid": WeWork 2.4Ghz, "channel": 11, "rssi": -58, "bssid": 2C:C5:D3:A3:0F:F8}
content={"ssid": WeWork 2.4Ghz, "channel": 11, "rssi": -52, "bssid": 2C:C5:D3:A2:F6:48}

As you can see, the APs are actually multiple devices which only differ in the bssid. I can join a specific one in the Particle setup iOS app, but the resulting connection is not very stable. The Photon often looses Wifi connection.
I tried to set the credentials via the Firmware to do further testing (such as automatically join the best signal strength), but the API does not offer to select a specific AP!
Is there a way I can join a specific AP?


Doesn’t the photon do that automagically?

I do not think so. In the iOS app I can only join a very specific AP all listed under the same name.

I have also seen this problem with the Core. After setting up the Core to use my basement AP and moving the Core to the 2nd floor it keeps trying to communicate with the basement AP even though they are named the same SSID. Smells of the same issue in some regards.

I use the same kind of setup at home, I get 3 APs when setting up the photon and just picked the strongest one.
But I dont move it around, so not sure if it would actually jump to one of the other APs if moved.

Yes. I think the feature which would support that is called roaming. Unfortunately, with the current API it seems impossible to implement that in user code. For that I need to be able to join a specific AP by SSID and Mac address.

It does roam. I’ve been testing signal strength issues and I have one AP very close to the Photon test bed and one much further away. When I power-off the closest it appears to move to the furthest fairly quickly (does flash green then cyan so there is some impact - expected as the AP was just powered off). When I power back on the AP, after some time (40 seconds maybe?) the photon moves back to the closer AP (-32 versus -76), it appears to do this pretty smoothly.

I haven’t walked around the house with it though…

Thank you for that test. That is very interesting. So I should look into whether the problems I see are related to that intermittent handover. For example, I have a constant UDP stream going which has stops.
Did you try whether the photon is still fully operational after you switched APs? For example, does the IP address stay the same, are UDP objects still working?

Should it not roam automatically? If the firmware detects multiple APs with the same name it should (in my opinion) pick the strongest AP automatically.

@tlangmo - I’m posting JSON at 10 second intervals. Appears to work fine, but I do have tests for WiFi.ready before posting (httpclient).
IP Address is retained. SHOULD just reassociate at layer 2.

Hmm, I stress the WiFi considerably more with about 20Kb/s at 50Hz UDP packets. It works fine though, when I use a dedicated router or at my home.