I’ve searched around for a sample mobile app or BLE/NFC application that I could use to connect to a device and update the wifi credentials. I’ve seen several articles about USB connectivity, or flashing the device, but this seems way over kill. Using the same network/credentials on every customer network would be a bad security risk.
If I’m way off base, or people are using a different method to connect to customer WiFi, I’d love to hear so!
If you are using the Argon or P2 there are a few options:
The recommended method is not available yet, but it’s the React Native sample app for BLE configuration. It allows you to set the Wi-Fi over BLE from your mobile app for iOS or Android.
It’s also possible to add custom BLE configuration to your own app, which would allow it to be configured using a simpler configuration protocol than the native Device OS method, which is secure but complex. If you already have an existing native iOS or Android app, this might be an easier solution.
If you are using a P1 or Photon, the Device Setup SDK for iOS or Android is the method used to configure Wi-Fi and optionally claim the devices to customer accounts.
And as you mentioned, all devices can be configured by USB as well.
I set Wi-Fi credentials securely over BLE from an iPhone (or Chrome / BLE) using ArduinoJson and SPIFFS(SPI Flash File Storage) when using ESP32 Wi-Fi over SPI.
The Argon has an ESP32 as a Wi-Fi co-processor and uses AT commands over UART. SPI would have been a better choice.
The new Photon 2 (P2) with Wi-Fi and BLE integrated in the SoC should be a fantastic upgrade with 802.11a/b/g/n Wi-Fi, 2.4 GHz and 5 GHz. Unfortunately, it looks like the P2 supports BLE 5.0 only unless RealTek have an upgrade path to BT 5.2. So, no BT 5.2 LE audio support.
Still, given the current state of silicon availability and low power Wi-Fi / BT 5.2 SoC from Nordic Semi not due until Q4-22, Particle P2 should be a nice upgrade.