We're currently working on an iOS app which needs to pair to a custom external device (smart camera) to work correctly. The pairing mechanism is currently based on WebSockets, so the app and the camera needs to be on the same network to be discovered and work correctly.
For information, the smart camera rely on a Raspberry Pi 3.
For now, when both the app and the smart camera are on the same WiFi network, the pairing works, and everything work as expected. Nonetheless, the app needs to work even if it is not connected to an external WiFi network. So we thought we could use the iOS' Personal Hotspot to connect the smart camera to, so as to enable the pairing (since it would then be on the same network).
But, we're currently encountering a problem, after enabling Personal Hotspot from iOS, the camera either :
- does not "see" the WiFi Network, so it can't connect to it
- when the network is visible, it does not connect to the personal Hotspot : it keeps trying to negotiate keys, and authenticating without success
When this problem occurs, we also tried to connect a Windows 7 laptop and a MacBookPro (running latest Sierra), but the WiFi connexion to iOS' Personal Hotspot could not been established either, with similar behaviors (wifi visibility, impossible to authenticate, connexion stabiliy...). So the problem does not seem to come with some network configuration on external devices, but more on the Personal Hotspot feature.
We've tried to test the Personal Hotspot on several iOS devices (iPhones 5, 5S, 6, 6+, 6S, SE, 7, 7+ both running latest iOS 10 version), and with no explanation, it only worked when the iPhone SE shared its connexion (?!?)...
We're quite stuck on this, since iOS does not give much settings/information on Personal Hotspot, and it is a user-level feature, with no API to control it.
What we've come to with some WiFi tools, it seems that iOS uses WPA2 Personal algorithm for securing its Personal Hotspot, but any additional information might be useful for us...
For the moment, we have already tried :
- to rename iPhone to remove any space and/or special characters
- use a very simple password with no spaces and/or special characters
- encode WiFi name in a base64 string on the Raspberry 3
Any help or similar problem/experience from others people will be much appreciated, because this feature is critical for us, and a core to our business.
Thanks in advance for your help,