# 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.