M5 complete: boot-from-EEPROM with self-provisioning
XBLK binary format for pattern library in NTAG5 upper 1K EEPROM: - 16-byte header (magic, version, pattern count, active index, CRC-16) - Up to 9 × 112-byte fixed-size pattern entries - Deserializer + serializer in src/pattern/mod.rs - MCU self-provisions hardcoded patterns on first boot (no XBLK found) - Subsequent boots load active pattern directly from EEPROM - Python serializer tool for future PCSC-based pattern uploads Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# xblink Project Status
|
||||
|
||||
**Current Milestone**: M5 — Boot-from-EEPROM
|
||||
**Current Milestone**: M6 — SRAM Mailbox
|
||||
**Last Updated**: 2026-03-05
|
||||
|
||||
---
|
||||
@@ -55,13 +55,15 @@
|
||||
- [x] Verified on hardware: config check passes, NDEF readable via NFC
|
||||
- [ ] Register map module (`src/ntag5/registers.rs`) — deferred, constants in mod.rs for now
|
||||
|
||||
### M5: Boot-from-EEPROM
|
||||
### M5: Boot-from-EEPROM (COMPLETE)
|
||||
|
||||
- [ ] Design binary pattern format (informed by M2-M3 experience)
|
||||
- [ ] Implement pattern deserializer (`src/pattern/mod.rs`)
|
||||
- [ ] Implement engine program builder (`src/pattern/engine.rs`)
|
||||
- [ ] Update main.rs: boot → read EEPROM → parse → program LP5562 → idle
|
||||
- [ ] Write Python serializer tool for PCSC pattern uploads
|
||||
- [x] Design XBLK binary pattern format (`docs/plans/2026-03-05-eeprom-pattern-format.md`)
|
||||
- [x] Implement XBLK deserializer (`src/pattern/mod.rs`: parse_header, parse_pattern_entry)
|
||||
- [x] Implement XBLK serializer (`src/pattern/mod.rs`: serialize_pattern_entry, serialize_header, crc16)
|
||||
- [x] Update main.rs: boot → read EEPROM → parse → program LP5562 → idle, with fallback
|
||||
- [x] MCU self-provisioning: write hardcoded patterns to EEPROM on first boot
|
||||
- [x] Write Python serializer tool (`tools/xblk_serialize.py`) for PCSC pattern uploads
|
||||
- [x] Verified on hardware: self-provisioning writes XBLK, subsequent boots load from EEPROM
|
||||
|
||||
### M6: SRAM Mailbox
|
||||
|
||||
|
||||
Reference in New Issue
Block a user