E1 clearance 0.1433 < 0.15 (/LED_A via vs /I2C_SCL via, 4 raw reports)
Relocated the /LED_A via 202c8cb4 from (147.15,85.85) to (147.25,86.22),
dead centre of the U13.1/U13.2 gap. uuid preserved; both attached segment
endpoints carried (In1.Cu 375e8fa7, B.Cu dee4fa4e). Worst gap now +0.2405.
E2 unconnected_items x2 + starved_thermal x1 -- ONE root cause.
The F.Cu GND pour pocket around U11 pad 29 was an island: it touched the
pad with a single thermal spoke but was fenced in by the LQFP-48 lead ring
and the escape routing, so it reached nothing else. Gave pad 29 a real
copper escape west to a new GND via that punches through to the In2 GND
plane, and set the pad to solid zone connection so the 2-spoke thermal
rule stops applying to a pad the pour can only reach from one side.
seg F.Cu w0.3 GND (99.4525,55.26)->(98.65,55.26) margin +0.2000
seg F.Cu w0.3 GND (98.65,55.26)->(97.55,54.45) margin +0.2000
via 0.6/0.3 F.Cu-B.Cu GND @(97.55,54.45) copper +0.2718
U11 pad 29 -> (zone_connect 2)
+0.2000 is the structural ceiling for a 0.5mm-pitch lead escape with a
0.3 track, and matches the neighbouring /3V3_ETH and /ETH_XI escapes.
E3 via_dangling /3V3_ETH via 3b0bb378 @(87.18,55.23) connected on F.Cu only.
Deleted. Touch test: 4 touching F.Cu segments, zero on In1/In2/B.Cu. The
F.Cu run at x=87.18 is collinear and continuous without it.
Verified: static DRC 0 hard violations (49 pre-existing marginals inside
KiCad's 0.0005 epsilon, unchanged). Per-net islands unchanged at 1 for
/LED_A /3V3_ETH /I2C_SCL /ETH_XI /ETH_RSET. New via lands inside
GND_PLANE_IN2 + GND_POUR_BCU, outside MAGJACK_NO_POUR. U11 is a plain
LQFP-48 with no exposed pad, so the under-body via is clear. Leo's 24V-class
copper (24V /24V_IN IGN_IN, 45 segments) byte-identical.
Backup: .mcp-backups/hbox-watchdog-v4.kicad_pcb.pre-C12 (md5 7c2202cb)
New: md5 042efd5dd0cf99fdcfd27974b7bcb3c1 3502425 bytes
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GSKKes8GsS4YHAMWJ44tCm
|
||
|---|---|---|
| _brand | ||
| .claude/skills/project-drogheda | ||
| 00-Project-Management | ||
| 01-Requirements | ||
| 02-Architecture-Software | ||
| 03-Architecture-Hardware | ||
| 04-Source-Code | ||
| 05-Analytics-Reports | ||
| 06-Testing-Validation | ||
| 99-Archive | ||
| Marketing | ||
| mcpmarket-me | ||
| scripts | ||
| .gitignore | ||
| .gitmodules | ||
| CLAUDE.md | ||
| mcpmarket-plugin-me.zip | ||
| README.md | ||
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.mdfirst. It is the deep context: product, failure analysis, fixes, repo map, open items, glossary. This README is the 2-minute orientation;CLAUDE.mdis 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:
- Backend (confirmed in code) —
retranslator.pyhead-of-line blocks the whole fleet on slow upstream, and an anti-jump filter can permanently black-hole a healthy unit. - 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).
- 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)
- 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
# 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 - Current priorities →
00-Project-Management/PLAN.md - Machine index →
CLAUDE.md - Failure analysis →
06-Testing-Validation/RCA-2026-06-field-failures.md