If you only do projects for yourself, you are spoiled. After all, you know your environment better than anyone. You know what power you’ll have, the temperature range, and how your network is configured. This last part is especially problematic if you are trying to deploy something that connects to a wireless LAN. How can you configure, say, a Raspberry Pi so that it can connect to an unknown user’s WiFi network? Fixing that problem is the goal of [schollz’s] Raspberry Pi Turnkey project.
The idea is simple. A Raspberry Pi image boots up for the first time and offers a WiFi hotspot itself called ConnectToConnect. The WiFi password is also ConnectToConnect. Once connected, you get configuration options that allow you to tailor the system to your network. Sure, you could have people log in and reconfigure via a serial terminal, wired ethernet (which isn’t always set up right, either), or a USB keyboard But that’s not a great out-of-the-box experience for most customers.
When the WiFi credentials are entered into the login form at address 192.168.4.1, the Pi will modify its configuration and then reboot itself. The startup script makes sure the connection was successful. If the credentials are not correct, then the Pi will reboot back into the AP mode to allow you to re-enter them again.
This isn’t a fast process, so you should probably try to get it right the first time. You can build your image from the instructions, or you can just download a ready-to-go image that you can then customize.
We couldn’t help but think about the same kind of system we’ve seen for the ESP8266. We also wondered if the simultaneous AP and client code we’ve seen for the Pi Zero could help [schollz] reduce the rebooting required, but we aren’t sure about that.