From 0a80389fd8b9b600482d69469d7a4b719c84bea2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leopoldo=20Rodr=C3=ADguez?= Date: Thu, 22 Oct 2026 13:13:34 -0600 Subject: [PATCH] =?UTF-8?q?v6=20T38=20+=20propuesta=20=CE=B1=20del=20bloqu?= =?UTF-8?q?e=20A=20(D-21-3);=20fuente=20de=20la=20gu=C3=ADa=20del=20ingeni?= =?UTF-8?q?ero=20al=20d=C3=ADa;=20subm=C3=B3dulos=20kicad=20y=20hbox-docs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01QCy5VHMVLkAmftYM6swWmx --- 03-Architecture-Hardware/kicad | 2 +- CLAUDE.md | 38 ++++++++++++++++++++++++++++++++-- hbox-docs | 2 +- 3 files changed, 38 insertions(+), 4 deletions(-) diff --git a/03-Architecture-Hardware/kicad b/03-Architecture-Hardware/kicad index b74b96f..87340bf 160000 --- a/03-Architecture-Hardware/kicad +++ b/03-Architecture-Hardware/kicad @@ -1 +1 @@ -Subproject commit b74b96f53c1692267b773c80476a4642bdeee5e5 +Subproject commit 87340bf76ff029999d9277848472f777a5b84964 diff --git a/CLAUDE.md b/CLAUDE.md index 8c2dc58..06e7ffe 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -322,6 +322,40 @@ pads (the pads alone are 33 mm²), pad-centre loop ≤ 60 mm² (today 115). MH4 Canonical: v6 state doc rev 1.1 (§3, §5); figure `img/2026-10-21_Drogheda_v6-T38-Courtyards-U25-Barrenos_v1.0.png`. Lessons: easyeda2kicad footprints ship body-only courtyards — sweep "pads outside courtyard" on every imported footprint; and check pours, not only tracks, against hardware keep-outs. +**Final production audit of V5.6 + V5.7 (2026-10-22; Leo: "all my other sessions say we're almost production ready… boards are +to be ordered today").** Protocol first (`03-Architecture-Hardware/2026-10-22_…_Protocolo_ES_v1.0.md`, the "reprompt"), then the +audit on the fab packages `production/HBOX_v5_Rev6_PROD` (V5.6, `hbox-watchdog-v5`) and `HBOX_v5_Rev7_PROD` (V5.7, `hbox-watchdog-v57`). +**Verdict: GO for the 5 + 5 pilot today with three order conditions that touch no copper** — (1) JLC *Epoxy Filled & Capped* vias + +X-ray on U6 (3 thermal vias inside the 50 % paste windows of the 0.5 mm QFN: the V5.5/V4 bridging cause); (2) rotation/polarity +check in the JLC viewer for U6, U7, U25, U26, L22, Q7, U16, D34, D10 and the electrolytics (easyeda2kicad footprints never fabbed, +no Toolkit rotation table); (3) BOM D10 SMBJ33A → SMBJ33CA (C8838 / C2688178; the unidirectional part opens SMD fuse F2 on a reversed +harness). **NO-GO for the 108 / 322 until the pilot passes the bench with firmware 0.7.0** — no firmware enables the modem of these +boards today (`MODEM_EN` = PC3 is new; 0.6.3 also reads the NTC on the wrong pin, floats at 4.00 V instead of 3.50 V LFP and reads +ignition digitally — 12 V lands at 1.38 V, undefined). Package verified: Gerbers identical to a kicad-cli regeneration with a fresh, +project-aware zone fill (0.000 mm² XOR; masks/paste/silk/drills identical), DRC = only the 3 MOD1 errors, 0 unconnected, parity only +PWR_FLAG, RS1 Kelvin on VIN and CLN on both, BOM/CPL = PCB (226/229 placed, all with LCSC). **P-1:** both repo `.kicad_pcb` carry the +pass-5 zone fill (the Toolkit refilled at export; a non-refilled export shorts GND onto the T35/T37 vias) → Leo opens, B, saves, +commits; rule **D-22-3**: every T script that touches copper ends with a GUI refill before the commit (lesson: headless refill +without the `.kicad_pro` beside the board gives a different fill — copy the project, not just the board). Electrical: LTC4040 +(PFI 4.40/4.51 V, backup 4.79 V, 2.5 A Kelvin, 1.40 A, 3.50 V LFP, NTC +10…+60 °C), AP64350 modem rail (3.33 V / 500 kHz from +SYS5V, EN off by default, C130, C43 220 µF — the V5.5 modem brownout is gone by design), TPS54360B (5.32 V / 600 kHz, 9–32 V, EN +floating) all checked against the datasheets. Ports usable with two rules: RS-485 DE//RE hang on RTSA (transmitter on from reset +until the firmware writes EFCR — ~1 s bus hold) and H4 (TTL) vs P16 (RS-232) never together (shared SER_RXB); for 108/322 swap +SP3485 → THVD1410DR (C2671345) and MAX3232 → TRS3232E (P-5, same pinout). Battery: 2.9 W avg / 8.7 W peak (< 12 W boost); sleep +floor ≈ 75 mW only with the W5500 in PHY power-down (no 3V3_ETH enable, E-3) → ≈ 5 days at 45 s every 10 min; thresholds LFP +2.95 / 3.20 V; 10-min cycle = STOP + RTC (LSE FC-135 with 12 pF caps runs fast, LSI fallback) + SC7A20 INT1 (PB9) + ordered +power-down (MODEM_EN, PA1, K1 released, UARTs Hi-Z). V5.7-only: ignition 12 V → ADC with 0.80/0.55 V hysteresis (E-7); U25 input +loop ≈ 56 mm² stays (D-21-2 holds) and is bench-checked at 9/24/32 V, 2.8 A; two series input vias (E-10). 30 findings (P-1..P-8, +E-1..E-16, F-1..F-8), 16 risks (5×5 before/after), 6 easy wins. Deliverables: `03-Architecture-Hardware/ +2026-10-22_Drogheda_Auditoria-Final-Produccion_V5.6-V5.7_ES_v1.0.md` (canonical, site `hardware/auditoria-final-22oct/`) · +`Auditoria-Final-V56-V57/` (LaTeX sources, 33-pp PDF, 19-frame Beamer, figures, scripts: `gerb.py` Gerber parser/renderer, `gcmp.py` +primitive/XOR comparison, `netparse.py`, `copper.py` connectivity + Kelvin + cut-via test, `riesgos.py`) · 8 figures in `img/` · +**`04-Source-Code/firmware/hbox_v5_bringup/board_v56.h`** (64-pin map from the 22-oct netlist, V5.6 = V5.7; needs the +`#elif defined(HBOX_BOARD_V56)` include in the .ino) · lote `2026-10-22_auditoria-final` (closes `t-v56-revision-gerber`, re-aims +`t-v56-piloto` at today's 5 + 5 order with the checklist, `t-fw-070` in progress with F-1..F-8 sized, creates `t-p1-relleno-commit`, +`d-22-1-go-piloto`, `t-preorden-108-322-bom`). 0.7.0 work list: F-1 0.7.0-pre 1 day · F-2 backup cycle 3–4 days · F-3 SC16IS752 1 day · +F-4 field Ethernet 2 days · F-5..F-8 2 days. + **Command centre (2026-10-21, 20:00; Leo: «this is the command centre for all tasks»).** Rule and closing loop in ★ above. Built the bridge that lets Claude's tasks reach the board: `hbox-docs/backend/tablero.py` (stdlib; foto / revisar / aplicar / pendientes through the live API as `X-Remote-User: claude`; ledger @@ -410,8 +444,8 @@ these before presenting; if it breaks one, say so and propose the compliant fix. | `00-Project-Management` | plan, ethos, hackathon, **financials**, **handover**, client comms, Drive tooling | [[00-Project-Management/PLAN\|PLAN]] · [[00-Project-Management/Engineering-Handover\|Engineering-Handover]] · `ethos.md` · `hackathon-plan.md` · `Financials.md` · `Drive-Upload/` · `client-comms/` | | `01-Requirements` | what we build | `SRS.md` · `HBOX-product-spec.md` | | `02-Architecture-Software` | backend/software analysis, ADRs | `backend-review.md` | -| `03-Architecture-Hardware` | HBOX/cabinet, wiring, BOM, **watchdog PCB v3** | `hardware-respec-and-pcb-brief.md` · `cabinet-electrical-bom.md` · `watchdog-schematic.md` · `watchdog-health-telemetry.md` · `firmware-review.md` · `BOM-master.md` (+§5 Block B/E/H/I parts) · **`watchdog-pcb-v3-design.md`** (schematic spec) · `watchdog-pcb-v3-bom.xlsx` · `watchdog-pcb-v3-kicad-guide.md` (KiCad→JLCPCB) · `watchdog-pcb-v3-blockdiagram.svg` · `watchdog-protoboard-bringup.md` + `watchdog-proto-bench-bringup-v3.md` · `watchdog-connections.xlsx` (PCB pin/net list; H1 DNP; +B/H/I rows) · `watchdog-connections-rationale.md` (+§7 additions 2026-07-02) · **`watchdog-electrical-design-state.md`** (CANONICAL — read first) · **`watchdog-production-schematic-delta.md`** (PROD build spec; LTC4040 §4 values) · `kicad/` — `hbox-watchdog-v3.kicad_sch` (**DEV/proto**) · `hbox-watchdog-v3-PROD.kicad_sch/.kicad_pcb` (**PRODUCTION**: ERC 0, layout started, DRC baseline) · `Drogheda-sym.kicad_sym` (MP1584EN · LTC4040EUFD · AO4406A) · `Drogheda_Conexiones-por-Bloque_Proto_v1.xlsx` (**proto assumptions ledger**) · `Guia-Conexion-Protoboard/` (LaTeX source; `modulos-pinout.tex` = visual parts catalog) → `Drogheda_Guia-Conexion-Protoboard_ES_v3.1.pdf` · **`2026-07-08_Drogheda_4G-Modem-Alternatives_v1.0.md`** (XBee 2.0 mm bridge + cheap-4G survey) · `circuitikz-wiring/` (sheet + Beamer v2.1, blocks 1–11; XBee-socket 3V3 fix 07-08; **`Drogheda_Diagrama-Unico-Proto`** = todo-en-una-hoja para verificación rápida, Modo B; v1.1 07-10 agrega XBee 20-pin obligatorios VREF(14)→VCC · ON/OFF(20)→GND · GND×4 + USB config + franja de pinouts para el técnico; HiRes-300dpi.png para TV; **v1.2 07-20**: letras G/D/S·B/C/E en todos los transistores + bloque 5b Q10+DzG 15V) · **Guía v3.1** (5b Q10+Zener · 9c pines obligatorios XBee + USB · disipadores · plano 10×10) · **lista de compras reconstruida DESDE CERO** (1 tarjeta ≈MX$2,087) · `watchdog-protoboard-BOM-3boards.xlsx` + `watchdog-LISTA-DE-COMPRAS-ES.xlsx` (proto BOMs; 07-10: +BOB-08276/PRT-08272, buck «MODEM 3.3V», breakout USB-C+cable, botón/LED módem, straps VREF/ON-OFF, surtido +220R/22k) · **`2026-07-06_Drogheda_EinarBoard-1.0-PreFab-Audit_v1.0.md`** (CLOSED — Rev 1.1 fixes) · `Assembly-BOM-Split.md` + `LCSC-search-list.md` (verified LCSC) + `JLCPCB-Order-Guide.md` (ordering runbook) · `harness-connector-pinout.md` + `Socket-Pinout-Silkscreen.md` · **`EinarBoard-Manual/`** (Rev 1.1 order-prep pack: `einarboard-manual.tex` → branded PDF · `helgen_einarboard_1.0_production_bom.xlsx` · `tools/generate_production_bom.py` + `tools/sync_bom.py` Excel→LaTeX BOM sync) — plus repo-root `scripts/prep_order_release.sh` (safe cleanup + release commit) · **`2026-10-16_Drogheda_Auditoria-Produccion_V5.6-V5.7-v6_ES_v1.0.md`** (production audit + comparison table) + `2026-10-16_Drogheda_Instrucciones-Michelle_V5.6-V5.7-Pasada-3_ES.md` · `kicad/tools/t25_mounting_holes_v55.py` (restores the 7 V5.5 holes) · `kicad/tools/t27_paso1_2_mh11_rs1_kelvin.py` (MH11 out + RS1 Kelvin, V5.6/V5.7) · `kicad/tools/t28_v6_mecanicos.py` (v6: U25 part code, stackup, U6 paste) · `kicad/tools/t30_v56_v57_mecanicos.py` (V5.6/V5.7 mechanical fixes, 19-oct) · `kicad/tools/t31_c129_vsys_quitar_dbk2.py` (V5.6/V5.7 schematic: C129 at U6 VSYS + Dbk2 out, 20-oct) · `kicad/tools/t32_c130_vin_u7.py` (V5.6/V5.7 schematic: C130 at U7 VIN, 21-oct) · `kicad/tools/t33_v56_v57_auditoria_21oct.py` (V5.6/V5.7 PCB fixes from the 21-oct audit) · `kicad/tools/t34_v56_pasada6.py` + `t35_v56_via_u7.py` (V5.6 pass 6) · `kicad/tools/t36_v57_pasada6.py` + `t37_v57_c129_gnd.py` (V5.7 pass 6) · `kicad/tools/t38_v6_courtyards_mh.py` (v6: courtyards of the 11 easyeda2kicad footprints + library, MH6 `/3V3` to B.Cu, 4-mm MH rule in the `.kicad_dru`) · `2026-10-16_Drogheda_Auditoria-Produccion_v6_ES_v1.0.md` + `2026-10-16_Drogheda_Plan-Fines-de-Semana_v6-Produccion_ES.md` (v6 audit + weekend plan, rev 1.3) · **`2026-10-19_Drogheda_Re-Auditoria_V5.6-V5.7-v6_ES_v1.0.md`** (re-audit of all three) + `2026-10-19_Drogheda_Instrucciones-Michelle_V5.6-V5.7-Pasada-4_ES.md` · **`2026-10-19_Drogheda_V5.6_Clasificacion-Criticos_ES_v1.0.md`** (V5.6 critical vs. can-stay; C129) · **`2026-10-21_Drogheda_Auditoria-Pasada-4_V5.6-V5.7_ES_v1.0.md`** (audit of pass 4, T32/T33 results, pass-5 review, pass 6 done by Claude with T34–T37 + D-21-2) · **`2026-10-21_Drogheda_Estado-v6-T25-T28_ES_v1.0.md`** (v6 state 21-oct, rev 1.1: T25 + T28 + T38 applied, block A proposal α, MH rule) | -| `04-Source-Code` | firmware + backend repos | `firmware/` (**own git repo `hbox-firmware`**: `blackpillrtkcode_v2/` deploy · `legacy/` v1 · `docs/LOGGING-SPEC.md` v2.1) · `htracker/` · `notifications/` · `rtk-config/` | +| `03-Architecture-Hardware` | HBOX/cabinet, wiring, BOM, **watchdog PCB v3** | `hardware-respec-and-pcb-brief.md` · `cabinet-electrical-bom.md` · `watchdog-schematic.md` · `watchdog-health-telemetry.md` · `firmware-review.md` · `BOM-master.md` (+§5 Block B/E/H/I parts) · **`watchdog-pcb-v3-design.md`** (schematic spec) · `watchdog-pcb-v3-bom.xlsx` · `watchdog-pcb-v3-kicad-guide.md` (KiCad→JLCPCB) · `watchdog-pcb-v3-blockdiagram.svg` · `watchdog-protoboard-bringup.md` + `watchdog-proto-bench-bringup-v3.md` · `watchdog-connections.xlsx` (PCB pin/net list; H1 DNP; +B/H/I rows) · `watchdog-connections-rationale.md` (+§7 additions 2026-07-02) · **`watchdog-electrical-design-state.md`** (CANONICAL — read first) · **`watchdog-production-schematic-delta.md`** (PROD build spec; LTC4040 §4 values) · `kicad/` — `hbox-watchdog-v3.kicad_sch` (**DEV/proto**) · `hbox-watchdog-v3-PROD.kicad_sch/.kicad_pcb` (**PRODUCTION**: ERC 0, layout started, DRC baseline) · `Drogheda-sym.kicad_sym` (MP1584EN · LTC4040EUFD · AO4406A) · `Drogheda_Conexiones-por-Bloque_Proto_v1.xlsx` (**proto assumptions ledger**) · `Guia-Conexion-Protoboard/` (LaTeX source; `modulos-pinout.tex` = visual parts catalog) → `Drogheda_Guia-Conexion-Protoboard_ES_v3.1.pdf` · **`2026-07-08_Drogheda_4G-Modem-Alternatives_v1.0.md`** (XBee 2.0 mm bridge + cheap-4G survey) · `circuitikz-wiring/` (sheet + Beamer v2.1, blocks 1–11; XBee-socket 3V3 fix 07-08; **`Drogheda_Diagrama-Unico-Proto`** = todo-en-una-hoja para verificación rápida, Modo B; v1.1 07-10 agrega XBee 20-pin obligatorios VREF(14)→VCC · ON/OFF(20)→GND · GND×4 + USB config + franja de pinouts para el técnico; HiRes-300dpi.png para TV; **v1.2 07-20**: letras G/D/S·B/C/E en todos los transistores + bloque 5b Q10+DzG 15V) · **Guía v3.1** (5b Q10+Zener · 9c pines obligatorios XBee + USB · disipadores · plano 10×10) · **lista de compras reconstruida DESDE CERO** (1 tarjeta ≈MX$2,087) · `watchdog-protoboard-BOM-3boards.xlsx` + `watchdog-LISTA-DE-COMPRAS-ES.xlsx` (proto BOMs; 07-10: +BOB-08276/PRT-08272, buck «MODEM 3.3V», breakout USB-C+cable, botón/LED módem, straps VREF/ON-OFF, surtido +220R/22k) · **`2026-07-06_Drogheda_EinarBoard-1.0-PreFab-Audit_v1.0.md`** (CLOSED — Rev 1.1 fixes) · `Assembly-BOM-Split.md` + `LCSC-search-list.md` (verified LCSC) + `JLCPCB-Order-Guide.md` (ordering runbook) · `harness-connector-pinout.md` + `Socket-Pinout-Silkscreen.md` · **`EinarBoard-Manual/`** (Rev 1.1 order-prep pack: `einarboard-manual.tex` → branded PDF · `helgen_einarboard_1.0_production_bom.xlsx` · `tools/generate_production_bom.py` + `tools/sync_bom.py` Excel→LaTeX BOM sync) — plus repo-root `scripts/prep_order_release.sh` (safe cleanup + release commit) · **`2026-10-16_Drogheda_Auditoria-Produccion_V5.6-V5.7-v6_ES_v1.0.md`** (production audit + comparison table) + `2026-10-16_Drogheda_Instrucciones-Michelle_V5.6-V5.7-Pasada-3_ES.md` · `kicad/tools/t25_mounting_holes_v55.py` (restores the 7 V5.5 holes) · `kicad/tools/t27_paso1_2_mh11_rs1_kelvin.py` (MH11 out + RS1 Kelvin, V5.6/V5.7) · `kicad/tools/t28_v6_mecanicos.py` (v6: U25 part code, stackup, U6 paste) · `kicad/tools/t30_v56_v57_mecanicos.py` (V5.6/V5.7 mechanical fixes, 19-oct) · `kicad/tools/t31_c129_vsys_quitar_dbk2.py` (V5.6/V5.7 schematic: C129 at U6 VSYS + Dbk2 out, 20-oct) · `kicad/tools/t32_c130_vin_u7.py` (V5.6/V5.7 schematic: C130 at U7 VIN, 21-oct) · `kicad/tools/t33_v56_v57_auditoria_21oct.py` (V5.6/V5.7 PCB fixes from the 21-oct audit) · `kicad/tools/t34_v56_pasada6.py` + `t35_v56_via_u7.py` (V5.6 pass 6) · `kicad/tools/t36_v57_pasada6.py` + `t37_v57_c129_gnd.py` (V5.7 pass 6) · `kicad/tools/t38_v6_courtyards_mh.py` (v6: courtyards of the 11 easyeda2kicad footprints + library, MH6 `/3V3` to B.Cu, 4-mm MH rule in the `.kicad_dru`) · `2026-10-16_Drogheda_Auditoria-Produccion_v6_ES_v1.0.md` + `2026-10-16_Drogheda_Plan-Fines-de-Semana_v6-Produccion_ES.md` (v6 audit + weekend plan, rev 1.3) · **`2026-10-19_Drogheda_Re-Auditoria_V5.6-V5.7-v6_ES_v1.0.md`** (re-audit of all three) + `2026-10-19_Drogheda_Instrucciones-Michelle_V5.6-V5.7-Pasada-4_ES.md` · **`2026-10-19_Drogheda_V5.6_Clasificacion-Criticos_ES_v1.0.md`** (V5.6 critical vs. can-stay; C129) · **`2026-10-21_Drogheda_Auditoria-Pasada-4_V5.6-V5.7_ES_v1.0.md`** (audit of pass 4, T32/T33 results, pass-5 review, pass 6 done by Claude with T34–T37 + D-21-2) · **`2026-10-21_Drogheda_Estado-v6-T25-T28_ES_v1.0.md`** (v6 state 21-oct, rev 1.1: T25 + T28 + T38 applied, block A proposal α, MH rule) · **`2026-10-22_Drogheda_Auditoria-Final-Produccion_V5.6-V5.7_ES_v1.0.md`** (FINAL production audit of the V5.6/V5.7 fab packages: GO pilot 5 + 5 with 3 order conditions, NO-GO 108/322 until bench with 0.7.0; 30 findings, 16 risks) + `…_Protocolo_ES_v1.0.md` (the audit protocol / "reprompt") + **`Auditoria-Final-V56-V57/`** (LaTeX sources → 33-pp PDF + 19-frame Beamer; `fig/`; `scripts/` gerb.py · gcmp.py · netparse.py · copper.py · riesgos.py) · `img/2026-10-22_Drogheda_*.png` (8 figures) | +| `04-Source-Code` | firmware + backend repos | `firmware/` (**own git repo `hbox-firmware`**: `blackpillrtkcode_v2/` deploy · `legacy/` v1 · `docs/LOGGING-SPEC.md` v2.1 · **`hbox_v5_bringup/board_v56.h`** (V5.6/V5.7 pin map, 22-oct; 0.7.0 base)) · `htracker/` · `notifications/` · `rtk-config/` | | `05-Analytics-Reports` | SQL views, dashboards (VERONICA/PowerBI), **observability** | `2026-06-22_Drogheda_Manual-Logs-Grafana_v1.0.pdf` (Grafana/Loki log-consultation manual) | | `06-Testing-Validation` | RCA, diagnostics, test evidence, **log analysis & tooling** | `RCA-2026-06-field-failures.md` · `remote-diagnostic-protocol.md` · `2026-06-20_Drogheda_Bench-Log-Analysis_v1.0.md` (rev-3) · `2026-06-20_Drogheda_GNSS-Findings-Summary.md` · `log-analysis/` (repo **`hbox-log-tools`**: `log-explorer.html` · `analyze_logs.py` · `build_dashboard.py` · `docs/manual.pdf`) | | `Marketing` | product-facing collateral (LaTeX→PDF) | `HBOX-Datasheet/` (industrial spec sheet) · `HBOX-Brochure-RTK/` (flyer) | diff --git a/hbox-docs b/hbox-docs index a91580e..656b5cc 160000 --- a/hbox-docs +++ b/hbox-docs @@ -1 +1 @@ -Subproject commit a91580e1af1bd909cb533b919675177f7c585783 +Subproject commit 656b5cc44b308adc1a74e2d004e293b5783a1add