Files
xblink/docs/plans/2026-03-03-plan-redesign-design.md
michael e4195d2583 Add LP5562 driver, M1 smoke test, and milestone-based plan
- Integrate LP5562 driver from sibling project (ntag5-samd21-lp562)
  with full doc comments restored
- Update main.rs with complete M1 test: I2C init, GPIO EN, RGBW cycle
- Rewrite DEVELOPMENT_PLAN.md from waterfall to milestone-based groups
  organized by hardware availability (Groups A-E)
- Rewrite STATUS.md with milestone checklist tracking
- Add LP5562 timing constraints and flash script docs to CLAUDE.md
- Add flash_when_ready.sh for auto-flash dev workflow
- Add brainstorm design doc for plan redesign rationale

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 10:26:24 -08:00

1.7 KiB

Plan Redesign: Waterfall → Milestone-Based Development

Date: 2026-03-03

Problem

The original 9-phase sequential plan had three issues:

  1. Premature abstraction — LedController trait designed before hardware validation
  2. Phases too large — multi-session phases with unclear stopping points
  3. Hardware dependencies unclear — couldn't tell what to work on with partial hardware

Decision

Restructured into milestone-based groups organized by hardware availability:

Group Hardware Needed Milestones
A XIAO M0 + LP5562EVM + USB cable M1 smoke test, M2 engine patterns, M3 pattern library
B + NTAG5Link Click board + I2C jumper M4 EEPROM, M5 boot-from-EEPROM, M6 SRAM mailbox
C + Hall sensor + multimeter M7 sleep/wake, M8 recovery, M9 power characterization
D All Group A-C hardware M10 LedController trait, M11 SimplePwm
E Future Custom PCB, companion app, NFC OTA

Key Principles

  • Hardware-first: Get real LEDs blinking before designing abstractions
  • YAGNI: No traits, formats, or protocols until we need them
  • Small milestones: Each produces a flashable, testable result (~1 session)
  • Deferred abstraction: LedController trait moves to M10 (after M1-M9 prove the real interface)
  • Pattern format informed by experience: Binary format designed in M5 after M2-M3 engine programming experience

Current Status

  • Phase 0 (scaffold) complete
  • M1 code ready to flash (LP5562 driver integrated, main.rs has RGBW cycle test)
  • Blocked on mini-USB cable for flashing

Reference

Full plan: docs/DEVELOPMENT_PLAN.md