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>
This commit is contained in:
41
docs/plans/2026-03-03-plan-redesign-design.md
Normal file
41
docs/plans/2026-03-03-plan-redesign-design.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# 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](../DEVELOPMENT_PLAN.md)
|
||||
Reference in New Issue
Block a user