hbox-docs/docs/hardware/v6-estado-21oct.md

382 lines
28 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: "Estado de la v6 al 22-oct: T25, T28, T38 y T39 (bloque A) aplicados"
tags: [project-drogheda, hardware, hbox, einarboard, v6, auditoria, t25, t28, t38, t39, courtyards, barrenos, u25, bloque-a, layout, michelle]
project: Project Drogheda
author: Helgen Technologies (revisión: Claude; pedido: Leo)
date: 2026-10-22
version: 1.2
status: ACTIVO — HBox_PCB b74b96f (T25, T28 y T38; Leo, 22-oct 09:42) + T39 (Claude, 22-oct) · falta commit y push de T39
audience: Leo, Michelle (layout)
---
# Estado de la v6 al 22-oct · T25, T28, T38 y T39 aplicados
**Pregunta (Leo, 21-oct):** ¿T28 ya quedó o hay que correrlo? ¿Cómo va la v6? Y en la noche: trabaja en la v6 real.
**22-oct, 09:40:** «Haz tú los cambios de la v6; es la prioridad».
!!! note "Rev. 1.2 (22-oct): T39, el bloque A, ya está en la v6"
- **T39 aplicó la propuesta α del bloque A por script.** Leo lo pidió el 22-oct como prioridad. D34 quedó entre U25 y L22, L22 al este y R53/R54 junto a U6. El nodo SW y `/VEH5V` van por F.Cu. In1 e In2 ya no llevan pistas bajo la fuente, y MH8 quedó libre. Detalle en el [§6](#6-t39-22-oct-el-bloque-a-por-script).
- **DRC de KiCad 10, con relleno y paridad:**
- 0 sin conectar y la misma paridad (19 PWR_FLAG);
- **44 errores**: ≈ 33 de MH4 y 11 encimes de courtyard que son solo de margen;
- ya no están MH8 ni los 3 encimes reales del bloque A.
- **Falta el commit y el push de T39.** Hasta entonces, Michelle no abre la v6 (recuadro amarillo del §1).
!!! note "Rev. 1.1 (21-oct, noche): T38 y una corrección al §3"
- **T38 ya está aplicado en la v6.** Antes lo probé en una copia con el DRC de KiCad 10. Hace tres cosas: courtyards reales en 11 huellas, `/3V3` lejos de MH6 y una regla nueva para los barrenos. Detalle en el [§5](#5-t38-21-oct-noche-courtyards-mh6-y-regla-de-barrenos).
- **Corrección.** En la rev. 1.0 escribí que L22 se quedaba donde está y D34 iba abajo del pin 8 de U25. **Ahí no cabe:** entre U25 y P1 quedan 4.1 mm, y D34 (SMC) mide 6.7 mm aun de lado. El [§3](#3-lo-que-tiene-que-corregir-michelle-antes-de-seguir) ya trae la colocación que sí cabe (propuesta α), revisada con los courtyards nuevos.
**Respuesta corta (22-oct):**
- **T25, T28 y T38** ya están en HBox_PCB: `b74b96f`, que Leo subió el 22-oct a las 09:42.
- **T39 (22-oct) hizo el bloque A** con la propuesta α ([§6](#6-t39-22-oct-el-bloque-a-por-script)):
- el cátodo de D34 quedó a 3.52 mm del pin SW (antes 13.0) y L22.1 a 8.79 mm;
- el nodo SW tiene 9.8 mm² de cobre fuera de los pads;
- el lazo por centros de pad mide 56.5 mm² con C149 (antes ≈ 115);
- MH8 quedó libre y ya no están los 3 encimes reales: C153 y C154 bajo L22, y R53 sobre U25;
- In1 e In2 ya no llevan pistas de señal bajo el nodo SW, L22 ni la entrada de U25.
- **Del bloque A queda poco:** Rig1 a ≤ 3 mm de P1.3 (está a 4.79 mm) y decidir el `/24V` sin montar (pasos 5 y 6 del plan).
- **La v6 todavía no se puede pedir.** Falta MH4, que Claude evalúa como T40, y siguen los bloques B a H del plan.
- **DRC de hoy, con T39:**
- 44 errores: ≈ 33 de MH4 y 11 encimes de courtyard que son solo de margen; esos se excluyen al final;
- 0 sin conectar y la paridad solo con los 19 PWR_FLAG;
- 254 avisos, 8 menos que antes.
![v6 con T39: el bloque A, la fuente U25, por script](img/2026-10-22_Drogheda_v6-T39-Bloque-A_v1.0.png)
**Así estaba el 21-oct, antes de T38 y T39:**
![v6 al 21-oct: la fuente U25 y los barrenos](img/2026-10-21_Drogheda_v6-Estado-U25-Barrenos_v1.0.png)
## 1. T25, T28 y T38: qué cambiaron hoy
| Script | Qué cambió en `hbox-watchdog-v6` |
|---|---|
| **T25 `--set v6`** | **5 barrenos** de 3.2 mm con máscara de 6 mm: MH5 (65.2, 45.3), MH6 (65.2, 135.3) y MH4 (185.2, 90.3), los de la placa base de la V5.5, más MH7 (195.2, 45.3) y MH8 (195.2, 135.3) en las esquinas. Van como piezas «solo de tarjeta», así que *Actualizar PCB* ya no los borra. |
| **T28** | U25 sin el código del AP64350: queda solo LCSC C524806 (TPS54360B) · pasta del EP de U6 al 50 % (6 ventanas de 0.95 × 0.85 mm) · conexión sólida a la zona en 114 pads de tierra de potencia y RF · stackup JLC04161H-7628 con ENIG y control de impedancia · cajetín «EinarBoard v6 (HBOX 6.0)», rev 6.0, y textos de serigrafía · clase RF a 0.35 mm en el `.kicad_pro`. |
| **T38** (21-oct, noche) | Courtyard correcto en U19, U20, U23, U24, U25, U26, D22, D27, J12, J13 y L22, en la tarjeta y en `Drogheda-v6.pretty` · `/3V3` de MH6 por B.Cu, a 4.06 mm del centro · regla nueva en el `.kicad_dru`: en F.Cu y B.Cu, solo GND a menos de 4 mm del centro de un barreno. No toca el `.kicad_pro`. |
| **T39** (22-oct) | Bloque A con la propuesta α: mueve D34, L22, R53 y R54 · nodo SW y `/VEH5V` con pistas anchas de F.Cu · `/I2C_SDA`, `/I2C_SCL` y la toma de 5 V de R121 pasan de In1/In2 a B.Cu · borra 28 tramos y 5 vías (2 de ellas dentro de MH8) y agrega 9 vías y 19 tramos. Solo cambia el `.kicad_pcb`; ver [§6](#6-t39-22-oct-el-bloque-a-por-script). |
**Cómo se probó.**
- T25 y T28: dos copias del commit `9255b84` en la Mac, una tal cual y otra con los scripts. DRC de KiCad 10.0.4 con el `.kicad_dru`, «Rellenar zonas» y «Comprobar paridad»:
- sin los scripts: 0 errores;
- con los scripts: 22 errores, todos en MH4 y MH8; 0 sin conectar; la paridad igual (19 PWR_FLAG).
- T38: igual, sobre una copia de la v6 ya con T25 y T28. Después se aplicó a la v6 de HBox_PCB y el resultado es idéntico, byte por byte, a la copia probada.
- T39: igual, sobre una copia de `b74b96f`. Después se aplicó a la v6 de HBox_PCB y se rellenó con `kicad-cli` y el proyecto cargado; el archivo es idéntico, byte por byte, a la copia probada (`97ea7e45`).
- Correr T28 o T38 otra vez no cambia nada, y T25 se niega si los barrenos ya están.
!!! warning "Antes de que Michelle vuelva a abrir la v6"
T39 (22-oct) cambia `hbox-watchdog-v6.kicad_pcb`, igual que antes T38 cambió el `.kicad_pcb`, el `.kicad_dru` y 8 archivos de `Drogheda-v6.pretty`. Git ya no mezcla archivos de KiCad (`merge=binary`): si Michelle guarda la v6 sobre su copia anterior y la sube, se pierde uno de los dos trabajos. El orden es: **Leo sube → Michelle hace `git pull --ff-only` → abre la v6.**
## 2. Los 8 bloqueantes del 16-oct, hoy
Medido en el cobre con las zonas rellenadas. «19-oct» = `00a9af4`; «hoy» = `b74b96f` (T25, T28 y T38) con T39.
| # | Bloqueante del 16-oct | 19-oct | Hoy | Estado |
|---|---|---|---|---|
| 1 | U25 con el código del AP64350 | igual | solo C524806 | ✅ T28 |
| 2 | Sin barrenos | sin barrenos | 5 barrenos · MH5, MH6, MH7 y MH8 libres (MH6 con T38, MH8 con T39) · **MH4 con piezas y cobre dentro** (≈ 33 errores) | 🟠 liberar MH4 |
| 3 | 5 V por capas internas | `/VEH5V` 12 mm por In1 a 0.5 mm; `/VIN_SW` 22 mm por In2 | `/VEH5V` de L22.2 a R51.1 **de 2 mm por F.Cu** (T39); de R51.1 a RS1 sigue de 1.0 mm, sin vías (meta ≥ 2 mm). La toma de 5 V de R121 ya no va por In1. `/VIN_SW` de RS1 a Q7 **igual**: 22 mm por In2 a 0.5–0.8 mm, con 2 vías; Q7 sigue a 10.6 mm de RS1 | 🟠 mitad |
| 4 | Cargador U6 | `/SW_BAT` y `/BAT_PLUS` de 0.5 mm; 1 vía en el EP | `/SW_BAT` de 0.7–0.75 mm (meta: polígono ≥ 2 mm); `/BAT_PLUS` igual; 1 vía en el EP (meta 9) | ❌ |
| 5 | Fuente U25 | L22 a 13 mm; EP sin vías | **D34 a 3.52 mm del pin SW** ✅ · L22.1 a 8.79 mm ✅ · nodo SW 9.8 mm² fuera de los pads ✅ · lazo por centros 56.5 mm² con C149 (60.8 con C150) ✅ · 6 vías en el EP y 4 en el ánodo de D34 ✅ · C149 a 0.75 mm de VIN ✅ · C153 y C154 fuera de L22 ✅ · faltan Rig1 (4.79 mm de P1.3) y el `/24V` sin montar | ✅ T39 (con las metas del 21-oct) |
| 6 | RF LTE por In1 | 21.9 mm por In1 | igual | ❌ |
| 7 | Vías de GND | 96 (meta ≥ 400) | 116 (T39: 7 nuevas y 2 menos en MH8): 1 bajo U19 y 0 bajo U18; In1 con 1 587 mm de pistas (69 menos) | ❌ |
| 8 | Stackup genérico | igual | JLC04161H-7628, ENIG, control de impedancia | ✅ T28 |
**Lo demás** (bloques C a H: módem, GNSS, U12, pares diferenciales, puertos, In1, serigrafía) no cambió desde el 19-oct.
**El sensado de RS1 sigue como el 16-oct:** VIN es Kelvin y CLN es «casi Kelvin», como se aceptó. Hay que conservarlo al rehacer `/VIN_SW`.
**Otros cambios de hoy:**
- `/24V` (la rama de Q10) pasó de In1 a B.Cu; el plan pedía borrarlo.
- Rig1 quedó a 4.8 mm de P1.3 (meta ≤ 3 mm; antes 8.4).
- P1 se recorrió 1.46 mm al oeste.
## 3. Lo que tiene que corregir Michelle antes de seguir
Después del `git pull`. Primero esto y luego el resto de los bloques A y B del [plan](v6-plan-fines-de-semana.md#3-sabado-24-bloques-a-y-b-el-camino-de-la-energia).
!!! success "22-oct: el §3.1 ya quedó con T39 y MH8 también"
T39 hizo la propuesta α ([§6](#6-t39-22-oct-el-bloque-a-por-script)). Lo de abajo queda como registro de lo que se pidió. Cambió en tres cosas:
1. **D34 y L22 quedaron 0.08 mm más al este:** D34 en (181.08, 121.75) y L22 en (192.18, 122.5). Así el courtyard de D34 ya no encima al de C152.
2. **R53/R54 quedaron abajo de JP2.** Están a 3.4 mm de U6.10 y a 6–7 mm de U6.18, no a ≤ 3 mm: más cerca de U6.18 no hay lugar sin mover piezas del bloque B.
3. **El nodo SW y `/VEH5V` son pistas anchas, no zona** ([§6.3](#63-por-que-pistas-y-no-zona)).
**Para Michelle queda:** MH4 (si T40 no lo resuelve), Rig1 y el `/24V` del bloque A, y luego el bloque B del plan.
![v6 con T38: courtyards reales, la fuente U25 y los barrenos](img/2026-10-21_Drogheda_v6-T38-Courtyards-U25-Barrenos_v1.0.png)
### 3.1 Bloque A: propuesta α (corrige la rev. 1.0)
**D-21-3 (propuesta, falta el OK de Leo):** el bloque A se hace con la colocación de abajo (propuesta α), y antes del sábado se revisa la pared de la HBOX junto a L22.
**Por qué hay que mover L22.** El diodo D34 (B560C, SMC) es lo más importante del lazo caliente: su cátodo tiene que quedar pegado al pin SW (pin 8) de U25. Hoy L22 ocupa ese lugar. Abajo del pin 8 no cabe: de U25 a P1 quedan 4.1 mm y D34 mide 6.7 mm aun de lado. La colocación que mejor funciona con estas piezas es **D34 entre U25 y L22, y L22 recorrida al este**. También probé L22 girada 90°: así el nodo SW queda el doble de largo.
1. **Primero, R53 y R54** (divisor BSTFB del LTC4040) a **≤ 3 mm de U6.18** (bloque B, paso 6 del plan). Hoy están en (177.0, 125.7) y (175.4, 126.9), justo donde va el cobre del nodo SW.
2. **D34:** girar 90° (cátodo abajo) y ponerlo en **(181.0, 121.75)**.
- El cátodo queda a 3.4 mm del pin 8, de orilla a orilla.
- El ánodo queda arriba, junto a la tierra de C153 y C154.
3. **L22:** sin girar, en **(192.1, 122.5)**.
- L22.1 queda a 8.7 mm del pin 8.
- L22.2 queda a 0.62 mm de la orilla de la tarjeta (mínimo 0.5 mm) y el cuerpo a 1.35 mm. **Revisar que la pared de la HBOX no choque ahí.**
- Así C153 deja de quedar debajo de L22.
4. **C152 se queda donde está.** Su courtyard toca el de U25 y el de D34 solo en el margen; el hueco real es de 0.3 a 0.4 mm.
5. **Nodo SW (`/SW_PWRIN`)** en F.Cu, pin 8 → C152.2 → cátodo de D34 → L22.1 (naranja en la figura): ≈ 9 mm² de cobre fuera de los pads.
6. **In1 e In2 limpios debajo del nodo SW y de L22.** Hoy pasan por ahí:
- `/I2C_SDA` por In1 y `/I2C_SCL` por In2;
- `/MAIN5V` por In1 en x = 178.4;
- `/VFB_BST` por In1 en x = 177.2.
Los dos últimos se van solos al mover R53 y R54.
7. **4 vías de GND a ≤ 1 mm del ánodo de D34** (verdes en la figura): (178.55, 117.6), (178.55, 118.9), (183.45, 117.6) y (183.45, 118.9).
8. **`/VEH5V` sale de L22.2 por arriba, bajo el cuerpo de la bobina** (azul en la figura).
- 2 mm de ancho, por y = 116–118, hasta R51.1; ahí sigue el camino de hoy hacia RS1.
- Hay que recorrer la vía de GND de (185.8, 115.5).
**Metas corregidas del bloque A.** Las del plan no se pueden cumplir con D34 en SMC y esta bobina. Ya las cambié en el [plan](v6-plan-fines-de-semana.md#31-fuente-u25-bloque-a).
| | Plan del 16-oct | Corregida | Con la propuesta α | Hoy |
|---|---|---|---|---|
| Cátodo de D34 al pin 8 (orilla a orilla) | 2–3 mm | **≤ 3.5 mm** | 3.4 mm | 13.0 mm |
| L22.1 al pin 8 (orilla a orilla) | ≤ 5 mm | **≤ 9 mm** | 8.7 mm | 2.2 mm |
| Cobre del nodo SW | ≤ 25 mm² en total | **≤ 10 mm² fuera de los pads** | ≈ 9 mm² | 11.6 mm² |
| Lazo por centros de pad (C150 → U25 → D34) | < 30 mm² | **≤ 60 mm²** | 56–60 mm² | 115 mm² |
- **Por qué cambian.** Los pads del nodo SW ya suman 33 mm²: el de L22 solo mide 23. Ninguna colocación baja de 25 mm² en total.
- **El lazo real es menor que el que se mide por centros de pad.** Con In1 como tierra sólida debajo (después del paso 6), a 0.21 mm de F.Cu, el retorno corre justo debajo del camino de ida (igual que en la V5.7, D-21-2). Lo que cuenta es que la ida sea corta y que haya vías de GND en el ánodo de D34 y en C149/C150.
### 3.2 Barrenos
1. **MH8 (195.2, 135.3):** ✅ ya quedó con T39 (22-oct). D34 salió de ahí y se borraron las 2 vías de GND de (194.6, 133.7) y (196.2, 133.7): 0 errores en MH8.
2. **MH4 (185.2, 90.3):** igual que el 16-oct ([plan, §3.4](v6-plan-fines-de-semana.md#34-barrenos-mh4-y-mh6-1-h)). Claude lo evalúa como T40 (22-oct). La regla nueva hace que el DRC ya muestre todo lo que estorba: ≈ 33 errores con KiCad 10. El número cambia un poco de una corrida a otra; ver el [§6.4](#64-drc-con-t39).
- D23, D24 y D25 junto a J14 y sus resistencias de 22 Ω;
- `/NTC` (In2) a ≥ 2.5 mm del centro;
- `/SIM_RST`, `/SIM_CLK`, `/SIM_DATA` y la pista GND fuera del círculo de 4 mm.
3. **MH6 (65.2, 135.3):** ✅ ya quedó con T38.
4. **No mover los barrenos:** MH4–MH6 son los de la placa base de la V5.5, y MH7 y MH8 son las esquinas de la v6.
### 3.3 Cierre
**B** y DRC con «Rellenar zonas» y «Comprobar paridad»: 0 sin conectar y ningún error, salvo los encimes de courtyard que son solo de margen.
Esos se excluyen **al final, cuando ya no se muevan las piezas**. En la ventana del DRC: clic derecho → *Excluir esta violación*, con el comentario «T38: solo margen, hueco X mm». La lista está en el [§5](#5-t38-21-oct-noche-courtyards-mh6-y-regla-de-barrenos). KiCad solo acepta la exclusión con la posición exacta del marcador, y esa solo la da su ventana: por eso no la puse con el script.
Commit y push con el bloque en el mensaje.
## 4. Calendario
El paso del sábado 24 a las 8:00 (Leo corre T25 y T28) ya está hecho, y también MH6, MH8 y la colocación del bloque A (T39). Lo demás del [plan de fines de semana](v6-plan-fines-de-semana.md) sigue igual:
- sábado 24: lo que queda del bloque A (Rig1 y `/24V`) y el bloque B;
- domingo 25: bloques C, D y E;
- entre semana: T29;
- lunes 2-nov: pedido del piloto.
## 5. T38 (21-oct, noche): courtyards, MH6 y regla de barrenos
Script: `kicad/tools/t38_v6_courtyards_mh.py`. No mueve piezas.
### 5.1 Courtyards
Las 8 huellas de `Drogheda-v6.pretty` que vienen de easyeda2kicad traían como courtyard solo el contorno del cuerpo, con los pads afuera. En L22 ni siquiera era un rectángulo: era un triángulo. El DRC solo revisa encimes con el courtyard, así que en esas 11 piezas no podía ver nada.
Courtyard nuevo: el rectángulo que cubre cuerpo y pads, más 0.25 mm. Es el margen IPC-7351 nominal, el mismo de las huellas de KiCad del resto de la tarjeta. Se cambió en la tarjeta y en la biblioteca: *Actualizar huella desde biblioteca* ya no lo deshace, y no aparece ningún aviso nuevo de «no coincide con la biblioteca» en la v6.
| Huella (`Drogheda-v6`) | Piezas | Courtyard de antes | Ahora |
|---|---|---|---|
| SO-8_L4.9-W3.9-P1.27-LS6.0-BL-EP | U20, U25 | 5.0 × 4.0 mm, sin los pads | 5.5 × 8.1 mm |
| IND-SMD_L13.5-W12.5 | L22 | triángulo | 15.5 × 13.0 mm |
| LGA-124_L24.0-W24.0 (A7670) | U19 | 24 × 24 mm | 26.5 × 26.5 mm |
| VSSOP-8_L2.1-W2.4 | U23, U24 | 2.0 × 2.3 mm | 2.5 × 4.4 mm |
| SMA_L4.4-W2.6 | D22 | 4.3 × 2.5 mm | 6.7 × 3.0 mm |
| SOD-923 | D27 | 0.8 × 0.6 mm | 2.1 × 1.1 mm |
| RF-SMD_FRF05002 (U.FL) | J12, J13 | 2.6 × 2.85 mm, sin los pads de GND | 4.5 × 4.15 mm |
| LGA-12_L2.0-W2.0 | U26 | 2.0 × 2.0 mm | 2.8 × 2.8 mm |
**Lo que destapó: 14 encimes de courtyard.** Medí el hueco físico entre cuerpo y pads de cada par:
| Par | Hueco físico | Qué es |
|---|---|---|
| L22 – C153 | **−0.3 mm** | **real:** C153 (1210) queda debajo del cuerpo de L22. La propuesta α lo quita |
| L22 – C154 | 0.30 mm | solo margen; con α desaparece |
| U25 – C152 · R120 · R53 · C156 | 0.31 · 0.34 · 0.61 · 0.29 mm | solo margen; R53 se va con el bloque B |
| U19 – Q20 · Q21 · TP8 · C126 | 0.65 · 0.76 · 0.33 · 0.44 mm | solo margen |
| U20 – C129 | 0.29 mm | solo margen |
| D22 – C130 | 0.45 mm | solo margen |
| D27 – U28 | 0.45 mm | solo margen |
| J12 – L21 | 0.44 mm | solo margen |
Los de margen están bien para ensamblar: se excluyen al final (§3.3).
**V5.6 y V5.7 no se tocaron.** Usan 2 y 4 de estas huellas: U7 y U26, y en la V5.7 también U25 y L22.
- Con los courtyards nuevos solo tendrían encimes de margen: 1 en la V5.6 y 7 en la V5.7, con huecos de 0.40 a 0.56 mm. Lo revisé: no hay ninguno real.
- Como la biblioteca cambió, su DRC ahora muestra **2 y 4 avisos de «no coincide con la biblioteca»**. Es solo el courtyard: no cambia nada de los Gerber. **No actualicen esas huellas antes de sacar sus Gerber.**
### 5.2 Regla de barrenos y plano `/3V3`
Los 5 barrenos tienen máscara abierta de 6 mm en las dos caras. En la v6, B.Cu es el plano de `/3V3`, y llegaba a **1.85 mm del centro de los 5 barrenos**. Del lado de abajo quedaba cobre de 3.3 V desnudo entre 1.85 y 3 mm del centro, justo donde se apoya el separador, el inserto o la tuerca. Del lado de arriba, el cobre desnudo es GND, bajo la cabeza del tornillo. Con un inserto de latón o un separador metálico, el tornillo une las dos caras: **corto de 3.3 V a GND**.
Regla nueva en `hbox-watchdog-v6.kicad_dru`:
- En F.Cu y B.Cu no puede haber nada que no sea GND a menos de **4.0 mm del centro** de un barreno: 2.4 mm desde la orilla del agujero de 3.2 mm.
- Al rellenar zonas, el plano `/3V3` se aparta solo. Lo comprobé en los 5 barrenos: queda a 4.0 mm.
- El GND de F.Cu sigue a 1.85 mm, bajo la cabeza del tornillo, como en la V5.5.
- Capas internas: la holgura normal de barreno, porque van cubiertas.
- Además, el DRC ya marca todo lo que estorba en MH4: los 11 errores de la regla son de `/SIM_*`, D23 y D24.
- Salen también 2 errores que no aparecían antes: los pads de GND de D23 (en MH4) y de D34 (en MH8) quedan encima del barreno. Ya estaban así.
V5.6 y V5.7 no tienen este problema: su cobre de afuera es GND, y su `/3V3` va por In2, cubierto.
### 5.3 MH6
La pista `/3V3` que rodeaba el barreno por F.Cu quedaba a 3.02 mm del centro, en la orilla de la máscara abierta. Ahora baja a B.Cu con una vía en (61.6, 130.3) y llega a H4.1 por y = 130.3 y x = 69.5. Queda a **4.06 mm del centro** en lo más cercano, con 0.25 mm de holgura a la vía de GND de (70.4, 132.9). B.Cu ya es el plano `/3V3`, así que la pista nueva es parte de él. H4.1 sigue a 4.15 mm del centro; si la rondana no cabe, el plan ya dice correr H4 1 mm al este.
### 5.4 DRC con T38
| | Antes de T38 | Con T38 |
|---|---|---|
| Errores | 22 (14 MH4 · 8 MH8) | **52** (28 MH4 · 10 MH8 · 14 courtyards) |
| Sin conectar | 0 | 0 |
| Paridad | 19 PWR_FLAG | 19 PWR_FLAG |
| Avisos | 262 | 262 (iguales, incluidos los 81 de «no coincide con la biblioteca») |
Cuando quede la propuesta α, salen los 10 de MH8 y el de C153. Al liberar MH4 salen sus 28. Quedan solo los encimes de margen, que se excluyen.
## 6. T39 (22-oct): el bloque A por script
Script: `kicad/tools/t39_v6_bloque_a.py`.
- Requiere T38.
- Antes de escribir revisa que ninguna de las piezas y pistas que toca se haya movido.
- Si ya se aplicó, no hace nada.
- Guarda un respaldo `.T39bak`.
![v6 con T39: el bloque A, la fuente U25, por script](img/2026-10-22_Drogheda_v6-T39-Bloque-A_v1.0.png)
### 6.1 Qué cambió
| Qué | Antes (T38) | Con T39 |
|---|---|---|
| D34 (B560C, SMC) | (192.0, 132.5), en la esquina, con su pad de GND sobre MH8 | **(181.08, 121.75)**, girado 90°, cátodo abajo |
| L22 (SRP1265A) | (185.6, 122.5) | **(192.18, 122.5)**, sin girar |
| R53/R54 (divisor BSTFB del LTC4040) | (177.0, 125.7) y (175.4, 126.9), donde va el nodo SW | **(178.25, 109.6) y (178.25, 111.1)**, abajo de JP2 |
| Nodo SW (`/SW_PWRIN`) | 7 pistas de 1.0 mm hasta la esquina | pin 8 → D34.K → L22.1 con **1.4 mm** por y = 124.4; C152.2 baja con 0.9 mm |
| `/VEH5V` de L22.2 a R51.1 | diagonal de 1.0 mm | **2.0 mm** por arriba, bajo el cuerpo de L22 |
| Vías de GND | 2 dentro de MH8 | 4 junto al ánodo de D34 · 1 más en C149 y otra en C150 (ya tienen 2 cada uno) · 1 para R54 · se borran las 2 de MH8 |
| In1 e In2 bajo la fuente | `/VFB_BST` (24 mm) y `/MAIN5V` (15 mm) por In1 hasta R53/R54 · `/I2C_SDA` (In1), `/I2C_SCL` (In2) y la toma de 5 V de R121 (In1) bajo L22 | **sin pistas.** `/VFB_BST` y `/MAIN5V` se borran porque R53/R54 se fueron. SDA, SCL y la toma de R121 van por B.Cu, abajo de los dos planos de GND. SCL se rehízo por dentro de SDA para que no se crucen |
**Cómo se conectan R53/R54:**
- R53.1 toma `/MAIN5V` de la vía de JP2.1.
- R53.2 y R54.1 llegan a la vía de `/VFB_BST` de (181.81, 109.54), que ya iba por In1 a U6.10 y U6.18.
- R54.2 baja a una vía de GND nueva.
- Las referencias de D34, R53 y R54 en serigrafía se reacomodaron para no caer sobre pads ni sobre otras referencias.
### 6.2 Metas del bloque A
| Paso del plan | Meta (rev. 1.3) | Con T39 | Antes |
|---|---|---|---|
| 1 · cátodo de D34 al pin 8 (orilla a orilla) | ≤ 3.5 mm | **3.52 mm** | 13.0 mm |
| 1 · L22.1 al pin 8 | ≤ 9 mm | **8.79 mm** ✅ | 2.2 mm |
| 1 · cobre del nodo SW fuera de los pads | ≤ 10 mm² | **9.8 mm²** ✅ | 11.6 mm² |
| 1 · lazo por centros de pad C150 → U25 → D34 | ≤ 60 mm² | **60.8 mm²** (56.5 con C149) | 114.6 mm² |
| 1 · In1/In2 bajo el nodo SW y L22 | sin pistas | **sin pistas** ✅ (el script lo revisa) | 4 redes |
| 2 · `/VIN_PROT` de C149 y C150 al pin 2 | ≤ 2 mm | C149 0.75 mm ✅ · C150 2.31 mm | igual |
| 2 · tierra de C149, C150 y D34 en una sola isla de F.Cu | sin cuellos < 1 mm | **una sola isla** ✅; el EP de U25 se une por cuellos de < 1 mm | 3 islas |
| 3 · vías de GND | EP 6 · ánodo ≥ 4 · C149/C150 ≥ 2 | 6 · **4** · 2 y 2 ✅ | 6 · 2 (dentro de MH8) · 1 y 1 |
| 4 · toma de 5 V de R121 por pista propia, lejos del nodo SW | sí | por B.Cu ✅ | por In1, bajo L22 |
| 5 · Rig1 a ≤ 3 mm de P1.3 | ≤ 3 mm | 4.79 mm ❌ (no lo toca T39) | 4.79 mm |
| 6 · `/24V` sin montar (rama de Q10) | borrarlo | sigue: hay que decidirlo en el esquemático | igual |
**Dos medidas quedan apenas arriba de la meta.** Las dejo así:
- **El cátodo, 0.02 mm de más.** D34 se corrió 0.08 mm al este para que su courtyard no encime al de C152. Para bajar de 3.5 mm habría que regresarlo, y entonces sí encimaría. Entre la orilla de U25 y el mínimo de 0.5 mm a la orilla de la tarjeta, C152, D34 y L22 caben justos, sin margen.
- **El lazo con C150, 0.8 mm² de más.** Con C149, que es la que está pegada al pin 2, mide 56.5.
Con In1 como tierra sólida a 0.21 mm debajo, lo que cuenta es otra cosa: que la ida sea corta y que haya vías de GND en el ánodo de D34 y en C149/C150. Las dos se cumplen.
**El EP de U25 no puede unirse a esa isla con cobre de 1 mm.** Entre los pines de U25 y C152 (BOOT y SW, clase HV24) no cabe el paso. Su retorno va por sus 6 vías a In1, que ya no tiene cortes debajo de la fuente.
### 6.3 Por qué pistas y no zona
Primero hice el nodo SW y la salida de L22 como zonas de F.Cu con prioridad 5. Funcionaban, pero cualquier zona de F.Cu con prioridad mayor que la tierra cambia el relleno de **toda** la tierra de F.Cu en KiCad 10:
- el archivo crece 0.7 MB (de ≈ 40 000 a ≈ 65 000 puntos en el relleno);
- salen 2 errores de alivio térmico lejos de aquí, en J11.B12 y U26.1.
Con pistas anchas el relleno de la tierra queda como estaba (lo comprobé: sin las zonas no aparece ninguno de los dos).
**Regla para la v6:** no agregar zonas de F.Cu con prioridad sobre la tierra sin revisar el DRC de toda la tarjeta.
### 6.4 DRC con T39
| | Con T38 | Con T39 |
|---|---|---|
| Errores | 52: ≈ 29 de MH4 · 9 de MH8 · 14 encimes (3 reales) | **44: ≈ 33 de MH4 · 11 encimes de margen** |
| Sin conectar | 0 | 0 |
| Paridad | 19 PWR_FLAG | 19 PWR_FLAG |
| Avisos | 262 | 254 |
KiCad 10.0.4, `pcb drc --schematic-parity --refill-zones --severity-all --all-track-errors`.
- **Se van:**
- los 15 de MH8: 8 de holgura, 4 de barreno a barreno, D34 dentro del barreno y 2 de serigrafía;
- los 3 encimes reales: C153 y C154 con L22, y R53 con U25;
- 2 avisos de ancho de `/MAIN5V`;
- la serigrafía de L22 sobre C153.
- **Aviso nuevo, uno:** la pista de `/MAIN5V` de 0.3 mm de la vía de JP2.1 a R53.1. La regla de PWR_HI pide 1 mm, pero por ahí pasan microamperes y junto a `/VEH5V` no cabe más ancho.
- **MH4 cambia entre corridas:** en dos corridas del mismo archivo, KiCad reporta entre 29 y 34 errores. Lo que cambia es qué pares reporta, no lo que está mal. Fuera de MH4, la v6 con y sin T39 difiere solo en lo de arriba.
- **Los 11 encimes que quedan ya estaban y son de margen:**
- U19 con Q20, Q21, TP8 y C126;
- U25 con C152, R120 y C156;
- U20 con C129, D22 con C130, D27 con U28 y J12 con L21.
Se excluyen al cerrar el layout (pendiente `t-v6-excluir-margen`).
### 6.5 Cómo se probó y lo que queda a la vista
**Prueba.**
- Copia de `b74b96f` en la Mac, con su `.kicad_pro`, `.kicad_dru`, esquemático y bibliotecas. T39 en la copia, y DRC de la copia contra la v6 sin T39.
- Antes de escribir, el script revisa:
- la holgura de todo lo nuevo o movido contra el cobre de las otras redes, con las reglas de HV24;
- la regla de 4 mm de los barrenos;
- que In1 e In2 queden limpios bajo la fuente;
- que no se pierdan UUIDs.
La holgura más justa de lo nuevo es de 0.15 mm, la mínima. Es la que ya tenía el tramo de `/I2C_SCL` por In2 que se conserva, contra una vía de GND.
- **Conectividad.** Las 8 redes que toca (`/SW_PWRIN`, `/VEH5V`, `/VFB_BST`, `/MAIN5V`, `/I2C_SDA`, `/I2C_SCL`, `/BOOT_PWRIN` y `/VIN_PROT`) siguen en un solo grupo cada una.
- **Aplicación.** Se aplicó a la v6 de HBox_PCB y se rellenó con `kicad-cli`, con el proyecto al lado. El archivo es idéntico, byte por byte, a la copia probada (`97ea7e45`).
- **Regla D-22-3** de la [auditoría final del 22-oct](auditoria-final-22oct.md) (hallazgo P-1): el `.kicad_pcb` sube con el relleno fresco.
- La regla pide rellenar en el GUI. `kicad-cli` con el `.kicad_pro` al lado da el mismo relleno: lo comprobé en la V5.6 y la V5.7, cuyos Gerber así rellenados salen idénticos a los del Fabrication Toolkit.
- Abrir la v6, B y guardar no debería cambiar el cobre.
**Lo que queda a la vista:**
1. **R53/R54** quedaron a 3.4 mm de U6.10 y a 6–7 mm de U6.18. La meta del bloque B (paso 6) es ≤ 3 mm de U6.18. La toma de U6.18 sigue por la vía de In1 que ya existía, de 0.25 mm debajo de U6, y esa pista también es del bloque B.
2. **L22.2 quedó a 0.53 mm de la orilla de la tarjeta** (mínimo 0.5) y el cuerpo de L22 a 1.26 mm. **Hay que revisar la pared de la HBOX** antes del sábado.
3. **Rig1 y el `/24V` sin montar** (pasos 5 y 6 del bloque A) siguen como estaban.
4. **Michelle:** al abrir la v6, revisar el bloque A y ajustar lo que no le guste. En ese bloque el DRC ya está limpio.
## Cómo se hizo
- **Archivos:**
- HBox_PCB `9255b84` (Michelle, 21-oct 18:14) contra `00a9af4` (19-oct).
- Para T39: `b74b96f` (22-oct 09:42).
- El esquemático de la v6 no cambió desde el 28-sep (`d58a89ba…`).
- **Scripts:** primero en una copia y luego en los archivos de HBox_PCB. Los respaldos `.T25bak`, `.T28bak`, `.T38bak` y `.T39bak` no se suben.
- `kicad/tools/t25_mounting_holes_v55.py --set v6`;
- `kicad/tools/t28_v6_mecanicos.py`;
- `kicad/tools/t38_v6_courtyards_mh.py`;
- `kicad/tools/t39_v6_bloque_a.py`.
- **DRC:** KiCad 10.0.4, `pcb drc --schematic-parity --refill-zones --severity-all`, con el `.kicad_dru` del proyecto.
- **Medidas:**
- El script de la auditoría del 16-oct sobre el cobre rellenado: distancias, series de cobre, vías por red y por EP, y lazo por centros de pad.
- La prueba Kelvin de RS1, con el área del pad recortada.
- Para T38: barrido de pads fuera de courtyard en todas las huellas (solo esas 11 fallaban), hueco físico de cada encime y distancia de cada zona rellenada al centro de cada barreno.
- **Propuesta α:** colocación probada en una copia: courtyards, pads a otras redes, orilla de la tarjeta y la regla de 4 mm. El cobre del nodo SW y de `/VEH5V` de la figura es un dibujo de la idea; el ruteo lo hace Michelle.