I am turning an ESP32 prototype into a small product. Until now the SSID and password have been hard-coded in the firmware, which obviously cannot ship. The device has no display and only one button.
I have seen SoftAP with a web page, provisioning over Bluetooth LE, SmartConfig and WPS mentioned. How do these work, what are the trade-offs for end users, and how should the credentials be stored and reset?




