Wi-Fi setup is the first thing a connected device asks of its owner, yet it crosses firmware, mobile OS dialogs, radio discovery, credentials, and router behavior. Groundrun put an ESP32-C6 and an Android phone into the same hardware-in-the-loop rig and turned five commissioning paths into repeatable CI flows.

The suite exercises the real user paths:

  • Bluetooth LE sends credentials directly from phone to board
  • Soft AP makes the phone join a temporary network created by the board
  • Captive portal adds a short-lived, OS-controlled browser form
  • SmartConfig broadcasts encoded credentials while the board listens
  • WPS has the router and board negotiate without an app

Each run records firmware flashing, app launch, access-point setup, provisioning, confirmation, and teardown separately. That split showed what one total would hide:

  • Full scenarios ranged from 45 seconds for WPS to 124 seconds for Soft AP
  • The provisioning step alone took 6 seconds for WPS and 77 seconds for Soft AP
  • Captive-portal tests must submit before Android closes the sign-in page
  • Bluetooth and Soft AP must wait for unpredictable system dialogs
  • WPS requires the rig to create and remove its own 2.4 GHz network

The broader lesson is that onboarding reliability lives at system boundaries. A firmware unit test cannot tell you whether Android displayed its dialog late, closed a portal early, or whether retained credentials changed the next boot.

Treat those user-visible flows as product contracts: exercise the real hardware and OS, run them on every change, and retain phase-level timings so a passing test cannot quietly become an unusably slow one.