147 lines
12 KiB
TeX
147 lines
12 KiB
TeX
% ================================================================ PAQUETE
|
||
\section{A $\cdot$ El paquete de fabricación}\label{sec:paquete}
|
||
|
||
\subsection{¿Los Gerber son el cobre que auditamos?}
|
||
|
||
Sí. Cada capa exportada por el Fabrication Toolkit se comparó contra una regeneración hecha hoy con
|
||
\texttt{kicad-cli} 10.0.4 sobre copias de los mismos archivos. Primero se compararon los comandos Gerber
|
||
quitando solo los comentarios y atributos X2 (\texttt{\%TF}/\texttt{\%TA}/\texttt{\%TO}, que el Toolkit escribe
|
||
como \texttt{G04} y \texttt{kicad-cli} como extendidos); después, por tipo de primitiva.
|
||
|
||
\hwtab{\begin{tabular}{@{}L{2.83cm}L{1.89cm}L{1.89cm}L{8.87cm}@{}}
|
||
\toprule
|
||
\cab{\cw{Capa} & \cw{V5.6} & \cw{V5.7} & \cw{Resultado}}\\
|
||
\midrule
|
||
F.Mask $\cdot$ B.Mask $\cdot$ F.Paste $\cdot$ B.Paste $\cdot$ F.Silk $\cdot$ B.Silk $\cdot$ Edge.Cuts & idénticas & idénticas & Comando por comando (1319 / 261 / 976 / 5 / 24 702 / 339 / 15 comandos en V5.6).\\
|
||
\rowcolor{HelgenMist} PTH.drl $\cdot$ NPTH.drl & idénticos & idénticos & NPTH: 8 barrenos iguales. PTH: iguales una vez normalizada la notación de ranuras (el Toolkit escribe \texttt{G00/M15/G01/M16}, \texttt{kicad-cli} \texttt{G85}; ambas válidas para JLC).\\
|
||
F.Cu $\cdot$ In1.Cu $\cdot$ In2.Cu $\cdot$ B.Cu — pads (flashes) y pistas (trazos) & idénticos & idénticos & 1236 / 547 / 547 / 547 flashes y 1564 / 130 / 193 / 377 trazos en V5.6; mismos conjuntos exactos en ambos.\\
|
||
\rowcolor{HelgenMist} F.Cu $\cdot$ In1.Cu $\cdot$ In2.Cu $\cdot$ B.Cu — rellenos de zona (regiones) & 0.000 mm$^2$ XOR & 0.000 mm$^2$ XOR & Contra un relleno fresco hecho con \texttt{pcbnew} \emph{con el proyecto cargado} (reglas \texttt{.kicad\_dru} y netclasses). A 20 $\mu$m por pixel no hay un solo pixel distinto.\\
|
||
\bottomrule
|
||
\end{tabular}}
|
||
|
||
\begin{helgennotice}[Hallazgo P-1 (11:30) — el repo guardaba el relleno viejo; el Gerber traía el fresco. Cerrado a las 13:00]
|
||
Las regiones del Gerber \textbf{no} son las que están guardadas en los \texttt{.kicad\_pcb} del repo: contra el
|
||
relleno guardado difieren 6.4 mm$^2$ (V5.6 F.Cu), 7.4 mm$^2$ (V5.7 F.Cu) y 9.5 mm$^2$ (V5.7 B.Cu), justo donde la
|
||
pasada 6 (T34--T37) agregó vías y movió el hilo de sensado. Los scripts T no rellenan zonas; el Toolkit sí
|
||
(\texttt{AUTO FILL: true}). Por eso el paquete está bien, pero \textbf{el archivo en disco no}: una exportación
|
||
sin rellenar (o un \texttt{kicad-cli pcb export gerbers}, que no rellena) mandaría cobre de GND encima de la vía
|
||
de \net{/SYS5V} en (138.7, 117.45) de T35 y de las vías de entrada de RS1 de T34 (figura \ref{fig:relleno}).
|
||
Esto ya lo vimos en forma de «sin conectar» falsos el 21-oct; hoy se vio en forma de corto.
|
||
\textbf{Arreglo (Leo, 5 min):} abrir cada tarjeta, \textsf{B}, guardar, \texttt{git commit}. Regla nueva (D-22-3):
|
||
\emph{los scripts T que agregan o quitan cobre terminan con un rellenado del GUI antes del commit}.
|
||
\textbf{Hecho a las 13:00} (ver la re-verificación al final de esta sección); falta el commit.
|
||
\end{helgennotice}
|
||
|
||
\begin{figure}[H]\centering
|
||
\includegraphics[width=\linewidth]{fig/fig-relleno-viejo.png}
|
||
\caption{Relleno guardado en el repo (pasada 5) contra el relleno del Gerber (fresco). En rojo, el cobre que
|
||
tendría el archivo en disco y el Gerber no: pasa encima de la vía de T35 en V5.6 y de la vía de GND de C129 de T37
|
||
en V5.7.}\label{fig:relleno}
|
||
\end{figure}
|
||
|
||
\subsection{Capas, taladros y mínimos contra la capacidad de JLC (4 capas)}
|
||
|
||
\hwtab{\begin{tabular}{@{}L{4.20cm}L{3.06cm}L{3.06cm}L{5.16cm}@{}}
|
||
\toprule
|
||
\cab{\cw{Parámetro} & \cw{V5.6} & \cw{V5.7} & \cw{Límite JLC / comentario}}\\
|
||
\midrule
|
||
Contorno & 140.0 × 100.0 mm & 140.0 × 100.0 mm & Igual que V5.5; cabe en el HBOX.\\
|
||
\rowcolor{HelgenMist} Capas de cobre & F $\cdot$ In1 $\cdot$ In2 $\cdot$ B & igual & Stackup JLC04161H-7628 escrito en el archivo (T30): 0.035 / 0.0175 / 0.0175 / 0.035 mm, núcleo 1.065 mm, prepreg 7628.\\
|
||
Pista mínima & 0.20 mm (3 tramos), 0.25 mm (158) & 0.20 (2), 0.25 (167) & JLC 4 capas: 0.09 mm. Holgura mínima por regla 0.15 mm (DRC limpio).\\
|
||
\rowcolor{HelgenMist} Vías & 0.8/0.3 (268) $\cdot$ 0.6/0.3 (118) $\cdot$ 0.8/0.4 (8) $\cdot$ 0.5/0.3 (1) & 268 $\cdot$ 125 $\cdot$ 8 $\cdot$ 1 & Barreno mínimo 0.30 mm (JLC $\ge$ 0.15; las vías de 0.1 mm de \net{/NTC} ya no existen, T30). Anillo mínimo 0.10 mm ($\ge$ 0.13 recomendado por JLC: la 0.5/0.3 es una).\\
|
||
NPTH & 3 × 2.75 mm (MH7/9/10 ArduSimple) $\cdot$ 3 × 3.20 (MH4/5/6 placa base; MH4 en (185.2, 90.3)) $\cdot$ 2 × 3.25 (postes del RJ45 J10) & iguales & Los 6 barrenos de la V5.5 de producción, menos MH11 (abrazadera, decisión del 16-oct).\\
|
||
\rowcolor{HelgenMist} Ranuras PTH & 13 (conectores) & 13 & Expresadas como ruta; JLC las acepta.\\
|
||
Serigrafía & 2 avisos: contorno de MOD1 recortado por el borde; 1 sobre la máscara de MH6 & iguales & Cosméticos.\\
|
||
\rowcolor{HelgenMist} Cajetín & «EINARBoard HBOX V5.6», rev 5.6, 2026-10-19 & «… V5.7», rev 5.7 & Correctos (T30).\\
|
||
Acabado & \texttt{copper\_finish None} en el archivo & igual & Se elige en el pedido: \textbf{ENIG} (recomendado para QFN de 0.5 mm; HASL con plomo vale si el presupuesto manda).\\
|
||
\bottomrule
|
||
\end{tabular}}
|
||
|
||
\subsection{Pasta y pads térmicos — la condición 1 del pedido}
|
||
|
||
El DFM del 8 de octubre (regla permanente: \texttt{drogheda-dfm-ltc4040-qfn}) nació de los puentes y bolas de
|
||
soldadura que Leo vio en \refdes{U6} en las V5.5 y V4. La regla pedía pasta $\le$ 50 \% en el pad térmico y
|
||
\emph{vías fuera de las ventanas de pasta o pedido con Epoxy Filled \& Capped}. Medido sobre el Gerber de hoy:
|
||
|
||
\hwtab{\begin{tabular}{@{}L{2.10cm}L{2.86cm}L{2.29cm}L{2.48cm}L{5.34cm}@{}}
|
||
\toprule
|
||
\cab{\cw{Pieza} & \cw{Pad térmico} & \cw{Pasta} & \cw{Vías dentro} & \cw{Consecuencia}}\\
|
||
\midrule
|
||
\refdes{U6} LTC4040 QFN-24 0.5 mm & 2.65 × 3.65 mm & 6 ventanas 0.95 × 0.85 = \textbf{50 \%} & \textbf{3} (0.6/0.3), las tres dentro de ventanas & Sin tapar, la pasta se mete en la vía: la pieza se inclina y puentea a 0.5 mm. \textbf{Pedir vías Epoxy Filled \& Capped + rayos X en U6.}\\
|
||
\rowcolor{HelgenMist} \refdes{U7} AP64350 ESOP-8 & 3.2 × 2.5 mm & \textbf{100 \%} (huella easyeda2kicad) & 4 (0.8/0.3) & Paso 1.27 mm: tolera, y la misma opción del pedido lo cubre. Siguiente revisión: pasta al 60 \%.\\
|
||
\refdes{U25} TPS54360B HSOP-8 (V5.7) & 2.5 × 3.2 mm & \textbf{100 \%} & 6 (0.8/0.3) & Igual que U7.\\
|
||
\rowcolor{HelgenMist} \refdes{U26} SC7A20 LGA-12 & — & 100 \% (pads 0.5 × 0.28) & 0 & Normal.\\
|
||
\bottomrule
|
||
\end{tabular}}
|
||
|
||
\begin{figure}[H]\centering
|
||
\includegraphics[width=0.92\linewidth]{fig/fig-u6-pasta.png}
|
||
\caption{\refdes{U6}: pad térmico, ventanas de pasta al 50 \% y las tres vías térmicas dentro de las ventanas,
|
||
en V5.6 y V5.7. Es la razón de la condición 1 del pedido.}\label{fig:u6pasta}
|
||
\end{figure}
|
||
|
||
\subsection{BOM y lista de posiciones}
|
||
|
||
\begin{itemize}
|
||
\item \textbf{Cuadre con el PCB.} V5.6: 247 huellas en el PCB; 226 filas en la CPL y 226 referencias en el BOM;
|
||
las 21 restantes son exactamente las que deben faltar: \refdes{JP1--JP6}, \refdes{TP1--TP7}, \refdes{MOD1},
|
||
\refdes{MH4/5/6/7/9/10} (fuera de BOM y posiciones, T30) y \refdes{R109} (DNP). V5.7: 252 / 229 / 229, con
|
||
\refdes{R124} y \refdes{R125} (DNP, divisor de EN de U25) además. Ninguna fila sin código LCSC; ningún código
|
||
distinto entre la propiedad de la huella y el BOM.
|
||
\item \textbf{Rotaciones.} El Toolkit corrigió, como en la V5.5, las huellas de biblioteca KiCad (U6 QFN 0$\to$90°,
|
||
Q7/U14 SOIC 0$\to$270°, U16 LQFP 180$\to$90°, U17 SOT-223 0$\to$180°, SOT-23 0$\to$180°, CP\_Elec 180$\to$0°, …). Las
|
||
huellas \texttt{Drogheda-v6} (easyeda2kicad: \refdes{U7}, \refdes{U25}, \refdes{U26}, \refdes{L22}) y
|
||
\refdes{D34} (\texttt{D\_SMC}, nuevo) \emph{no} están en su tabla y salen con la rotación de KiCad. Para huellas
|
||
convertidas de EasyEDA eso es lo correcto (conservan la orientación de JLC), pero \textbf{nunca se ha fabricado
|
||
con ellas}: condición 2 del pedido, confirmar en el visor. Los diodos SMA/SMB/SOD y las SOT ya pasaron en la
|
||
V5.5 con la misma convención.
|
||
\item \textbf{Códigos nuevos verificados en JLC:} \refdes{D34} C85100 = B560C-13-F (5 A, 60 V, SMC);
|
||
\refdes{F2} C99550 = Littelfuse 0452003.MRL (3 A, 125 V, NANO2 lento); \refdes{L22} C840531 = Bourns
|
||
SRP1265A-100M (10 $\mu$H, 15.5 A sat., 16.5 m$\Omega$); \refdes{Y4} C32346 = Epson FC-135 (CL 12.5 pF, 70 k$\Omega$);
|
||
\refdes{U17} C15578 = TLV1117LV33DCYR (Iq $\approx$ 100 $\mu$A, no los 5 mA de un AMS1117); \refdes{U25} C524806;
|
||
\refdes{U7} C2071691; \refdes{U26} C5126709; \refdes{C129} C19702; \refdes{C130} C1525. Todos «Extended» salvo
|
||
los básicos conocidos; existencias se confirman al cargar el BOM.
|
||
\item \textbf{Easy wins de BOM} (sin tocar cobre): \refdes{D10} SMBJ33A C224019 $\to$ \textbf{SMBJ33CA}
|
||
(bidireccional, misma huella D\_SMB; p.\,ej.\ C8838 Littelfuse o C2688178 — el que tenga existencia);
|
||
10 nF 0603 con dos códigos (\refdes{C100/C125/CBST1} C1589 básico y \refdes{CCOMP2} C57112 extendido): unificar en
|
||
C1589; \refdes{C22} dice «22uF/50V» pero C138687 es 10 $\mu$F/50 V (es la pieza que ya se usó en V5.5: corregir la
|
||
etiqueta, no la pieza); para las 108 / 322: \refdes{U14} SP3485EN $\to$ THVD1410DR (C2671345, mismo pinout SOIC-8,
|
||
receptor a prueba de bus abierto y ±16 kV) y \refdes{U15} MAX3232 $\to$ TRS3232E (mismo SOIC-16), como en la v6.
|
||
\end{itemize}
|
||
|
||
\subsection{Lo mecánico que cambió sin cambiar el contorno}
|
||
|
||
Los conectores que atraviesan la pared del HBOX no se movieron (\refdes{J9}, \refdes{J11} USB-C; \refdes{J10}
|
||
RJ45; \refdes{P15}/\refdes{P16}; \refdes{H4}; \refdes{P1}). Los JST internos del borde superior sí: respecto a la
|
||
V5.5, \refdes{P4} (batería) 25 mm en V5.6 y 38 mm en V5.7; \refdes{P6} (ventilador) 18 / 29 mm; \refdes{P8} (LED
|
||
del panel) 17 / 29 mm; \refdes{P11} (cutoff) 12 / 21 mm; y en V5.7 \refdes{P14} (RGB) pasó del borde derecho al
|
||
superior (68 mm) y los LED del gauge \refdes{DB1--DB4} al borde derecho (14--21 mm). Nada de esto rompe la
|
||
tarjeta; lo que hay que revisar con la primera unidad son los \textbf{largos de los arneses} y, si el gauge se ve
|
||
por la tapa, la \textbf{tapa de la V5.7} (hallazgo P-7).
|
||
|
||
\subsection{Re-verificación de las 13:30 sobre los archivos de las 13:00}\label{sec:reverif}
|
||
|
||
Leo rellenó las zonas, guardó los dos tableros y regeneró los paquetes a las 13:00 (V5.6 \texttt{338ee14b},
|
||
V5.7 \texttt{85baca51}; \texttt{HBOX\_v5\_Rev6\_PROD.zip} \texttt{01e1a39d}, \texttt{Rev7} \texttt{7d2fe248};
|
||
BOM y CPL con el mismo SHA-256 que en la mañana). Se repitió el método A sobre copias nuevas
|
||
(\texttt{\_to\_delete/audit-20261022b/}, script \texttt{verify.sh} + \texttt{gcmp\_b.py}):
|
||
|
||
\hwtab{\begin{tabular}{@{}L{7.4cm}L{2.1cm}L{2.1cm}L{4.1cm}@{}}
|
||
\toprule
|
||
\cab{\cw{Comparación (F.Cu, In1, In2, B.Cu a 20 $\mu$m)} & \cw{V5.6} & \cw{V5.7} & \cw{Lectura}}\\
|
||
\midrule
|
||
A $\cdot$ relleno guardado en el \texttt{.kicad\_pcb} vs relleno fresco con el proyecto cargado & 0.000 mm$^2$ & 0.000 mm$^2$ & \textbf{P-1 cerrado}: el archivo en disco ya es lo que se fabrica\\
|
||
\rowcolor{HelgenMist} B $\cdot$ paquete de las 13:00 vs archivo guardado (sin rellenar) & idéntico & idéntico & El Toolkit y el archivo coinciden\\
|
||
C $\cdot$ cobre de las 13:00 vs cobre auditado en la mañana (pads, pistas, rellenos) & idéntico & idéntico & Nada más cambió: 2264 / 396 y 2253 / 403 pistas / vías\\
|
||
\rowcolor{HelgenMist} D $\cdot$ paquete 13:00 vs paquete de la mañana: máscaras, pasta, serigrafía, contorno, taladros & idéntico & idéntico & Mismo paquete, con el relleno ya en el repo\\
|
||
DRC con \texttt{.kicad\_dru}, relleno y paridad & 3 MOD1 $\cdot$ 0 $\cdot$ 13 PF & 3 MOD1 $\cdot$ 0 $\cdot$ 13 PF & Igual que en la mañana\\
|
||
\rowcolor{HelgenMist} BOM y CPL & SHA iguales & SHA iguales & \refdes{D10} sigue como SMBJ33A: la condición 3 sigue viva\\
|
||
\bottomrule
|
||
\end{tabular}}
|
||
|
||
Lo único distinto dentro de los \texttt{.kicad\_pcb}, fuera de los rellenos, es la caché de glifos
|
||
(\texttt{render\_cache}) de los textos de serigrafía «EINARBoard 5.x» y «www.helgen.tech» en la fuente MADE Evolve
|
||
Sans: cosmético, porque la serigrafía exportada es idéntica región por región. \textbf{El veredicto de la mañana
|
||
no cambia.} Si la sesión paralela de \emph{quick wins} toca el BOM o el cobre, se vuelve a correr
|
||
\texttt{verify.sh} + \texttt{gcmp\_b.py} (5 min) antes de pagar.
|