Using an iPhone as a Wi-Fi hot spot helpful tip

There have been a few posts recently about problems about using phones as a Wi-Fi hot spot, and it’s not something that I had tested before, so I thought I’d give it a try with my iPhone 6 Plus. Answer: In the my default configuration, it did not work, but I know why, and it can be worked around.

The problem I ran into is often the default phone name is: name’s iPhone. This is also the phone Wi-Fi hotspot SSID. The problem is that the apostrophe is a typographic apostrophe ’ not the garden-variety 7-bit ASCII apostrophe ‘.

This causes problems, and all of the problems go away if you remove or replace that character. So that’s the workaround #1.

The special character in the SSID problem affects both the normal Particle app process (at least on the iPhone) and also the CLI, though the problem manifests itself in slightly different ways.

In the iPhone Particle app, if you go through the process you’ll eventually get to the screen where it’s trying to set the Wi-Fi credentials and you can see it renders the name incorrectly. The wrong special character is displayed instead of the typographic apostrophe.

In the Particle CLI (tested with 1.11.0), the problem is slightly different. If you scan for Wi-Fi networks the apostrophe is correct but there’s an extra space and two characters (“ea”) in the name list. Selecting this will not allow the device to be successfully configured.

If you rename the iPhone without a special character in the name the CLI works properly.

Workaround #2, however, allows you to keep the name of the iPhone with the typographic apostrophe. If you say N to scanning Wi-Fi networks, and manually enter the name (with the typographic apostrophe) it works! Well, at least on the Mac it works, I won’t guarantee it works everywhere.

7 Likes

Great detective work! Thanks for sharing this.

Using the Android phone app, connecting to Wi-Fi network “Rick’s iPhone,” with the typographical apostrophe, the name is displayed correctly in the UI, but the app wasn’t able to configure the credentials. The Photon continued to blink blue, and the app eventually displayed “Setup process couldn’t configure the Wi-Fi credentials for your Photon.”

1 Like

Using Particle CLI under Windows 10, the UI didn’t display correctly. Actually, it generally didn’t see my phone hot spot until I went into Settings - Network, where it did show up, and then the next time I refreshed in the CLI, it did show up in the list with corrupted characters. Selecting this did allow the Photon to be configured, but then it flashed green for a while, then back to blue, so CLI didn’t upload valid credentials.

@rickkas7, thank you for doing this!

On the iPhone are you able to see the connected devices? Also can you confirm that your device is actual connected to the internet?

In my case (Lumia 950XL Windows Phone 10) my Hotspot’s SSID doesn’t have any special characters.
I’ve experienced a few false positives (i.e. indicating the device has connected to the phone

  1. The device indicates it is connected to the phone and appears to be connected to the Internet and it is, except it falls back to a different SSID (different Access point) when it can’t connect to the phone. So you want to try clearing the cache of saved Access points
  2. The device appears connected, but does not have an IP Address. Using Serial.println() in code with @ScruffR’s help, I see that it is connected to SSID (blank) and has an IP Address 0.0.0.0

Given that the ESP8266 connects to my phone’s hotspot (besides other regular devices such the Surface, other phone, laptops) , I perplexed as to why my Photons can’t connected… I have even tried connecting to an iPhone hotspot and did not succeed. In all cases I configure manually, since I find using the CLI I almost never see all networks (again the ESP sees every network my laptop and surface see), so I always configure manually.

Yes, I cleared the Wi-Fi credentials cache after each test (hold down setup 10 seconds or so until it fast blinks blue). Also, when the photon to hot spot connection works it shows up on my iPhone that someone has connected through my phone hotspot. And when it doesn’t work the photon will blink blue forever, possibly after blinking green for a minute.

Just to be absolutely sure, I loaded up the code below and it reports back that it’s definitely using my phone network, not my local Wi-Fi network.

localIP=172.20.10.5 gatewayIP=172.20.10.1 SSID=Rick’s iPhone

Test App:

#include "Particle.h"

const unsigned long checkIntervalMs = 60000;

unsigned long checkTime = 5000 - checkIntervalMs;

void setup() {
	Serial.begin(9600);
}

void loop() {
	if (millis() - checkTime > checkIntervalMs) {
		char buf[100];

		String localIP = WiFi.localIP().toString();
		String gatewayIP = WiFi.gatewayIP().toString();
		const char *ssid = WiFi.SSID();

		snprintf(buf, sizeof(buf), "localIP=%s gatewayIP=%s SSID=%s",
			localIP.c_str(), gatewayIP.c_str(), ssid);
		Serial.println(buf);
		Particle.publish("wifi", buf, 60, PRIVATE);

		checkTime = millis();
	}
}

That’s great @rickkas7! Thank you for confirming.

I wish I has such success :tired_face:

@shiv, did you get any chance to test out if my suggestions in the other thread did do any good?

@ScruffR, yes I did. I posted my result there.
Basically, even though the Photon thinks it’s connected. The SSID is blank and the IP Address is 0.0.0.0

Aa, I see you’ve posted a reply. I’ll answer there