84 lines
5.5 KiB
Markdown
84 lines
5.5 KiB
Markdown
---
|
||
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]]
|