# EinarBoard v5 (`hbox-watchdog-v5`) — pre-audit checks **Fecha:** 2026-08-20 · **Archivos analizados:** `hbox-watchdog-v5.kicad_sch` (guardado 18-Ago 04:22) y `hbox-watchdog-v5.kicad_pcb` (guardado 20-Ago 02:43) · **Placa:** 155.0 × 100.1 mm, 229 huellas, 1852 segmentos, 199 vías, 5 zonas. > Alcance: sólo las dudas planteadas (Q1/Q2/Q4/Q10, Q2 sin señales, capacitores sueltos, > los 12 errores de DRC, U13 en 3D). La auditoría completa va aparte. --- ## 1. Q1, Q2, Q4, Q10 — pads sin red: causa raíz **No es un problema de ruteo. Es un desajuste símbolo↔huella.** Los cuatro usan `Device:Q_PMOS` / `Device:Q_NMOS`, cuyos pines están numerados con **letras** (`G`, `D`, `S`). Las huellas `SOT-23` y `TO-252-2` tienen pads **`1`, `2`, `3`**. Ningún número coincide → KiCad no puede mapear ningún pin a ningún pad → **los tres pads quedan sin red y sin `pinfunction`**. Por eso aparecen "unconnected" y sin etiqueta. Q5/Q6 (`Transistor_BJT:Q_NPN_BEC`, pines 1/2/3) y Q7 (`Drogheda-sym:AO4406A`) sí mapean bien. ### El esquemático SÍ está correcto — estas son las redes que les tocan | Ref | Parte | Encapsulado | Gate | Source | Drain | |-----|-------|-------------|------|--------|-------| | **Q1** | AO3401A (P-ch) | SOT-23 | `/GATE_LS` | `/SW_IN` | `/SW_5V` | | **Q2** | AO3400A (N-ch) | SOT-23 | `/FAN_GATE` | `GND` | `/FAN_RET`| | **Q4** | AO3400A (N-ch) | SOT-23 | `/EXT_LED` | `GND` | `/LED_K` | | **Q10** | IRFR5305 (P-ch)| TO-252-2 | `/Q10_GATE` | `/24V` | `/24V_IN` | *(Q10 D=24V_IN / S=24V es lo correcto para protección de polaridad inversa: el diodo de cuerpo conduce con polaridad buena y bloquea con polaridad invertida.)* ### Corrección Los símbolos de reemplazo tienen **la misma geometría de pines** que los actuales, así que es un cambio "drop-in": los cables y las etiquetas del esquemático se quedan donde están. | Ref | Cambiar de | Cambiar a | Numeración resultante | |-----|-----------|-----------|----------------------| | Q1 | `Device:Q_PMOS` | **`Transistor_FET:Q_PMOS_GSD`** | 1=G, 2=S, 3=D ✔ AO3401A | | Q2 | `Device:Q_NMOS` | **`Transistor_FET:Q_NMOS_GSD`** | 1=G, 2=S, 3=D ✔ AO3400A | | Q4 | `Device:Q_NMOS` | **`Transistor_FET:Q_NMOS_GSD`** | 1=G, 2=S, 3=D ✔ AO3400A | | Q10 | `Device:Q_PMOS` | **`Transistor_FET:Q_PMOS_GDS`** | 1=G, 2=D(tab), 3=S ✔ IRFR5305 DPAK | Después: *Tools → Update PCB from Schematic*. **Esto también elimina 6 de los 12 errores de DRC** (ver §5). --- ## 2. DzG1 (BZX84C15) — el clamp de gate NO existe físicamente ⚠ CRÍTICO `DzG1` usa `Device:D_Zener` (2 pines: 1=K, 2=A) sobre `Package_TO_SOT_SMD:SOT-23` (3 pads). KiCad mapeó K→pad 1 y A→pad 2, dejando el pad 3 sin red. **El BZX84C15 real en SOT-23 es: pad 1 = Ánodo · pad 2 = NC · pad 3 = Cátodo.** Consecuencia en la placa fabricada: - `/24V` llega al **ánodo** (pad 1). - `/Q10_GATE` llega a un **pin NC** (pad 2) → no va a ningún lado. - El **cátodo** (pad 3) queda flotando. - → **El zener no clampa nada.** Y eso importa: `Rrp1` (10 k) jala `/Q10_GATE` a GND mientras el source de Q10 está en 24 V. Sin clamp, **Vgs = −24 V** contra el máximo del IRFR5305 de **±20 V** → ruptura de óxido de compuerta en cuanto se energice en una máquina de 24 V (RTG, Reach Stacker, Empty Handler son todas 24 V). **Corrección:** cambiar el símbolo a **`Diode:BZX84Cxx`** (300 mW zener SOT-23; pin 1=A, 2=NC, 3=K) y conectar **pin 3 (K) → `/24V`**, **pin 1 (A) → `/Q10_GATE`**. --- ## 3. U13 (PCF8574) — el 3D tiene razón, la huella está mal - Huella en la placa: `Package_SO:SOIC-16W_7.5x10.3mm_P1.27mm` (cuerpo **ancho, 7.5 mm**). - Modelo 3D asignado: `SOIC-16_3.9x9.9mm_P1.27mm.step` (cuerpo **angosto, 3.9 mm**). - Parte real: **LCSC C7605 = NXP PCF8574T/3,518**, encapsulado NXP **SOT109-1 = SO16, ancho de cuerpo 3.9 mm, largo 9.9 mm, paso 1.27 mm**. LCSC lo etiqueta "SOIC-16-300mil", que es lo que engañó; la hoja de datos de NXP y la huella sugerida por la base JLCPCB coinciden en el **angosto**. **Corrección:** U13 → `Package_SO:SOIC-16_3.9x9.9mm_P1.27mm`. Es un cambio de huella, así que hay que **volver a rutear la zona de U13** (el ancho de pads a pads baja de ~10.3 mm a ~6.0 mm). --- ## 4. MP1584EN ×3 (U2, U7, U12) — pad expuesto sin red ⚠ El símbolo `Drogheda-sym:MP1584EN` tiene 8 pines; la huella `SOIC-8-1EP_3.9x4.9mm_P1.27mm_EP2.29x3mm` tiene **pad 9 (exposed pad)**. En los tres reguladores el pad 9 está **sin red**. En el MP1584 el EP es el camino térmico a GND. Tres bucks de 3 A sin disipación, dentro de una caja ASA sellada, dentro de un gabinete ABS IP67 sellado — es literalmente el modo de falla del RCA de junio. Comparar: U6 (LTC4040, QFN-24-1EP) **sí** tiene su pad 25 = `GND_EP` correctamente conectado. **Corrección:** agregar pin 9 (`EP`, tipo `power_in`) al símbolo `Drogheda-sym:MP1584EN`, atarlo a GND en el esquemático, y poner un campo de vías térmicas bajo cada EP. --- ## 5. Los 12 errores de DRC (del archivo guardado) | # | Tipo | Ubicación (mm) | Causa | |---|------|----------------|-------| | 1–3 | `clearance` 0.140 vs 0.150 mm | (161.65, 120.39) · (150.21, 120.39) · (150.21, 115.13) | Cerca de C31 / RS1 / JP2 — faltan **10 µm**. Empujar la pista. | | 4–6 | `shorting_items` `/EXT_LED` ↔ *(sin red)* | (124.04, 51.44) · (123.62, 51.86) ×2 | **Q4** — es el §1. Se corrige solo. | | 7–9 | `solder_mask_bridge` | (123.62, 51.86) · (124.04, 51.44) · (122.25, 53.23) | Misma causa: **Q4**. Se corrige solo. | | 10–12 | `npth_inside_courtyard` | MH9 (77.90, 81.64) · MH7 (76.63, 129.90) · MH10 (128.70, 96.88) | Los barrenos M2.5 caen dentro del courtyard de **MOD1** (`Module:Arduino_UNO_R3`). Es **por diseño** (bolt-down del shield). Excepcionar la regla o recortar el courtyard de MOD1. | **Neto: 6 de 12 desaparecen al arreglar Q4. Los 3 de MH son waivables. Sólo 3 son ruteo real.** Advertencias que valen la pena (no errores): `track_dangling` 27, `via_dangling` 20, `lib_footprint_mismatch` 85, `text_height` 144, `silk_over_copper` 11. --- ## 6. Planos internos — nombre y red intercambiados | Zona (nombre) | Capa | Red asignada | |---|---|---| | `P3V3_PLANE_IN1` | In1.Cu | **GND** | | `GND_PLANE_IN2` | In2.Cu | **/3V3** | Los nombres y las redes están cruzados. Si las redes son las buenas, sólo hay que renombrar las zonas; si los nombres son los buenos, el stackup está invertido. Cualquiera de las dos, hay que resolverlo antes de generar plots — quien lea `In1`/`In2` va a asumir lo que dice el nombre. --- ## 7. Rig2 existe sólo en el PCB (no está en el esquemático) `Rig2` (22 k, `/IGN_SENSE` → `GND`) es una huella **sin símbolo** y con redes asignadas a mano (no tiene `path` al esquemático). Es la única de las 9 huellas huérfanas que no es un barreno. Efectos: - No aparece en el BOM. - El próximo *Update PCB from Schematic* con «delete extra footprints» **la borra**. - La pata baja del divisor de ignición queda entonces sólo con `Rigb1` (3.3 k). Cálculo del divisor a `/IGN_SENSE` → PA5 (pin 21 del F411RET6), con `Rig1` = 22 k arriba: | Escenario | Pata baja | 24 V → PA5 | 12 V → PA5 | |---|---|---|---| | Con Rig2 | 22 k ∥ 3.3 k = 2.87 k | 2.77 V | 1.39 V | | Sin Rig2 | 3.3 k | 3.13 V | 1.57 V | Ambos quedan bajo 3.3 V (y `D5` BAT54 clampa de todos modos), así que **no es un paro de línea** — pero sí es una discrepancia de BOM y contra la documentación, que dice divisor **22k/10k**. Decidir cuál es el valor bueno y meterlo al esquemático. --- ## 8. Pendiente: la lista exacta de "unconnected" El `.kicad_pcb` en disco es de las **02:43 de hoy**. Contra ese archivo cuento ~100 pads de señal sin cobre encima — no 28. Además **las 5 zonas tienen el relleno viejo**: los pads de GND quedan a ~0.62 mm del pour, sin thermal spokes. Es decir: **el archivo guardado va atrás de tu sesión viva de KiCad.** Para darte la lista exacta de los 28 y de cada capacitor suelto con su red de destino: **Ctrl+S en pcbnew** (KiCad rellena las zonas al guardar / al correr DRC) y vuelvo a correr el análisis. Ningún capacitor de la placa está *sin red asignada* — todos tienen su net; es puramente cuestión de ruteo, así que en cuanto vea el archivo fresco te doy pad por pad a dónde va cada uno.