RS9110 Roaming

According to the Redpine datasheets the RS9110 modules supports WiFi roaming, but I just noticed the GHI docs for joining a network have this comment related to the “.Join” function:

“If more than one network with that SSID is found an exception is thrown.”
[url]https://www.ghielectronics.com/downloads/man/Library_Documentation_v4.3/html/M_GHI_Networking_WiFiRS9110_Join_1.htm[/url]

Am I just not interpreting this comment correctly? Shouldn’t the module connect to an AP even if there are multiple identical SSID’s in range? Further, will it not roam freely between the AP’s?

Thanks -AP

@ Superpanda - That comment is only for the Join function that accepts an SSID and key as string. If you call Scan, it will return all SSIDs found, multiple if there are multiple stations broadcasting it. You can set the key on the desired SSID object and pass that to Join. This is shown below. See https://www.ghielectronics.com/downloads/man/Library_Documentation_v4.3/html/M_GHI_Networking_WiFiRS9110_Join.htm.


var nets = netif.Scan();

foreach (var net in nets) {
//find the one you want based on SSID and RSSI
    if(...) {
        netif.Key = "...";
        netif.Join(net);
    }
}

Ok, FYI the docs show the comment for both versions of the function.

So if I understand you have to use a returned SSID object to connect to a secure AP when there are also other cloned AP’s in range. It does not matter that the AP’s have the same SSID and passkey. I prefer that was not the case because scanning takes time and I’d rather just execute the Join function because I always know the SSID and Key ahead of time.

Should the RS9110 handle roaming properly once it has connected?

@ Superpanda - I only see the comment in question on the Join(string) and Join(string, string) overloads. The Join(NetworkParameters) overload that I linked does not have the comment.

To avoid scanning you can construct a NetworkParameters object manually and pass that to Join.

Of course. Thanks. I’ll test this out and see how well it roams.