212 lines
4.9 KiB
Markdown
212 lines
4.9 KiB
Markdown
# TODO - OpenParcelBox
|
|
|
|
This document tracks the remaining work required to reach the first stable release of OpenParcelBox.
|
|
|
|
Tasks are grouped by development phase and updated throughout the project.
|
|
|
|
---
|
|
|
|
## Phase 0 - Project Foundation
|
|
|
|
### Repository
|
|
|
|
- [x] Create repository.
|
|
- [x] Create project structure.
|
|
- [x] Create README.
|
|
- [x] Create ROADMAP.
|
|
- [x] Create TODO.
|
|
- [x] Add LICENSE files.
|
|
|
|
### Documentation
|
|
|
|
- [x] Create documentation tree.
|
|
- [x] Create firmware documentation.
|
|
- [x] Create hardware documentation baseline.
|
|
- [ ] Create development documentation.
|
|
- [x] Create BLE protocol documentation.
|
|
|
|
### Firmware Baseline
|
|
|
|
- [x] Configure Zephyr.
|
|
- [x] Configure west and CMake.
|
|
- [x] Define firmware architecture.
|
|
- [x] Configure formatting conventions.
|
|
|
|
---
|
|
|
|
## Phase 1 - Reverse Engineering
|
|
|
|
### Mechanical
|
|
|
|
- [ ] Measure enclosure.
|
|
- [ ] Measure internal space.
|
|
- [ ] Measure mounting points.
|
|
- [ ] Measure keypad.
|
|
- [ ] Measure NFC area.
|
|
|
|
### Lock
|
|
|
|
- [x] Identify lock mechanism.
|
|
- [x] Validate lock command behavior.
|
|
- [x] Validate feedback contact behavior.
|
|
- [ ] Design production lock driver circuit.
|
|
|
|
### Electronics
|
|
|
|
- [ ] Identify every connector.
|
|
- [ ] Document original PCB.
|
|
- [ ] Document wiring.
|
|
- [ ] Document LEDs.
|
|
- [x] Validate active buzzer approach.
|
|
|
|
---
|
|
|
|
## Phase 2 - Development Platform
|
|
|
|
### Firmware Infrastructure
|
|
|
|
- [x] RGB LED driver.
|
|
- [x] GPIO expander driver.
|
|
- [x] Matrix keypad driver.
|
|
- [x] Active buzzer driver.
|
|
- [x] Lock driver.
|
|
- [x] Door or lock state driver.
|
|
- [ ] Battery driver.
|
|
- [x] PN532 NFC driver over I2C.
|
|
|
|
### Documentation
|
|
|
|
- [x] keypad.md.
|
|
- [x] gpio_expander.md.
|
|
- [x] buzzer.md.
|
|
- [x] debug.md.
|
|
- [ ] led.md.
|
|
- [x] lock.md.
|
|
- [ ] battery.md.
|
|
- [x] nfc.md.
|
|
|
|
---
|
|
|
|
## Phase 3 - Hardware Validation
|
|
|
|
### Lock
|
|
|
|
- [x] Drive lock through the selected circuit.
|
|
- [x] Validate opening pulse.
|
|
- [x] Validate opening detection.
|
|
- [ ] Validate timeout.
|
|
- [ ] Validate error handling.
|
|
|
|
### Door or Lock State
|
|
|
|
- [x] Read feedback contact.
|
|
- [x] Validate state changes.
|
|
- [ ] Validate debounce.
|
|
|
|
### Battery
|
|
|
|
- [ ] Read voltage.
|
|
- [ ] Implement low battery detection.
|
|
- [ ] Calibrate battery measurement.
|
|
|
|
### NFC
|
|
|
|
- [x] Select PN532 development NFC reader.
|
|
- [ ] Design reader antenna.
|
|
- [ ] Validate reader tuning network.
|
|
- [x] Read UID through the PN532 reader.
|
|
- [ ] Detect badge removal.
|
|
|
|
### Buzzer
|
|
|
|
- [x] Single keypad beep.
|
|
- [ ] Double beep.
|
|
- [x] Error beep.
|
|
- [x] Success beep.
|
|
|
|
---
|
|
|
|
## Phase 4 - Firmware Core
|
|
|
|
### Initialization
|
|
|
|
- [x] Keep the local keypad path available before Settings and BLE startup.
|
|
- [x] Initialize all currently implemented peripherals.
|
|
- [ ] Standardize error handling.
|
|
|
|
### Access Control
|
|
|
|
- [ ] Administrator PIN.
|
|
- [x] PIN verification.
|
|
- [ ] PIN timeout.
|
|
- [ ] Anti brute-force logic.
|
|
- [x] Lock opening sequence.
|
|
- [x] Door or lock state validation.
|
|
|
|
### Configuration
|
|
|
|
- [x] Persistent storage.
|
|
- [x] Factory reset.
|
|
- [ ] Version information.
|
|
|
|
---
|
|
|
|
## Phase 5 - Power Management
|
|
|
|
- [ ] Battery monitoring.
|
|
- [ ] Battery warnings.
|
|
- [ ] Sleep mode.
|
|
- [ ] Wake on keypad.
|
|
- [ ] Wake on dedicated NFC reader.
|
|
- [ ] Measure sleep current.
|
|
- [ ] Measure battery life.
|
|
|
|
---
|
|
|
|
## MVP - Standalone Firmware
|
|
|
|
- [ ] Complete firmware startup.
|
|
- [x] Lock opening.
|
|
- [x] Door or lock feedback.
|
|
- [ ] Battery monitoring.
|
|
- [ ] Administrator PIN.
|
|
- [x] Administrator NFC badge through the PN532 reader.
|
|
- [x] Audible feedback.
|
|
- [x] Standalone local keypad and NFC operation.
|
|
- [ ] Battery-powered operation.
|
|
- [x] No mandatory cloud dependency.
|
|
- [x] No subscription.
|
|
|
|
---
|
|
|
|
## Later Phases
|
|
|
|
- [x] Firmware BLE command service.
|
|
- [x] Initial Flutter mobile application shell.
|
|
- [x] Mobile Bluetooth scan and connect UI.
|
|
- [x] Mobile clock-sync command.
|
|
- [x] Mobile random permanent and one-time code management UI.
|
|
- [x] Mobile permanent-code editing and clipboard actions for both code lists.
|
|
- [x] Mobile NFC tag add/remove UI.
|
|
- [x] Mobile direct lock-open command UI.
|
|
- [x] Mobile stored-state readback from firmware.
|
|
- [x] Administrator and named guest identity storage.
|
|
- [x] Local seven-day event history.
|
|
- [x] Secure BLE pairing and encrypted application authorization.
|
|
- [x] App-triggered named NFC enrollment flow.
|
|
- [x] Branded Android launcher icon and native splash screen.
|
|
- [x] French/English application localization and language override.
|
|
- [x] Secure saved-box registration and automatic BLE reconnection.
|
|
- [x] Administrator/guest modal dashboard and role restrictions.
|
|
- [x] Guest invitation QR generation, scanning, and revocation.
|
|
- [x] Password-protected AES-256-GCM application backup and restore.
|
|
- [x] Mobile opening-history, NFC, and factory-reset administration.
|
|
- [ ] Validate pairing recovery and guest invitation on Android and iOS hardware.
|
|
- [ ] Zigbee connectivity.
|
|
- [ ] Home Assistant integration.
|
|
- [x] One-time temporary PINs.
|
|
- [ ] Time-limited and usage-count temporary credentials.
|
|
- [ ] Dedicated PCB.
|
|
- [ ] Field validation.
|
|
- [ ] Complete user, maker, and developer documentation.
|