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

21 KiB
Raw Blame History

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; re-verificada a las 13:30 sobre los archivos de las 13:00 (338ee14b / 85baca51, P-1 cerrado); 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.) · ▶ Presentación (19 láminas) · Protocolo (el «reprompt») · 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 traía el relleno viejo (P-1, cerrado a las 13:00)
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

V5.7 tal como se fabrica

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

!!! success "P-1 — el repo guardaba el relleno de zonas viejo; el Gerber traía el fresco. Cerrado a las 13:00" Los dos .kicad_pcb tenían el relleno de la pasada 5. El Fabrication Toolkit rellenó al exportar (por eso el paquete estaba bien), pero una exportación sin rellenar (kicad-cli, o el GUI sin «B») habría mandado cobre de GND encima de la vía de /SYS5V de T35 y de las vías de RS1 de T34. Leo rellenó, guardó y regeneró los paquetes a las 13:00; falta el commit. Regla D-22-3: todo script T que toque cobre termina con rellenado en el GUI antes del commit.

Re-verificación de las 13:30 (archivos de las 13:00: V5.6 338ee14b, V5.7 85baca51; paquetes regenerados; BOM y CPL con el mismo SHA). Mismo método A sobre copias nuevas (kicad/_to_delete/audit-20261022b/, verify.sh + gcmp_b.py, 5 min):

Comparación (F.Cu, In1, In2, B.Cu a 20 µm) V5.6 V5.7 Lectura
A · relleno guardado en el .kicad_pcb vs relleno fresco con el proyecto 0.000 mm² 0.000 mm² P-1 cerrado: el archivo ya es lo que se fabrica
B · paquete de las 13:00 vs archivo guardado idéntico idéntico Toolkit = archivo
C · cobre de las 13:00 vs cobre auditado en la mañana idéntico idéntico Nada más cambió (2264 / 396 y 2253 / 403 pistas / vías)
D · paquete 13:00 vs paquete de la mañana (máscaras, pasta, serigrafía, contorno, taladros) idéntico idéntico Mismo paquete
DRC con .kicad_dru, relleno y paridad 3 MOD1 · 0 · 13 PF 3 MOD1 · 0 · 13 PF Igual que en la mañana
BOM y CPL SHA iguales SHA iguales D10 sigue como SMBJ33A: la condición 3 sigue viva

Lo único distinto en los archivos, fuera de los rellenos, es la caché de glifos de los textos de serigrafía «EINARBoard 5.x» (cosmético: la serigrafía exportada es idéntica). El veredicto no cambia. Si la sesión paralela de quick wins toca el BOM o el cobre, se vuelve a correr verify.sh + gcmp_b.py antes de pagar.

U6: pasta y vías térmicas

RS1 Kelvin en las dos tarjetas

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

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 estaba en el Gerber Cerrado 13:00: rellenado, guardado, paquetes regenerados (0.000 mm²). Falta el commit; regla D-22-3 Leo (commit)
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) hecho 13:00 · 10 nF y etiqueta de C22 (P-6) · THVD1410 / TRS3232E en la pre-orden (P-5) · ENIG como acabado. Una sesión paralela trabaja los quick wins: lo que toque BOM o cobre se re-verifica con verify.sh antes de pagar.

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

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

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 (hecho 13:00); 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/.