Drogheda/README.md
Leopoldo Rodríguez 2c3dffa232 2026-07-02: PROD schematic complete (ERC 0) + carrier-board PCB + doc sweep to the Jul-2 ledger
Electrical/PCB:
- LTC4040 Block B sized to the 12 Ah 1S4P pack (RPROG 825R -> 2.42 A ~ C/5,
  RS 8 mR -> 3.1 A input limit, PFI 4.60 V, backup 4.79 V, charge 4.00 V Li-ion
  via VSYS-referenced straps) + Block E cutoff (P11) + Block F PA4->VEH5V re-tap
  + Block H fail-safe Modo-B bypass (K1 normally-closed relay) + Block I NTC->PB1.
- CARRIER-BOARD conversion: simpleRTK2B Pro on UNO-pattern female headers (MOD1;
  D0/D1=UART1, D2=RX2, D8=TX2, IOREF=3V3, 5V=SW_5V) + 4G NTRIP Master on on-board
  XBee socket (J7/J8; VCC=3V3_MODEM via new Block K MP1584 buck off SW_5V - the
  HP XBee socket is 3.3 V not 5 V). Board 120x100, placement + GND pour + DRC
  baselines. Custom symbols: LTC4040EUFD, AO4406A, SimpleRTK2B_Pro_Socket.
- Fixed duplicated U2, stale no-connects, A4->A3 sheet; ERC 0 errors.

Docs:
- Canonical electrical-design-state + production delta (Block B values table,
  5b/5c/5d/5e) + design/rationale/connections/BOM swept to the Jul-2 assumptions
  ledger (Conexiones-por-Bloque xlsx).
- Guia de Conexion Protoboard: LaTeX source now maintained in-repo -> v2.1 PDF.
- CircuiTikZ sheet + wiring Beamer: block 11 (NTC->PB1) + guinda ignition legend.
- Client decks: Avance v1.1 (overclaims fixed) + RCA v1.1 (2-jul addendum).

Repo hygiene:
- .gitignore: live rtk-config (SIM/APN/NTRIP creds) now ignored and REMOVED from
  tracking (NOTE: rotate those credentials - they exist in prior commits);
  KiCad .bak/snapshots/.history, LaTeX intermediates, Office locks ignored+purged.
- Removed rogue .history gitlinks that broke git status.
2026-07-02 22:18:56 -06:00

95 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Project Drogheda (GPS RTK)
Helgen Technologies' **HBOX** RTK GPS tracker fleet for **Hutchison Ports** heavy
equipment (ICAVE / TIMSA / EIT / LCT) — centimetre-class position over 4G, streamed to the
Helgen backend (`retranslator` → Wialon/Traccar → VERONICA), built to survive a hot, salty,
high-vibration port environment.
> **New here? Read [`00-Project-Management/Engineering-Handover.md`](00-Project-Management/Engineering-Handover.md) first.**
> It is the deep context: product, failure analysis, fixes, repo map, open items, glossary.
> This README is the 2-minute orientation; [`CLAUDE.md`](CLAUDE.md) is the terse machine index.
---
## Where we are (2026-06-20 · updated 2026-07-02)
> **2026-07-02:** backend deployed + stable; thermal chamber run done; 3-board protoboard
> campaign in flight (units to ICAVE 7-jul). **Watchdog v3 PROD schematic is complete (ERC 0)**
> — LTC4040 battery-backup sized to the 12 Ah pack, fail-safe Modo-B relay bypass — and the
> **PCB is now a 120×100 carrier board**: Blackpill + simpleRTK2B Pro (UNO-shield sockets) +
> 4G NTRIP Master (on-board XBee socket) all on female headers. Layout in placement review;
> fab gate = proto bench validation. Canonical: `03-Architecture-Hardware/watchdog-electrical-design-state.md`.
We deployed a first batch of HBOX trackers on ICAVE machines in **Veracruz**. They worked
"ish," then failed. We are **mid-crisis, hardening for scale** — target **30 units by
August**. The failure is **three independent fronts**, fixed in parallel:
1. **Backend** (confirmed in code) — `retranslator.py` head-of-line blocks the whole fleet
on slow upstream, and an anti-jump filter can **permanently black-hole a healthy unit**.
2. **Thermal** — an **ASA** case (UV-stable, ~95–100 °C — adequate) sealed in a sealed **IP67**
cabinet that also holds the heat-generating **Mean Well** PSU, in full sun → nested heat trap
for the **battery / boost / modem** (not the case).
3. **Prototype hardware** — Dupont + hand-wiring + 18650/PowerBoost; fragile under vibration.
**Units:** all pulled — **4 in hand (3 dead, 1 working-ish)** in Veracruz; team in Querétaro
→ **remote debug**. Field firmware is **v1** (no thermal log).
> **Free triage:** a unit **ONLINE in htracker but OFFLINE in Wialon** is a **backend
> victim**, not dead hardware. Check that before condemning a radio.
---
## The product in one breath
**Rover (HBOX)** on the machine + **Base Station** (Ardusimple AS-PRO-CORS, 110/230 V)
publishing **RTCM3** corrections over **NTRIP**. The rover gets corrections **over the 4G
modem, not the GNSS** → recover a dead link by **power-cycling the 4G stack**, never a GNSS
reset. HBOX core: simpleRTK2B **Pro** (ZED-F9P) · 4G NTRIP Master · STM32F411 watchdog ·
Mean Well SD-15B-05 (24→5 V) · PowerBoost + 18650 · GX16-5 to the cabinet. **24 V is the
production variant.**
## Invariants (never violate)
1. Power-off is the safe state. 2. Never vanish, never loop. 3. Corrections ride the 4G
modem, not the GNSS. 4. No material that softens below ~80 °C (PLA-class) in the thermal path —
the ASA enclosure complies; design to *measured* cabinet temperature. 5. Backend forwards without head-of-line blocking; anti-jump never
locks out a healthy unit. 6. **No secrets in the repo** (the committed MSSQL password is a
live violation to rotate).
## Repo layout
`00-Project-Management` (plan, ethos, financials, **handover**, Drive tooling) ·
`01-Requirements` (SRS, product spec, tracker) · `02-Architecture-Software` (backend review) ·
`03-Architecture-Hardware` (cabinet/HBOX, BOM, PCB brief, watchdog, manual) ·
`04-Source-Code` (`firmware/` · `htracker/` · `notifications/`) ·
`05-Analytics-Reports` (SQL views — placeholder) · `06-Testing-Validation` (RCA, diagnostics) ·
`Marketing` (datasheet, brochure) · `_brand` (LaTeX style) · `99-Archive` (raw inputs).
## Quick start
```bash
# Branded docs (XeLaTeX; League Spartan + MADE Evolve Sans):
cd 01-Requirements/HBOX-Ficha-Tecnica && latexmk -xelatex main.tex
# Firmware (own repo 'hbox-firmware', at 04-Source-Code/firmware):
# open blackpillrtkcode_v2/blackpillrtkcode_v2.ino in the STM32duino toolchain.
# ⚠ Bench-test before any field flash — the sandbox cannot build STM32.
# Backend: 04-Source-Code/htracker (ssh://git.helgen.dev:6611/htracker, feature/test500unidades)
```
## Storage model (one home per artifact)
**This repo** = working source of truth (editable `.md`/`.tex`, code). **Google Drive**
`Drogheda (GPS RTK)` = finalized exports (branded PDFs, native Docs/Sheets). **Second Brain
vault** = distilled decisions/lessons. Author in repo → export final to Drive → distill to
vault. Drive upload how-to + mapping: `00-Project-Management/Drive-Upload/README.md`. Never
change Drive sharing — that's Leo's call.
## Go deeper
- **Deep context / onboarding** → [`00-Project-Management/Engineering-Handover.md`](00-Project-Management/Engineering-Handover.md)
- Current priorities → [`00-Project-Management/PLAN.md`](00-Project-Management/PLAN.md)
- Machine index → [`CLAUDE.md`](CLAUDE.md)
- Failure analysis → [`06-Testing-Validation/RCA-2026-06-field-failures.md`](06-Testing-Validation/RCA-2026-06-field-failures.md)