hbox-docs/docs/hardware/auditoria-final-22oct.md

172 lines
20 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.

---
title: "Auditoría final de producción — EinarBoard V5.6 y V5.7: GO al piloto con tres condiciones (22-oct-2026)"
tags: [project-drogheda, hardware, hbox, einarboard, v5.6, v5.7, auditoria, produccion, pedido, gerber, firmware, riesgo]
project: Project Drogheda
author: Helgen Technologies (auditoría: Claude; decide: Leo)
date: 2026-10-22
version: 1.0
status: ACTIVO — audita los paquetes HBOX_v5_Rev6_PROD (22-oct 01:55) y HBOX_v5_Rev7_PROD (22-oct 15:55) sobre hbox-watchdog-v5 f07ad5b5 y hbox-watchdog-v57 9373ebe8; es el paso 7 de la Ruta (entre Gerber y Piloto)
audience: Leo (decide el pedido), Michelle, Jesús, Aldair, Adriana
---
# Auditoría final de producción — V5.6 y V5.7 · 22-oct-2026
**Pregunta (Leo, 22-oct, 10:01):** ¿se piden hoy? Y que todos los puertos funcionen, que la V5.7 no use la Mean Well, que el módem no provoque un apagón, que en batería duerma 10 min, despierte, reporte dos veces y vuelva a dormir, empezar el firmware, y una sola auditoría con riesgos, easy wins y matriz.
!!! success "Veredicto: GO al piloto de 5 V5.6 + 5 V5.7, hoy, con tres condiciones de pedido que no tocan el cobre"
- **(1) Vías «Epoxy Filled & Capped» + rayos X en U6**: las tres vías térmicas del LTC4040 caen dentro de las ventanas de pasta (al 50 %). Es la causa de los puentes de la V5.5/V4.
- **(2) Rotación y polaridad en el visor de JLC** de U6, U7, U25, U26, L22, Q7, U16, D34, D10 y los electrolíticos: las huellas easyeda2kicad no pasan por la tabla de correcciones del Fabrication Toolkit y nunca se han fabricado.
- **(3) BOM: D10 SMBJ33A → SMBJ33CA** (misma huella; con el arnés al revés la V5.7 abre su fusible SMD F2). Código con existencia: C8838 o C2688178.
**NO-GO para las 108 V5.6 y las 322 V5.7** hasta que el piloto pase el banco con el firmware 0.7.0: hoy ningún firmware enciende el módem de estas tarjetas (MODEM_EN en PC3 es nuevo).
**Documentos de esta auditoría:** [**▶ PDF completo (33 pp.)**](2026-10-22_Drogheda_Auditoria-Final-Produccion_V5.6-V5.7_ES_v1.0.pdf) · [**▶ Presentación (19 láminas)**](2026-10-22_Drogheda_Auditoria-Final-Produccion_V5.6-V5.7_Presentacion_ES_v1.0.pdf) · [Protocolo (el «reprompt»)](auditoria-final-protocolo.md) · `04-Source-Code/firmware/hbox_v5_bringup/board_v56.h` (mapa de pines, repositorio).
## 1. Lo que pidió Leo y lo que se encontró
| Mandato | Estado | Evidencia |
|---|---|---|
| Que todos los puertos funcionen | **Hardware sí** · firmware no | Netlist contra hojas de datos; faltan SC16IS752 y Ethernet de campo en software |
| V5.7 sin la Mean Well | **Sí** | U25 TPS54360B 5.32 V / 600 kHz, 9–32 V continuos; se mide a 9/24/32 V |
| Ethernet, RS-485, RS-232 usables | **Usables**, con dos reglas | RS-485 ocupa el bus ~1 s al arrancar hasta que 0.7.0 escribe EFCR; H4 (TTL) y P16 (RS-232) nunca al mismo tiempo |
| Módem sin apagón | **Resuelto en hardware** | AP64350 regula desde 3.8 V (riel de respaldo 4.79 V), boost 2.5 A vs 1.8 A de pico, C43 220 µF, PFI 4.40 V. El firmware secuencia etapa → NMEA → módem |
| 10 min dormida, 2 reportes, dormir | **Hardware sí** · firmware no | STM32 alimentado en respaldo, LSE Y4 (RTC), INT1 del SC7A20 en PB9, MODEM_EN/PWR_CTRL. Piso dormido ≈ 75 mW con el W5500 en power-down; ≈ 5 días con ventanas de 45 s cada 10 min |
| Gerber/BOM/CPL generados | **Verificados** | Idénticos a una regeneración con relleno fresco (0.000 mm² de XOR); el `.kicad_pcb` del repo trae el relleno viejo (P-1) |
| Empezar el firmware | **Empezado** | `board_v56.h` (64 pines del netlist, idéntico en V5.6 y V5.7) + especificación 0.7.0 con algoritmos |
| Riesgos, easy wins, matriz | **Hecho** | 30 hallazgos, 16 riesgos antes/después, 6 easy wins |
![V5.6 tal como se fabrica](img/2026-10-22_Drogheda_V5.6-Cara-Superior_v1.0.png)
![V5.7 tal como se fabrica](img/2026-10-22_Drogheda_V5.7-Cara-Superior_v1.0.png)
## 2. Qué se revisó (método A–G)
- **A · Paquete.** Regeneración con `kicad-cli` 10.0.4 en copias y comparación primitiva por primitiva: máscaras, pasta, serigrafía, contorno y taladros **idénticos**; pads y pistas **idénticos**; rellenos de zona **0.000 mm²** de diferencia contra un relleno fresco hecho con el proyecto cargado. BOM: 226 / 229 piezas montadas, todas con LCSC; CPL cuadra con el PCB (fuera: JP, TP, MOD1, MH, R109/R124/R125 DNP).
- **B · Eléctrica.** Netlist de cada esquemático (V5.6 = V5.7 en los 64 pines del MCU) contra las hojas de datos del LTC4040, AP64350, TPS54360B, W5500, SC16IS752, SP3485, MAX3232, SC7A20, STM32F411.
- **C · Batería.** Presupuesto en respaldo (2.9 W promedio, 8.7 W de pico contra 12 W del boost), piso dormido por componente, autonomía por ventana y periodo, secuencia del ciclo.
- **D · Cobre.** DRC con `.kicad_dru` + relleno + paridad: 3 errores (MOD1, por diseño, excluidos), 0 sin conectar, paridad solo PWR_FLAG, en las dos. RS1 Kelvin (VIN y CLN) comprobado recortando el pad. Vías únicas = las aceptadas el 19/21-oct.
- **E · Firmware.** 0.6.3 contra el hardware nuevo; `board_v56.h`; inventario de algoritmos; lo que falta con tamaño.
- **F · Riesgo.** Matriz 5 × 5 antes y después.
![Relleno viejo en el repo contra el Gerber](img/2026-10-22_Drogheda_Relleno-Viejo-vs-Gerber_v1.0.png)
!!! warning "P-1 — el repo guarda el relleno de zonas viejo; el Gerber trae el fresco"
Los dos `.kicad_pcb` tienen el relleno de la pasada 5. El Fabrication Toolkit rellenó al exportar (por eso el paquete está bien), pero una exportación sin rellenar (`kicad-cli`, o el GUI sin «B») manda cobre de GND encima de la vía de `/SYS5V` de T35 y de las vías de RS1 de T34. **Leo, 5 min:** abrir cada tarjeta, B, guardar, commit. Regla: todo script T que toque cobre termina con rellenado en el GUI antes del commit.
![U6: pasta y vías térmicas](img/2026-10-22_Drogheda_U6-Pasta-Vias_v1.0.png)
![RS1 Kelvin en las dos tarjetas](img/2026-10-22_Drogheda_RS1-Kelvin-Final_v1.0.png)
**V5.7 sin la Mean Well.** U25 TPS54360B (3.5 A, 4.5–60 V) con R121/R122 → 5.32 V, R120 162 k → 600 kHz, R124/R125 DNP (EN flotante = siempre encendida), L22 10 µH SRP1265A, D34 B560C, C149/C150 2.2 µF/100 V a la entrada, C153/C154 47 µF a la salida; D10 SMBJ33A + F2 3 A a la entrada → **9–32 V DC continuos** sin la SD-15B. A 32 V y 2.8 A el bloque disipa ≈ 2.5 W (U25 ≈ 1.6 W): se mide en banco (E-9).
![V5.7: la fuente a bordo U25](img/2026-10-22_Drogheda_V5.7-Fuente-U25_v1.0.png)
## 3. Hallazgos — problema → arreglo
Clases: 🔴 bloqueante · 🟠 alto · 🟡 medio · 🟢 bajo / easy win. «Rev. sig.» = cambio de cobre para la siguiente revisión, no detiene el pedido.
| Id | | Tarjeta | Problema | Arreglo | Quién |
|---|---|---|---|---|---|
| P-1 | 🟠 | ambas | `.kicad_pcb` con el relleno de la pasada 5; el fresco solo está en el Gerber | Abrir, B, guardar, commit. Regla nueva para los scripts T | Leo, hoy |
| P-2 | 🟠 | ambas | U6 QFN 0.5 mm: 3 vías térmicas dentro de las ventanas de pasta; U7/U25 pasta al 100 % con vías | **Pedido:** Epoxy Filled & Capped + rayos X en U6; lupa antes de energizar | Leo · Jesús |
| P-3 | 🟠 | ambas | Rotación de U7, U25, U26, L22 (easyeda2kicad) y polaridad de D34 nunca fabricadas | Confirmar en el visor de JLC | Leo, al pedir |
| P-4 | 🟢 | V5.7 (V5.6) | D10 SMBJ33A unidireccional: con el arnés al revés abre F2 (SMD) | BOM: SMBJ33CA, misma huella | Leo, antes de pedir |
| P-5 | 🟢 | ambas | SP3485 sin receptor a prueba de bus abierto; MAX3232 sin ESD | 108/322: THVD1410DR (C2671345) y TRS3232E, mismo pinout | Adriana (pre-orden) |
| P-6 | 🟢 | ambas | 10 nF con dos códigos (C1589 / C57112); C22 etiquetado 22 µF (C138687 es 10 µF/50 V) | Unificar en C1589; corregir la etiqueta | Leo, BOM |
| P-7 | 🟡 | V5.7 (V5.6) | JST del borde superior movidos 12–38 mm; en V5.7 P14 68 mm y DB1–DB4 al borde derecho | Medir arneses; tapa V5.7 si el gauge se ve por la tapa | Jesús, piloto |
| P-8 | 🟢 | ambas | Sin MH11: U6/L6 sin abrazadera de disipador | Temperatura de U6/L6 en banco a 1.4 A y 45 °C | Jesús, piloto |
| E-1 | ✅ | ambas | LTC4040: PFI 4.40/4.51 V, respaldo 4.79 V, 2.5 A Kelvin, 1.40 A, 3.50 V LFP, NTC +10…+60 °C, C129, CHGOFF/BSTOFF atados | Nada; verificado contra hoja de datos | — |
| E-2 | ✅ | ambas | Riel del módem: AP64350 3.33 V / 500 kHz desde SYS5V, EN apagado por defecto, C130, C43 220 µF, RST/LED/EN/RTCM al MCU | Nada; el caso de brownout de V5.5 desapareció por diseño | — |
| E-3 | 🟠 | ambas | 3V3_ETH sin enable: W5500 65–132 mA activo; en reset sin cifra | 0.7.0: PHY power-down (13 mA) antes de dormir. Rev. sig.: enable | 0.7.0 |
| E-4 | 🟡 | ambas | RS-485: DE y /RE en /RTSA → transmisor encendido desde el reset hasta que el firmware configura U10; sin TVS ni polarización | 0.7.0: EFCR/MCR primero; punto a punto; THVD1410 (P-5). Rev. sig.: U32 + D39 como v6 | 0.7.0 · BOM |
| E-5 | 🟢 | ambas | RS-232: R1OUT y H4.3 comparten SER_RXB | H4 y P16 nunca juntos. Rev. sig.: R147 | Manual |
| E-6 | 🟢 | ambas | Ethernet: J10.8 al aire, LED ACT invertido | Cosmético | Rev. sig. |
| E-7 | 🟠 | V5.7 | Ignición a 12 V = 1.38 V en PA5 (zona indefinida) | 0.7.0: ADC con histéresis 0.80 / 0.55 V | 0.7.0 |
| E-8 | 🟢 | V5.7 | Entrada 9–32 V con F2 SMD | El breaker del gabinete sigue siendo la protección; manual | Manual |
| E-9 | 🟡 | V5.7 | U25: lazo de entrada ≈ 56 mm² (D-21-2) y ≈ 2.5 W a 32 V / 2.8 A | Banco: timbre en SW/VIN y temperatura de U25/D34 a 9/24/32 V | Jesús, piloto |
| E-10 | 🟢 | V5.7 | Toda la entrada de U25 por dos vías 0.8/0.3 en serie | A 24 V nada (0.7 A); a 9 V cámara térmica. Rev. sig.: 2.ª vía | Jesús · Rev. sig. |
| E-11 | 🟢 | V5.7 | D12 (LDO del MCU) + U12 por una vía 0.6/0.3 (146.37, 86.96), ≈ 0.3 A | Sobra eléctricamente; punto único de falla. Rev. sig. | Rev. sig. |
| E-12 | 🟢 | ambas | LSE FC-135 (CL 12.5 pF) con 12 pF: corre rápido unas decenas de ppm | 0.7.0: LSEDRV alto, timeout, fallback a LSI | 0.7.0 |
| E-13 | 🟡 | ambas | Rdfu1 22 k (PA10) sostiene a medias el riel del módem apagado vía K1/DIN | 0.7.0: pulso de MODEM_RST tras cada MODEM_EN. Rev. sig.: revisar Rdfu1 | 0.7.0 |
| E-14 | 🟢 | ambas | NTC_CELL (PC5) solo vale con VEH5V presente | Reportar n/c en batería; U4 y U18 cubren | 0.7.0 |
| E-15 | 🟢 | V5.7 | /VIN_FUSED y /SW_PWRIN fuera de la clase HV24 | Rev. sig.: patrón de la clase | Rev. sig. |
| E-16 | 🟢 | ambas | Inrush de C3 220 µF + C40 al encender la etapa | 0.7.0: módem después de la etapa; rampa de 20 ms en batería | 0.7.0 |
| F-1 | 🔴 (piloto) | ambas | 0.6.3 no enciende el módem de V5.6/V5.7 y lee mal NTC, flotación e ignición | `board_v56.h` (hecho) + 0.7.0-pre: 1 día | Leo + Claude |
| F-2 | 🟠 | ambas | Ciclo de 10 min no existe (el actual es espera activa a 96 MHz); umbrales Li-ion | STOP + RTC, apagado ordenado, LFP 2.95 / 3.20 V. 3–4 días | Leo + Claude |
| F-3 | 🟡 | ambas | SC16IS752 sin driver | Driver + EFCR primero. 1 día | Leo + Claude |
| F-4 | 🟡 | ambas | Ethernet solo en build de banco con IP fija | Modo de campo configurable. 2 días | Leo + Claude |
| F-5 | 🟢 | ambas | SC7A20 sin driver | 0.5 día; despertar por movimiento | Leo + Claude |
| F-6 | 🟢 | ambas | Vigilancia del módem indirecta | LED (PC2) + RTCM (PC7); reset con límite | Leo + Claude |
| F-7 | 🟢 | ambas | Modo B supone módem siempre encendido | No insertar hasta que viva; soltar K1 antes de apagarlo | Leo + Claude |
| F-8 | 🟡 | ambas | Recuperación sin orden entre módem y etapa | Módem OFF → etapa OFF/ON → NMEA → módem ON | Leo + Claude |
**Easy wins, en orden de valor:** vías tapadas + rayos X en U6 (P-2) · D10 → SMBJ33CA (P-4) · commit con relleno fresco (P-1) · 10 nF y etiqueta de C22 (P-6) · THVD1410 / TRS3232E en la pre-orden (P-5) · ENIG como acabado.
## 4. Batería, apagón del módem y ciclo de 10 min
| Carga en respaldo | Promedio | Pico |
|---|---|---|
| Etapa RTK | 0.7 W | 1.0 W |
| Módem 4G (vía U7) | 1.5 W | **7.3 W** (2 A a 3.3 V) |
| MCU y lógica | 0.5 W | 0.6 W |
| W5500 (PD) · K1 | 0.05 · 0.15 W | — |
| **Total** | **≈ 2.9 W (0.6 A)** | **≈ 8.7 W (1.8 A) < 2.5 A del boost** |
Piso dormido estimado **≈ 75 mW** (W5500 en power-down 50 mW, MAX3232 + SP3485 4 mW, LED D18 4 mW, MCU en STOP 1.5 mW, resto 2 mW); sin el power-down del W5500 serían 450 mW y ninguna combinación llega a 7 días. Con 45 s de ventana cada 10 min ≈ 5 días; cada 20 min ≈ 8.5 días.
![Autonomía según ventana, periodo y piso](img/2026-10-22_Drogheda_Autonomia-Ciclo_v1.0.png)
**Secuencia de 0.7.0:** respaldo detectado (5V_SENSE < 4.2 V, media 200 ms) → última palabra ($PHLG + posición) → apagar (MODEM_EN = 0, PA1 = 0, K1 suelto, UARTs en alta Z, W5500 PD, LEDs) → **STOP** con alarma RTC a 10 min (LSE; LSI si no arrancó), INT1 del SC7A20 y regreso del 24 V → despertar (vbat < 2.95 V → dormir otra vez) → etapa ON (rampa 20 ms) y NMEA ≤ 30 s → +2 s MODEM_EN; LED/RTCM ≤ 90 s o pulso de MODEM_RST (máx. 2) → K1 y 2 × $PHLG/$PHCG con pwr=BATT → dormir. **Umbrales LFP:** corte 2.95 V, rearme 3.20 V (0.6.3 trae 3.40 / 3.70 de Li-ion).
## 5. Firmware: 0.6.3 no sirve a V5.6/V5.7; `board_v56.h` sí
| Función | 0.6.3 (V5.5) | V5.6 / V5.7 | Efecto con 0.6.3 |
|---|---|---|---|
| Riel del módem | siempre encendido | MODEM_EN = PC3, apagado por defecto | el módem nunca enciende |
| Reset del módem | PCF8574 P7 → puente a SW4G1 | PC1 directo (R107) | el pulso no hace nada |
| LED del módem | — | PC2 | sin señal de vida |
| NTC | PB1 | PC5 (nodo NTC del LTC4040 × 0.5455) | lectura basura |
| Flotación / corte | 4.00 V · 3.40/3.70 V | 3.50 V · LFP 2.95/3.20 V | rearranques y cortes mal juzgados |
| Ignición | digitalRead | ADC (12 V → 1.38 V) | aleatoria a 12 V |
| Acelerómetro · RTCM | — | SC7A20 0x18 (INT1 PB9) · USART6 RX en PC7 | sin usar |
Trabajo para 0.7.0 con tamaño: F-1 0.7.0-pre (módem, NTC, LFP, ADC) **1 día** · F-2 ciclo de respaldo 3–4 días · F-3 SC16IS752 1 día · F-4 Ethernet de campo 2 días · F-5…F-8 2 días. Los algoritmos heredados (gobernador de carga, recuperación de enlace, Modo B, vigilancia del módem, cortes, medición, supervisión) están descritos en el PDF, §7.2.
## 6. Registro de riesgos (P × I, antes → después)
| Id | Riesgo | Tarjeta | Antes | Después | Mitigación | Clase |
|---|---|---|---|---|---|---|
| R1 | Soldadura de U6 (QFN 0.5 mm, 3 vías en la pasta): puentes y bolas como en V5.5/V4 | V5.6 · V5.7 | 4·4 = 16 🔴 | 2·3 = 6 🟡 | Pedir con «Epoxy Filled & Capped» + rayos X en U6; lupa en cada tarjeta antes de energizar | Pedido |
| R2 | Rotación de huellas easyeda2kicad (U7, U25, U26, L22) y polaridad de D34 en JLC | V5.6 · V5.7 | 2·5 = 10 🟠 | 1·5 = 5 🟡 | Confirmar pin 1 y polaridad en el visor de JLC antes de pagar | Pedido |
| R3 | Apagón (brownout) del módem en batería al arrancar o en ráfaga LTE | V5.6 · V5.7 | 1·4 = 4 🟡 | 1·3 = 3 🟢 | Hardware ya resuelto (AP64350 desde 3.8 V, 2.5 A de boost, C43 220 µF); 0.7.0 secuencia etapa → NMEA → MODEM_EN | Diseño |
| R4 | Piso de consumo dormido demasiado alto (W5500 65–132 mA sin enable) | V5.6 · V5.7 | 4·3 = 12 🟠 | 2·3 = 6 🟡 | 0.7.0: W5500 en power-down (13 mA) antes de dormir; medir el piso en el piloto (PPK2) | Firmware |
| R5 | RS-485 toma el bus desde el encendido hasta que el firmware configura U10 | V5.6 · V5.7 | 3·2 = 6 🟡 | 2·2 = 4 🟡 | EFCR/MCR como primer paso del arranque; uso punto a punto; THVD1410 en BOM para 108/322 | Firmware |
| R6 | Ignición mal leída en máquinas de 12 V (1.38 V en PA5, zona indefinida) | V5.7 | 4·3 = 12 🟠 | 1·3 = 3 🟢 | 0.7.0: PA5 por ADC con histéresis 0.80/0.55 V | Firmware |
| R7 | Arnés al revés: D10 SMBJ33A conduce y abre F2 (SMD) / quema D10 | V5.7 (V5.6) | 2·3 = 6 🟡 | 2·1 = 2 🟢 | D10 → SMBJ33CA (misma huella); V5.6 sin fusible: el breaker del gabinete | BOM |
| R8 | U25: timbre en SW/VIN (lazo 56 mm²) o calor de U25/D34 a 32 V y 2.8 A | V5.7 | 2·3 = 6 🟡 | 2·2 = 4 🟡 | Banco: 9/24/32 V con 2.5 A, osciloscopio y cámara térmica; D-21-2 | Banco |
| R9 | Firmware 0.7.0 no existe: el piloto no se puede probar (ni el módem enciende) | V5.6 · V5.7 | 5·4 = 20 🔴 | 3·4 = 12 🟠 | board_v56.h hoy; 0.7.0-pre (módem + ADC) antes de que lleguen las tarjetas | Firmware |
| R10 | Arneses cortos / tapa: conectores JST movidos 12–68 mm; LEDs del gauge en otro borde (V5.7) | V5.7 (V5.6) | 3·2 = 6 🟡 | 3·1 = 3 🟢 | Medir con la primera tarjeta; tapa V5.7 si el gauge se ve por la tapa | Mecánica |
| R11 | Relleno de zonas viejo en los .kicad_pcb del repo: una exportación sin rellenar manda cortos | V5.6 · V5.7 | 2·4 = 8 🟠 | 1·4 = 4 🟡 | Hoy: Gerber verificado = relleno fresco. Leo: abrir, B, guardar y commit | Proceso |
| R12 | Umbrales de batería pensados para Li-ion (3.40/3.70 V) con paquete LFP (meseta 3.2–3.3 V) | V5.6 · V5.7 | 4·3 = 12 🟠 | 1·3 = 3 🟢 | 0.7.0: corte 2.95 V / rearme 3.20 V con media de 200 ms; SoC por culombios | Firmware |
| R13 | Lazos de convertidores heredados de V5.5 (U12/L8 35 mm, U2/Dbk1 18 mm): EMC / ruido | V5.6 · V5.7 | 2·2 = 4 🟡 | 2·2 = 4 🟡 | Se mide en el piloto; corregir en v6 | Diseño |
| R14 | Vías únicas en el camino de 24 V (V5.7) a 9 V y 1.9 A: calentamiento | V5.7 | 1·2 = 2 🟢 | 1·2 = 2 🟢 | Instalaciones a 24 V (0.7 A); cámara térmica a 9 V; 2.ª vía en la siguiente revisión | Diseño |
| R15 | Módem «encendido pero muerto» tras dormir (riel sostenido por Rdfu1 22k vía K1/DIN) | V5.6 · V5.7 | 2·3 = 6 🟡 | 1·3 = 3 🟢 | Pulso de MODEM_RST (PC1) tras cada MODEM_EN (SW4G1 probado); revisar Rdfu1 en v6 | Firmware |
| R16 | LSE no arranca (FC-135 CL 12.5 pF con 12 pF) y el ciclo de 10 min se queda sin reloj | V5.6 · V5.7 | 1·3 = 3 🟢 | 1·1 = 1 🟢 | LSEDRV alto + timeout → RTC con LSI (±5 %) y evento; IWDG independiente | Firmware |
![Matriz de riesgo](img/2026-10-22_Drogheda_Matriz-Riesgo_v1.0.png)
## 7. El pedido de hoy (≈ 40 min) y el camino a las 108 / 322
1. **BOM:** D10 → SMBJ33CA con existencia (opcional: 10 nF a C1589, etiqueta de C22).
2. **PCB:** 4 capas, 1.6 mm, JLC04161H-7628, **ENIG**, **Via covering: Epoxy Filled & Capped**, «Confirm production file».
3. **Ensamble:** solo top; **rayos X en U6** en las notas del pedido; visor activado.
4. **Visor:** pin 1 de U6, U7, U25, U26, U16, Q7; punto de L22; cátodo de D34, D10, D5, D6, D11–D13; «+» de C3, C43, C78, C10, C103; K1; Q10.
5. **5 + 5.** Número de orden al acta y a la Bitácora.
6. **Después de pagar:** abrir cada tarjeta, B, guardar; commit de `kicad/` y `production/HBOX_v5_Rev[67]_PROD*`; push; bump del submódulo.
**Antes de las 108 / 322** (banco del piloto con 0.7.0): lupa en U6 + autoprueba · 24 V: NMEA < 2 s, registro < 60 s, Kelvin (TP1 ÷ 32) 1.0–1.1, carga 1.2–1.4 A · 20 ciclos de 10 min con paquete al 20 % y 45 °C, piso < 100 mW, SYS5V > 4.3 V · 20 cortes 24 V ↔ batería sin reset · RS-485/RS-232 en lazo, Ethernet 24 h · V5.7: 9/12/24/32 V, polaridad invertida, U25 < 110 °C y D34 < 100 °C a 32 V · temperaturas de U6, L6, L7 · arneses, tapa, barrenos. Con los 8 en verde se liberan las 108 y las 322.
## Cómo se hizo
Copias en `03-Architecture-Hardware/kicad/_to_delete/audit-20261022/` (SHA-256 iguales a los originales); `kicad-cli` 10.0.4 (DRC con paridad y relleno, ERC, netlist, Gerber, taladros, posiciones, SVG); relleno fresco con `pcbnew` en una copia con el proyecto cargado (sin el `.kicad_pro` al lado el relleno sale distinto: lección del día); parser de Gerber propio para comparar flashes/trazos/regiones; parser de netlist; grafo de conectividad del cobre (Kelvin con el pad recortado, vías de articulación); cruce BOM/CPL/PCB; hojas de datos y piezas de JLC consultadas en línea. Fuentes LaTeX, figuras y scripts en `03-Architecture-Hardware/Auditoria-Final-V56-V57/`.