--- tags: [project-drogheda, requirements, srs] project: Project Drogheda author: Helgen CTO date: 2026-06-20 status: Draft --- # Software/System Requirements — Drogheda HBOX RTK > What the Drogheda system must do and how well. Derived from the ICAVE field > failures, the client review, and the productization goal (30 units by August > across ICAVE/TIMSA/EIT/LCT). IDs are stable; trace fixes and tests back to them. ## 1. Scope A vehicle-mounted, cabinet-housed **RTK GPS tracker (HBOX)** that streams RTK-corrected position over 4G to the backend (`retranslator` → Wialon/Traccar → VERONICA), survives a harsh, hot, high-vibration port environment, and is manufacturable and serviceable at fleet scale. ## 2. Functional requirements | ID | Requirement | Priority | |---|---|---| | FR-1 | Acquire GNSS position via simpleRTK2B Pro (ZED-F9P), multiband. | Must | | FR-2 | Obtain RTCM3 corrections via NTRIP over 4G from the Helgen base station; achieve RTK fix/float in open sky. | Must | | FR-3 | Emit NMEA (GGA+RMC) and deliver it via UDP to the backend at the configured rate. | Must | | FR-4 | Rate control: 1 Hz when powered+ignition-on; 30 s on battery/idle (power saving). | Must | | FR-5 | **Watchdog recovery:** detect loss of corrections / NMEA silence and recover by **power-cycling the RTK+4G stack** with exponential backoff; never enter an infinite fast-reboot loop. | Must | | FR-6 | **Degraded reporting:** when corrections can't be restored, keep reporting standalone GPS (LIMP) instead of going offline. | Must | | FR-7 | Power management: run on cabinet 24 V; ride-through / battery behavior per the chosen battery strategy; protect the cell (no charge >45 °C if a cell is retained). | Must | | FR-8 | Field-readable status LED (boot / running / battery / searching / LIMP / power-cycle / sleep). | Should | | FR-9 | Per-unit identity (cell_id) and provisioning (UART config, unique ID, NVM save) repeatable per the SOP. | Must | | FR-10 | SIM/data-chip serviceable without full disassembly. | Should | | FR-11 | Observability: log MCU/enclosure temperature, battery V, fix quality, reset events for field diagnosis. | Should | | FR-12 | **Backend:** ingest from many units concurrently without head-of-line blocking; forward valid fixes to Wialon; anti-jump filter must never permanently lock out a healthy unit. | Must | ## 3. Non-functional requirements | ID | Requirement | Target | |---|---|---| | NFR-1 Thermal | Operate continuously inside the sealed cabinet in Veracruz sun. | Internal components rated/derated for **≥75 °C**; enclosure is **ASA** (UV-stable, ~95–100 °C — no PLA-class material in the thermal path); measured cabinet-interior target set from a sunny-shift log. | | NFR-2 Vibration | Survive continuous heavy-machinery vibration (RTG, reach stacker). | No Dupont/hand-wire; locking connectors; retained boards; conformal coat. Target ≥2 G per spec sheet — **validate**. | | NFR-3 Ingress | Maintain **IP67**; no internal condensation. | Sealed; Gore vent for pressure/humidity; cooling via conduction only (no IP-breaking vents). | | NFR-4 Electrical | Tolerate the machine electrical environment. | Surge/breaker/ignition isolation handled at the **cabinet** (Phoenix SPD + breaker + SSR); HBOX adds a modest local TVS + reverse-polarity. | | NFR-5 Availability | Minimize Wialon disconnects per unit. | No reset loops (FR-5); backend HOL-block eliminated (FR-12); define a monthly availability SLO once stabilized. | | NFR-6 Maintainability | Serviceable, documented, repeatable. | One PCB; labeled; test points; published BOM; SIM access (FR-10). | | NFR-7 Scalability | Backend handles fleet scale. | ≥500 concurrent units without drop under realistic (slow-upstream) load tests. | | NFR-8 Security | No secrets in the repo. | Rotate the committed MSSQL password; secrets via env/secret store; least privilege. | | NFR-9 Manufacturability | Buildable for the August batch. | Production BOM locked; assembly doc; pilot units validated before fleet. | ## 4. Constraints & assumptions - HBOX input is the cabinet's **regulated 24 V** + an **isolated ignition** signal. - The **cabinet** (Yetlebox IP67 ABS + DIN industrial parts) stays; the redesign targets the **HBOX internals** + thermal/mechanical. - ZED-F9P (−40…+85 °C) is not the thermal weak link; the **18650/PowerBoost** and **4G modem** are (the **ASA case** is adequate). - Corrections flow over 4G, not the GNSS (drives FR-5/FR-6). - Firmware must be bench-validated before field flash (no STM32 build in sandbox). ## 5. Acceptance criteria (high level) - A unit on the bench: boots, gets RTK fix/float, transmits, and **recovers automatically** from a forced 4G/NTRIP outage within the backoff window without looping (FR-5/6). - Backend: under a 500-unit slow-upstream load test, **no unit is dropped** and no unit is permanently filtered out (FR-12, NFR-7). - Thermal: a unit survives a full sunny-shift soak at the measured cabinet interior temperature with no enclosure deformation and no battery over-temp (NFR-1). - A pulled unit's logs distinguish hardware death from backend victimhood (FR-11). ## Open Questions - [ ] Battery strategy (drop / LiFePO4 / supercap) → finalizes FR-7, NFR-1. - [ ] Confirm the 2 G vibration claim and IP67 after the thermal mods (NFR-2/3). - [ ] Define the numeric availability SLO (NFR-5) once the fleet is stable. ## Related - [[CLAUDE|Master Index]] · [[01-Requirements/HBOX-product-spec|HBOX Product Spec]] · [[06-Testing-Validation/RCA-2026-06-field-failures|RCA]] · [[00-Project-Management/PLAN|PLAN]]