Major cleanup of the BLE provisioning flow:
- Remove frames 3-6 disable steps (no longer overwriting "extra frames")
Only Frame 1 (device info) and Frame 2 (iBeacon) are configured now.
Command count drops from 24 to 16.
- Eliminate 5 layers of retry/reconnect/resume logic:
No more disconnect retry counter (was 5 retries)
No more resume-from-position after reconnect
No more characteristic re-discovery attempts
No more device info read/skip dance
If connection drops mid-write, fail cleanly — let user retry.
- Prevention approach: verify all 3 required characteristics (FFE1/FFE2/FFE3)
are confirmed before starting any writes. No mid-write discovery.
- Add POST_AUTH_DELAY (1.5s) to let beacon stabilize after auth before writes.
- Keep response gating (wait for FFE1 after each write) — this is the key
mechanism that prevents blasting commands faster than the MCU can handle.
- 191 insertions, 476 deletions — nearly half the code removed.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>