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