- 03-Architecture-Hardware/2026-10-28_Drogheda_T42b-HV24_V5.6-V5.7_ES_v1.0.md (+3 figuras en img/). - Documentos de diseño V5.6/V5.7 v1.5, victorias rápidas T42a (§4 hecho), instrucciones para Leo v1.3. - CLAUDE.md: entrada de T42b, con la lección de las vías «libres» y tools/gerber_netcheck.py como compuerta. - kicad 8b0a23a: reglas F-01 y arreglos de cobre; Rev6/Rev7 regenerados (mismo BOM, CPL y designadores). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QCy5VHMVLkAmftYM6swWmx
106 lines
12 KiB
Markdown
106 lines
12 KiB
Markdown
---
|
||
title: "T42b: la clase HV24 completa en la V5.6 y la V5.7, antes del piloto"
|
||
tags: [project-drogheda, hardware, hbox, einarboard, v5.6, v5.7, drc, hv24, piloto, t42b]
|
||
project: Project Drogheda
|
||
author: "Helgen Technologies (redacción y scripts: Claude; decide: Leo)"
|
||
date: 2026-10-28
|
||
version: 1.0
|
||
status: "HECHO — HBox_PCB 8b0a23a (28-oct). Los paquetes HBOX_v5_Rev6_PROD y Rev7_PROD del piloto ya llevan T42b"
|
||
audience: "Leo, Michelle, Aldair"
|
||
---
|
||
|
||
# T42b: la clase HV24 completa en la V5.6 y la V5.7
|
||
|
||
!!! success "Hecho el 28-oct (Leo: «yes», 12:57). El piloto prueba el mismo cobre que llevarán las 135/365"
|
||
- **El error:** en la V5.6 y la V5.7 la clase de red **HV24** (las redes de 24 V) solo atrapaba `/24V_IN`. A los patrones `24V`, `IGN_IN` y `Q6_GATE` les faltaba la «/» inicial, así que `/24V`, `/IGN_IN`, `/Q6_GATE` (y en la V5.7 `/VIN_FUSED`, `/SW_PWRIN` y `/BOOT_PWRIN`; en la V5.6 el nodo del buck del ventilador) se revisaban a 0.15 mm y no con la regla del equipo. Se encontró el 22-oct ([victorias rápidas, §4](v56-v57-victorias-rapidas-22oct.md#4-hallazgo-la-clase-hv24-solo-atrapa-24v_in-t42b)).
|
||
- **Lo que se hizo:** patrones con «/» y las reglas F-01 de la v6 (0.2 mm entre redes HV24, 0.3 mm en las caras y 0.5 mm en capas internas). Salieron **14 errores en la V5.6** (y una isla de GND que quedaba sin conectar) **y 16 en la V5.7** (15 de separación y un capacitor con un solo rayo de relleno). Se arreglaron por script (`tools/t42b_v5.py`), y en las dos tarjetas la isla de GND de la parte baja del divisor de la ignición lleva 2 vías de costura.
|
||
- **El que más importaba (V5.7):** la línea EN del regulador U15 (TPS54360B, **8.4 V como máximo**) pasaba a 0.15–0.28 mm de `/24V`, junto a los pads sin montar de R79. Ahora va a 0.38 mm o más.
|
||
- **Resultado:** DRC igual que antes (solo los 3 errores conocidos de MOD1), 0 sin conectar y paridad limpia. **BOM, CPL y designadores idénticos byte por byte**; en el Gerber cambian solo las 4 capas de cobre y los barrenos. Revisión independiente en dos rondas: la primera encontró una vía de costura que el paquete sacaba con otra red (§4); ya está corregido y la segunda dio GO.
|
||
- **Para el pedido no cambia nada:** son los mismos archivos (`HBOX_v5_Rev6_PROD` y `HBOX_v5_Rev7_PROD`), regenerados. Los pasos siguen en las [instrucciones para Leo](instrucciones-leo-27oct.md). Michelle no tiene que hacer nada en la V5.6 ni en la V5.7.
|
||
|
||
## 1. Qué estaba mal y por qué importa
|
||
|
||
KiCad compara cada patrón de clase de red contra el nombre completo de la red, que empieza con «/». Las clases `PWR_HI` y `PWR_MID` tienen cada patrón con y sin diagonal; `HV24` no. Por eso solo `/24V_IN` era HV24.
|
||
|
||
| Red de 24 V | V5.6 | V5.7 | Se revisaba a |
|
||
|---|---|---|---|
|
||
| `/24V`, `/IGN_IN`, `/Q6_GATE` | sí | sí | 0.15 mm |
|
||
| `/VIN_FUSED`, `/SW_PWRIN`, `/BOOT_PWRIN` | — | sí | 0.15 mm |
|
||
| `/SW_FAN`, `/BST_FAN` (buck del ventilador, U15 de la V5.6) | sí | — | 0.15 mm |
|
||
|
||
A 32 V o menos, IPC-2221 pide de 0.05 a 0.13 mm bajo máscara, así que no era un riesgo eléctrico inmediato. El problema es que la regla de 0.5 mm que el equipo puso después del corto del 23-jul no se aplicaba a esas redes, y nadie lo sabía. En una caja sellada en el puerto, con humedad y sal, lo que más cuenta son los pads expuestos: por ejemplo, los pads sin montar de R79 (V5.7), con `/24V` en un lado y la línea EN en el otro.
|
||
|
||
## 2. Las reglas nuevas (las mismas de la v6)
|
||
|
||
- **`.kicad_pro`.** HV24 = `/24V_IN`, `/24V`, `/IGN_IN`, `/Q6_GATE`, `/VIN_FUSED`, `/SW_PWRIN`, `/BOOT_PWRIN`, `/SW_FAN` y `/BST_FAN`. Las que no existen en una tarjeta no atrapan nada; la lista es la misma en las dos. `/SW_FAN` sale de `PWR_MID` (una red, una clase). La separación de la clase queda en 0.3 mm, como en la v6.
|
||
- **`.kicad_dru`.** Las reglas F-01 de la v6 en lugar del «HV24 clearance» de 0.5 mm:
|
||
- 0.15 mm entre redes que no son HV24;
|
||
- 0.2 mm entre redes HV24;
|
||
- 0.3 mm de HV24 a lo demás en F.Cu y B.Cu (bajo máscara);
|
||
- 0.5 mm de HV24 a lo demás en In1 y In2 (margen contra defectos y CAF, por el corto del 23-jul);
|
||
- entre pads del mismo CI (U15) manda la huella del fabricante.
|
||
- **Consecuencia que conviene saber:** `/24V_IN` pasa de 0.5 a 0.3 mm en las caras, porque así lo pide F-01. El relleno de GND se acerca 0.2 mm a la entrada (J15, Q6, D18).
|
||
|
||
## 3. Los arreglos de cobre
|
||
|
||
### V5.7: 16 errores
|
||
|
||

|
||
|
||
| Dónde | Antes | Con T42b |
|
||
|---|---|---|
|
||
| **EN de U15** (`/EN_PWRIN`, TPS54360B) junto a C79.1, C35.1 y R79.1 (`/24V`) | 10 puntos a 0.15–0.28 mm | Ruta nueva de 0.3 mm por x = 183.52 y y = 75.05: **≥ 0.38 mm** de `/24V` (y 0.23 mm del pad RT de U15, 0.30 mm de `/VEH5V`). EN no lleva corriente (R78/R79 sin montar) |
|
||
| Colita de `/24V` que salía 0.1 mm del pad C79.1 hacia EN | 0.15 mm de EN | Se quitó (estaba dentro del pad) |
|
||
| Vías de GND junto al `/24V` de B.Cu (186.0, 74.4) y (187.88, 73.12) | 0.28 y 0.15 mm | Movidas 0.14 y 0.28 mm: **≥ 0.42 mm** |
|
||
| Vía de `/IGN_IN` (131.6, 54.75) | 0.40 mm de una vía de GND y 0.30 mm de `/NTC_CELL` (In2) | Vía de GND de 0.6 mm, 0.05 mm a la izquierda: **0.55 mm**. `/NTC_CELL` baja 0.2 mm con 0.3 mm de ancho junto a la vía: **0.60 mm** |
|
||
| C80.2 (39 pF, compensación de U15) | Con un solo rayo de relleno: el brazo que llegaba a C78.2 ya no pasa a 0.3 mm de `/SW_PWRIN` | C78.2 a la vía de GND de (192.1, 65.2) y **C80.2 directo a R77.2** (GND), entre los pads de R76 |
|
||
| Isla de GND en F.Cu con C12.2, R16.2 y R6.2 (la parte baja del divisor de la ignición) | Al pedir 0.3 mm alrededor de `/IGN_IN`, el cuello que la unía se cierra y queda con una sola vía, en (118.0, 50.0), a 16 mm de R16 (lo vio la revisión independiente; el DRC no lo marca) | **Las mismas 2 vías de costura «libres» que en la V5.6** |
|
||
|
||
### V5.6: 14 errores y una isla
|
||
|
||

|
||
|
||
| Dónde | Antes | Con T42b |
|
||
|---|---|---|
|
||
| `/24V` de C35.1 a la vertical de x = 182.6 (entrada del buck del ventilador, < 0.1 A) | 1.0 mm, a 0.15 mm de C35.2 (GND) | 0.6 mm: **0.35 mm** |
|
||
| `/SW_FAN` junto a C75.1 (`/BST_FAN`) | 0.18 mm (entre HV24 se pide 0.2) | La horizontal baja 0.1 mm: **0.28 mm** |
|
||
| Vía de GND (179.9, 68.55) | 0.24 mm de `/24V` | 0.15 mm a la izquierda: **0.39 mm** |
|
||
| Vía de GND (185.03, 73.155) y su tramo hacia `/24V` | 0.15 mm (3 puntos) | Vía a (185.2, 72.95), **«libre»**: **0.355 mm**, y **tramo nuevo hacia el otro lado**: sin él, KiCad borraba como isla 16 mm² de relleno de GND entre `/SW_FAN` y `/24V` |
|
||
| Vías de `/MODEM_LED_MCU`, `/3V3` y `/RGBR_K` junto al `/24V` de In2 | 0.46, 0.39 y 0.495 mm | Movidas 0.12–0.2 mm: **≥ 0.59 mm** |
|
||
| Isla de GND en F.Cu con C12.2, R16.2 y R6.2 (la parte baja del divisor de la ignición) | Al pedir 0.3 mm alrededor de `/IGN_IN`, el cuello que la unía se cerraba: «sin conectar» | **2 vías de costura «libres»**, en (136.6, 55.3) y (142.1, 54.65) |
|
||
| Vía de `/IGN_IN` | Igual que en la V5.7 | Igual que en la V5.7 |
|
||
|
||

|
||
|
||
## 4. Cómo se probó
|
||
|
||
- **Script** `tools/t42b_v5.py` (por omisión, en seco). Antes de escribir:
|
||
- revisa que cada tramo y vía sea el esperado;
|
||
- todo lo nuevo o movido queda dentro de las reglas con 0.045 mm de sobra como mínimo;
|
||
- el cobre fijo (sin zonas) que no cumple con HV24 pasa de 13 a 0 en la V5.6 y de 14 a 0 en la V5.7 (los mismos pares que marca KiCad);
|
||
- la conectividad de las redes tocadas no cambia;
|
||
- revisa barrenos y orilla.
|
||
|
||
El resultado es idéntico byte por byte en la nube y en la Mac.
|
||
|
||
- **DRC** (KiCad 10.0.4, con el relleno guardado y paridad):
|
||
- V5.6: 3 errores (los de MOD1, conocidos) y 96 avisos, igual que antes;
|
||
- V5.7: 3 errores y 98 avisos, igual que antes;
|
||
- en las dos, 0 sin conectar y paridad limpia.
|
||
- **Paquete** (Fabrication Toolkit, `tools/fab_package.py`), contra el de `bdda3fd`:
|
||
- BOM, CPL y designadores **idénticos byte por byte**;
|
||
- máscaras, pasta, serigrafía, contorno y NPTH idénticos;
|
||
- cambian las 4 capas de cobre y los barrenos PTH: de 539 a 541 en la V5.6 y de 545 a 547 en la V5.7 (las 2 vías de costura de cada una).
|
||
- **La red de cada vía, pista y pad en el Gerber** (`tools/gerber_netcheck.py`, nuevo). La revisión independiente encontró que el paquete de la primera corrida sacaba la vía de costura de (136.6, 55.3) como `/3V3` en las 4 capas, aunque en el PCB es GND. Así, la isla de C12.2, R16.2 y R6.2 quedaba con una sola vía. KiCad le cambia la red a una vía que no es «libre» y no tiene pistas, según el cobre que encuentra junto a ella al armar la conectividad; aquí era el relleno viejo de `/3V3` en In2, porque el paquete se generó antes de guardar el relleno nuevo. El DRC de `kicad-cli` no lo ve. **Arreglo:** las vías de costura nuevas y la vía de GND movida que solo sostiene un tramo (185.2, 72.95) van «libres» (`free`), como las 175 de costura que ya tiene cada tarjeta, y el paquete sale del PCB ya rellenado y guardado. `gerber_netcheck.py` compara contra el Gerber las 397 / 405 vías, ≈ 2 260 pistas y ≈ 840 pads de cada tarjeta: **0 diferencias** en las dos.
|
||
- **De dónde sale cada cambio de cobre** (por capa, F.Cu / In1 / In2 / B.Cu: V5.6 52.3 / 95.1 / 51.9 / 31.0 mm²; V5.7 42.5 / 89.4 / 13.7 / 27.8 mm²). Es el relleno de GND que se aparta de las redes de 24 V (de 0.15 a 0.3 mm en las caras y a 0.5 mm adentro; lo más grande es `/IGN_IN` en In1 y `/24V` en In2), el que se acerca a `/24V_IN` en las caras, y lo que rodea a lo editado. La revisión independiente lo midió red por red en el Gerber: todo queda a la regla + 0.25 mm de cobre HV24 o junto a lo editado; el relleno solo crece junto a `/24V_IN`, y los cuellos de relleno que se pierden son de 1.2 mm² o menos, sin pads.
|
||
- **Revisión independiente** (otro agente, que no vio mi análisis; 2 rondas). Revisó las reglas, las clases de red, cada arreglo de cobre y el Gerber red por red. 1.ª ronda: **NO-GO** por la vía que salía como `/3V3` y porque el paquete no venía del relleno guardado; además propuso las 2 vías de costura de la V5.7. 2.ª ronda, sobre los archivos que se subieron: **GO**. 0 diferencias de red en vías, pistas y pads; cada red queda en una sola pieza y ningún barreno toca dos redes; F-01 y el piso de 0.15 mm se cumplen en todo el cobre, rellenos incluidos; el relleno guardado es idéntico al del Gerber. Dejó como opcional: 8 vías viejas en la V5.6 y 3 en la V5.7 no son «libres» ni llegan a una pista; hoy salen con su red, y `gerber_netcheck.py` queda como compuerta de cada paquete.
|
||
|
||
## 5. Lo que sigue
|
||
|
||
- **Pedido del piloto** (bloqueado por el pago): con `HBOX_v5_Rev6_PROD` y `HBOX_v5_Rev7_PROD` de HBox_PCB `8b0a23a`, siguiendo los mismos pasos. En el visor de JLC no cambia nada que revisar.
|
||
- **Las 135/365** llevan los mismos archivos.
|
||
- En la v6 las reglas F-01 ya estaban; nada de esto la toca. Para su paquete (G1) se corre también `tools/gerber_netcheck.py`.
|
||
- **Para la siguiente revisión, no para el piloto:** con 0.5 mm en capas internas, la ranura que `/IGN_IN` abre en el plano de GND de In1 (116 mm) pasa de 0.6 a 1.3 mm, y por encima cruzan USB y el cristal. A 12 Mbps y con cruces en ángulo recto no se espera nada medible, pero conviene rutear `/IGN_IN` por otro lado. Ojo: la excepción de pads de U15 no se usa (todas sus separaciones son de 0.3 mm o más); se deja igual que en la v6.
|
||
|
||
*Archivos: HBox_PCB `bdda3fd` (antes) y `8b0a23a` (con T42b). Respaldos de antes en `kicad/_to_delete/t42b/` (no se suben).*
|