Drogheda/03-Architecture-Hardware/Auditoria-Final-V56-V57/presentacion.tex

408 lines
21 KiB
TeX
Raw Permalink 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.

% Helgen Technologies — Auditoría final de producción V5.6 / V5.7 (Beamer / Metropolis)
% Compilar: latexmk -xelatex presentacion.tex
\documentclass[10pt,aspectratio=169]{beamer}
\usetheme[progressbar=frametitle, numbering=fraction, block=fill]{metropolis}
\definecolor{HelgenIndigo}{HTML}{2C3C5B}
\definecolor{HelgenCyan}{HTML}{51F3DA}
\definecolor{HelgenTeal}{HTML}{17A08C}
\definecolor{HelgenMist}{HTML}{EFF1F5}
\setbeamercolor{normal text}{fg=HelgenIndigo, bg=white}
\setbeamercolor{alerted text}{fg=HelgenTeal}
\setbeamercolor{frametitle}{bg=HelgenIndigo, fg=white}
\setbeamercolor{progress bar}{fg=HelgenCyan, bg=HelgenMist}
\setbeamercolor{title separator}{fg=HelgenCyan}
\setbeamercolor{block title}{bg=HelgenMist, fg=HelgenIndigo}
\setbeamertemplate{itemize item}{\textcolor{HelgenTeal}{\rule[0.18ex]{0.45em}{0.45em}}}
\setbeamertemplate{itemize subitem}{\textcolor{HelgenTeal}{\rule[0.18ex]{0.3em}{0.3em}}}
\setbeamertemplate{enumerate items}[default]
\usepackage{iftex}
\ifXeTeX
\usepackage{fontspec}
\IfFontExistsTF{League Spartan}{%
\newfontfamily\helgentitle{League Spartan}[BoldFont={* Bold}]
\setbeamerfont{title}{family=\helgentitle, series=\bfseries}
\setbeamerfont{frametitle}{family=\helgentitle, series=\bfseries}
\setbeamerfont{section title}{family=\helgentitle, series=\bfseries}
\setbeamerfont{standout}{family=\helgentitle, series=\bfseries}
}{}
\IfFontExistsTF{MADE Evolve Sans}{\setsansfont{MADE Evolve Sans}}{}
\else
\usepackage[T1]{fontenc}
\fi
\usepackage{booktabs}
\usepackage{colortbl}
\usepackage{tikz}
\usetikzlibrary{arrows.meta, positioning, shapes.misc, automata}
\usepackage{graphicx}
\usepackage{amssymb}
\newcommand{\refdes}[1]{\texttt{#1}}
\newcommand{\sevA}{\textcolor{red!75!black}{$\blacksquare$}}
\newcommand{\sevB}{\textcolor{orange!90!black}{$\blacksquare$}}
\newcommand{\sevC}{\textcolor{yellow!65!orange}{$\blacksquare$}}
\newcommand{\sevD}{\textcolor{green!60!black}{$\blacksquare$}}
\newcommand{\ok}{\textcolor{HelgenTeal}{$\checkmark$}}
\setbeamertemplate{frame footer}{%
\scriptsize\color{gray}\insertshortauthor\ $\cdot$ \insertshorttitle\ $\cdot$ Confidencial — Helgen Servicios Especializados}
\title{Auditoría final de producción}
\subtitle{EinarBoard V5.6 $\cdot$ V5.7 — ¿se piden hoy?}
\author[Helgen CTO/CSO]{Project Drogheda — Helgen Technologies}
\date{22 de octubre de 2026, 13:30 — re-verificada sobre los archivos de las 13:00}
\begin{document}
\maketitle
\begin{frame}{Veredicto}
\begin{columns}[T]
\column{0.58\textwidth}
\begin{alertblock}{GO al piloto: 5 V5.6 + 5 V5.7, hoy}
Gerber = cobre de la pasada 6 con relleno fresco, \textbf{re-verificado a las 13:00 sobre los archivos nuevos} $\cdot$ DRC 0 / sin conectar 0 / paridad OK $\cdot$ RS1 Kelvin $\cdot$ BOM 100 \% LCSC $\cdot$ CPL cuadra.
\end{alertblock}
\begin{block}{Tres condiciones del pedido (sin tocar cobre)}
\begin{enumerate}
\item Vías \emph{Epoxy Filled \& Capped} + rayos X en \refdes{U6}
\item Rotación y polaridad en el visor de JLC: U6, U7, U25, U26, L22, Q7, U16, D34, D10, electrolíticos
\item BOM: \refdes{D10} SMBJ33A $\to$ SMBJ33CA
\end{enumerate}
\end{block}
\column{0.40\textwidth}
\begin{block}{NO-GO para 108 / 322}
Hasta que el piloto pase el banco con \textbf{0.7.0}: hoy ningún firmware enciende el módem de estas tarjetas.
\end{block}
\begin{block}{Camino crítico}
Ya no es el PCB, es 0.7.0: \texttt{board\_v56.h} entregado, 0.7.0-pre en 1 día. \ok\ P-1 cerrado 13:00.
\end{block}
\end{columns}
\end{frame}
\begin{frame}{El mandato de Leo, punto por punto}
\small
\begin{tabular}{@{}p{4.5cm}p{2.0cm}p{5.9cm}@{}}
\toprule
\textbf{Pidió} & \textbf{Estado} & \textbf{Evidencia}\\
\midrule
Que todos los puertos funcionen & \alert{HW sí} / FW no & Netlist contra hojas de datos; falta SC16IS752 y Ethernet de campo\\
V5.7 sin la Mean Well & \alert{Sí} & U25 5.32 V / 600 kHz, 9--32 V; banco a 9/24/32 V\\
Ethernet, RS-485, RS-232 usables & \alert{Usables} & RS-485 toma el bus $\sim$1 s al arrancar; H4 y P16 nunca juntos\\
Módem sin apagón & \alert{Resuelto en HW} & AP64350 desde 3.8 V, boost 2.5 A vs 1.8 A pico, PFI 4.40 V\\
10 min dormida, 2 reportes, dormir & \alert{HW sí} / FW no & STOP + RTC (LSE), INT1 del SC7A20, MODEM\_EN; piso $\approx$ 75 mW\\
Gerber/BOM/CPL generados & \alert{Verificados} & 0.000 mm$^2$ de diferencia contra relleno fresco\\
Empezar el firmware & \alert{Empezado} & \texttt{board\_v56.h} (64 pines) + especificación 0.7.0\\
Riesgos, easy wins, matriz & \alert{Hecho} & 30 hallazgos, 16 riesgos, 6 easy wins\\
\bottomrule
\end{tabular}
\end{frame}
\begin{frame}{Método: A--G, todo sobre copias, nada se movió}
\begin{columns}[T]
\column{0.5\textwidth}
\begin{itemize}
\item \textbf{A} Paquete: regenerar con \texttt{kicad-cli} y comparar primitiva por primitiva; relleno fresco con el proyecto cargado
\item \textbf{B} Eléctrica: netlist de cada esquemático contra hojas de datos
\item \textbf{C} Batería: presupuesto, piso dormido, secuencia
\item \textbf{D} Cobre: DRC + paridad, Kelvin, vías de corte, capas internas
\end{itemize}
\column{0.5\textwidth}
\begin{itemize}
\item \textbf{E} Firmware: 0.6.3 vs hardware nuevo; \texttt{board\_v56.h}; algoritmos
\item \textbf{F} Riesgo: matriz 5 × 5 antes/después
\item \textbf{G} Entrega y cierre en el centro de mando
\end{itemize}
\begin{block}{Insumos (SHA-256)}
Mañana: \texttt{f07ad5b5} / \texttt{9373ebe8}. \textbf{13:00:} \texttt{338ee14b} / \texttt{85baca51}, paquetes nuevos: mismo cobre, relleno ya en el repo. KiCad 10.0.4.
\end{block}
\end{columns}
\end{frame}
\begin{frame}{V5.6 — lo que se fabrica}
\centering\includegraphics[height=0.82\textheight]{fig/fig-v56-top.png}
\end{frame}
\begin{frame}{V5.7 — lo que se fabrica}
\centering\includegraphics[height=0.82\textheight]{fig/fig-v57-top.png}
\end{frame}
\begin{frame}{A $\cdot$ ¿Los Gerber son el cobre auditado? Sí — y el hallazgo de proceso ya quedó cerrado}
\begin{columns}[T]
\column{0.46\textwidth}
\begin{itemize}\small
\item Máscaras, pasta, serigrafía, contorno, taladros: \textbf{idénticos}
\item Cobre: pads y pistas \textbf{idénticos}; rellenos \textbf{0.000 mm$^2$} contra un relleno fresco con reglas del proyecto
\item \alert{P-1} (mañana): el repo traía el relleno de la pasada 5; el Toolkit rellenó al exportar, \texttt{kicad-cli} no lo haría
\item \ok\ \textbf{13:00:} rellenado, guardado y paquetes regenerados $\to$ 0.000 mm$^2$ en las dos. Falta el commit. Regla D-22-3: B antes de cada commit
\end{itemize}
\column{0.54\textwidth}
\includegraphics[width=\linewidth]{fig/fig-relleno-viejo.png}
\end{columns}
\end{frame}
\begin{frame}{A $\cdot$ Re-verificación de las 13:00: mismo cobre, relleno ya en el repo}
\begin{columns}[T]
\column{0.62\textwidth}
\footnotesize
\begin{tabular}{@{}p{4.9cm}p{1.7cm}p{1.7cm}@{}}
\toprule
\textbf{Comparación (4 capas de cobre, 20 $\mu$m)} & \textbf{V5.6} & \textbf{V5.7}\\
\midrule
A $\cdot$ relleno guardado vs fresco con el proyecto (P-1) & 0.000 mm$^2$ & 0.000 mm$^2$\\
B $\cdot$ paquete 13:00 vs archivo guardado & idéntico & idéntico\\
C $\cdot$ cobre 13:00 vs cobre auditado en la mañana & idéntico & idéntico\\
D $\cdot$ paquete 13:00 vs paquete de la mañana (11 capas + taladros) & idéntico & idéntico\\
DRC (\texttt{.kicad\_dru}, relleno, paridad) & 3 MOD1 $\cdot$ 0 $\cdot$ PF & 3 MOD1 $\cdot$ 0 $\cdot$ PF\\
BOM y CPL (SHA-256) & iguales & iguales\\
\bottomrule
\end{tabular}
\par\medskip
Pistas / vías: 2264 / 396 (V5.6) y 2253 / 403 (V5.7), sin cambios. Lo único distinto en los archivos es la caché de glifos del texto «EINARBoard 5.x»: cosmético, la serigrafía exportada es idéntica.
\column{0.38\textwidth}
\begin{block}{Qué quiere decir}
El veredicto de la mañana sigue tal cual. P-1 pasa a cerrado. La condición 3 sigue viva: el BOM del paquete aún dice \refdes{D10} = SMBJ33A.
\end{block}
\begin{block}{Para la próxima vez}
\texttt{verify.sh} + \texttt{gcmp\_b.py}: 5 min después de cualquier cambio, antes de pagar. Quick wins en curso en otra sesión: re-correr al terminar.
\end{block}
\end{columns}
\end{frame}
\begin{frame}{A $\cdot$ La condición 1: U6 y la pasta}
\begin{columns}[T]
\column{0.46\textwidth}
\begin{itemize}
\item \refdes{U6} LTC4040, QFN-24 a 0.5 mm: el defecto más visto en V5.5/V4 (puentes, bolas)
\item Pasta al 50 \% (regla del 8-oct) $\cdot$ pero las \textbf{3 vías térmicas caen dentro de las ventanas}
\item \refdes{U7} y \refdes{U25}: pasta al 100 \% con 4 / 6 vías en el pad
\item \textbf{Pedido:} Via covering = Epoxy Filled \& Capped $\cdot$ rayos X en U6 $\cdot$ ENIG $\cdot$ lupa 10× antes de energizar
\end{itemize}
\column{0.54\textwidth}
\includegraphics[width=\linewidth]{fig/fig-u6-pasta.png}
\end{columns}
\end{frame}
\begin{frame}{A $\cdot$ Condiciones 2 y 3: rotaciones y D10}
\begin{columns}[T]
\column{0.5\textwidth}
\begin{block}{Rotaciones (P-3)}
El Toolkit corrige huellas KiCad (QFN, SOIC, LQFP, SOT, electrolíticos) como en V5.5. Las easyeda2kicad (\refdes{U7}, \refdes{U25}, \refdes{U26}, \refdes{L22}) y \refdes{D34} salen sin corrección: \textbf{nunca fabricadas}. Confirmar pin 1 / cátodo en el visor.
\end{block}
\column{0.5\textwidth}
\begin{block}{D10 SMBJ33A $\to$ SMBJ33CA (P-4)}
Arnés al revés: Q10 bloquea, pero el TVS unidireccional conduce y \textbf{abre F2} (SMD, no se cambia en campo). Bidireccional, misma huella, una línea de BOM (C8838 / C2688178).
\end{block}
\begin{block}{Otros easy wins de BOM}
10 nF en un solo código (C1589) $\cdot$ etiqueta de C22 (es 10 $\mu$F/50 V) $\cdot$ THVD1410 / TRS3232E en la pre-orden de las 108 / 322
\end{block}
\end{columns}
\end{frame}
\begin{frame}{B $\cdot$ Cargador, respaldo y riel del módem: verificados contra hoja de datos}
\small
\begin{tabular}{@{}p{3.2cm}p{3.2cm}p{6.1cm}@{}}
\toprule
\textbf{Función} & \textbf{Valor} & \textbf{Piezas}\\
\midrule
PFI (a batería) & 4.40 V cae / 4.51 sube & R51 270k / R52 100k, ref. 1.19 V\\
VSYS en respaldo & 4.79 V & R53 499k / R54 100k, ref. 0.8 V\\
Límite de entrada & 2.5 A & RS1 10 m$\Omega$ \textbf{Kelvin} (VIN y CLN comprobados)\\
Carga / flotación & 1.40 A / 3.50 V LFP & R50 1.43k; JP2 2-3, F1 = 0, F0 = 1\\
Ventana NTC & +10 … +60 °C & R55 5.6k desde VIN (ratiométrico), B3380\\
Riel del módem & 3.33 V, 500 kHz, desde 3.8 V & AP64350, L7 4.7 $\mu$H, C43 220 $\mu$F, EN = PC3 (off por defecto)\\
Respaldo disponible & 2.5 A = 12 W & contra 8.7 W de pico (módem 2 A a 3.3 V)\\
\bottomrule
\end{tabular}
\begin{alertblock}{Por qué ya no hay apagón}
V5.5: MP1584 pedía 4.5 V sobre un riel de 4.6 V. V5.6/V5.7: AP64350 regula desde 3.8 V con 1 V de margen. Lo que queda es secuencia (firmware): etapa $\to$ NMEA $\to$ módem.
\end{alertblock}
\end{frame}
\begin{frame}{B $\cdot$ V5.7: fuente de 9 a 32 V}
\begin{columns}[T]
\column{0.5\textwidth}
\begin{itemize}
\item P1 $\to$ F2 3 A lento $\to$ D10 + Q10 (polaridad) $\to$ U25 TPS54360B
\item 5.32 V (57.6k / 10.2k), 600 kHz (162k), comp. 13k / 6.8 nF / 39 pF, EN flotante
\item L22 10 $\mu$H (15.5 A sat.), D34 B560C ($\approx$ 1.2 W a 24 V / 2.8 A)
\item Rango continuo \textbf{9--32 V}; a 9 V entran 1.9 A
\item Lazo de entrada 56 mm$^2$ sobre plano sólido (D-21-2): \textbf{se mide el timbre}
\item Vía única de 24 V (182.4, 68.1): 0.7 A a 24 V; cámara térmica a 9 V
\end{itemize}
\column{0.5\textwidth}
\includegraphics[width=\linewidth]{fig/fig-v57-fuente.png}
\end{columns}
\end{frame}
\begin{frame}{B $\cdot$ Puertos: usables, con dos reglas y un pendiente de firmware}
\small
\begin{tabular}{@{}p{1.9cm}p{4.7cm}p{5.8cm}@{}}
\toprule
\textbf{Puerto} & \textbf{Hardware} & \textbf{Regla / hallazgo}\\
\midrule
Ethernet J10 & W5500 SPI2, RST con pull-down, PMODE auto & J10.8 al aire y LED ACT invertido (cosmético). En batería: PHY power-down (13 mA) — no hay enable del riel (E-3)\\
RS-485 P15 & SP3485, DE = $\overline{\mathrm{RE}}$ = $\overline{\mathrm{RTSA}}$ de U10 & \textbf{Transmisor encendido desde el reset hasta que 0.7.0 escribe EFCR}: punto a punto o tolerar $\sim$1 s. Sin TVS ni polarización: THVD1410 para 108/322 (E-4)\\
RS-232 P16 & MAX3232 a 3.3 V, canal 2 a tierra & H4 (TTL) y P16 comparten RXB: nunca juntos (E-5)\\
USB J11 / J9 & DFU del MCU / paso al módem & Como V5.5\\
I$^2$C & SHT40, TMP102 ×2 (cargador y módem), SC16IS752, PCF8574, SC7A20 (WHO\_AM\_I 0x11, INT1 PB9) & Un solo bus, 6 esclavos\\
Ignición PA5 & ×0.1154: 12 V $\to$ 1.38 V & \textbf{ADC}, no digitalRead (E-7)\\
\bottomrule
\end{tabular}
\end{frame}
\begin{frame}{C $\cdot$ Batería: presupuesto y piso dormido}
\begin{columns}[T]
\column{0.48\textwidth}
\begin{block}{Ventana encendida}
Etapa 0.7 W $\cdot$ módem 1.5 W (pico 7.3) $\cdot$ MCU 0.5 W $\cdot$ W5500 PD 0.05 W $\cdot$ K1 0.15 W $\Rightarrow$ \textbf{2.9 W promedio, 8.7 W pico} (1.8 A de 2.5 A)
\end{block}
\begin{block}{Piso dormido (estimado)}
W5500 en PD 50 mW $\cdot$ MAX3232 + SP3485 4 mW $\cdot$ LED D18 4 mW $\cdot$ MCU STOP 1.5 mW $\cdot$ resto 2 mW $\Rightarrow$ \textbf{$\approx$ 75 mW}. Sin PD del W5500: 450 mW.
\end{block}
\begin{block}{Qué manda}
La ventana y el piso, no el periodo. 45 s cada 10 min: $\approx$ 5 días; cada 20 min: $\approx$ 8.5 días.
\end{block}
\column{0.52\textwidth}
\includegraphics[width=\linewidth]{fig/fig-autonomia.png}
\end{columns}
\end{frame}
\begin{frame}{C $\cdot$ El ciclo de 10 minutos (0.7.0)}
\centering
\begin{tikzpicture}[node distance=4mm and 3mm, font=\scriptsize,
paso/.style={draw=HelgenIndigo, fill=HelgenMist, rounded corners=2pt, text width=25mm, minimum height=10mm, align=center, inner sep=2pt},
acento/.style={draw=HelgenIndigo, fill=HelgenIndigo, text=white, rounded corners=2pt, text width=25mm, minimum height=10mm, align=center, inner sep=2pt},
arr/.style={-{Stealth}, thick, HelgenTeal}]
\node[paso] (a) {\textbf{1 Respaldo}\\5V\_SENSE $<$ 4.2 V (media 200 ms)};
\node[paso, right=of a] (b) {\textbf{2 Última palabra}\\\$PHLG + posición; TX vacío};
\node[paso, right=of b] (c) {\textbf{3 Apagar}\\MODEM\_EN = 0, PA1 = 0, K1 suelto, UARTs hi-Z, W5500 PD};
\node[acento, right=of c] (d) {\textbf{4 STOP}\\RTC 10 min (LSE / LSI) $\cdot$ INT1 $\cdot$ 24 V};
\node[paso, below=of d] (e) {\textbf{5 Despertar}\\vbat $<$ 2.95 V $\to$ dormir otra vez};
\node[paso, left=of e] (f) {\textbf{6 Etapa ON}\\PA1 = 1 (rampa 20 ms); NMEA $\le$ 30 s};
\node[paso, left=of f] (g) {\textbf{7 Módem ON}\\+2 s MODEM\_EN; LED/RTCM $\le$ 90 s o pulso RST};
\node[paso, left=of g] (h) {\textbf{8 Reportar}\\K1; 2 × \$PHLG/\$PHCG pwr = BATT; \$PHEV con tiempos};
\draw[arr] (a)--(b); \draw[arr] (b)--(c); \draw[arr] (c)--(d); \draw[arr] (d)--(e); \draw[arr] (e)--(f); \draw[arr] (f)--(g); \draw[arr] (g)--(h);
\draw[arr, dashed] (h.north) -- ++(0,1.5mm) -| (c.south);
\end{tikzpicture}
\vspace{2mm}
\begin{itemize}\small
\item Umbrales \textbf{LFP}: corte 2.95 V, rearme 3.20 V (0.6.3 trae 3.40 / 3.70 de Li-ion) $\cdot$ SoC por culombios
\item Ventana meta $\le$ 60 s $\cdot$ posición guardada con bandera de antigüedad $\cdot$ fix fresco solo si llega
\end{itemize}
\end{frame}
\begin{frame}{D $\cdot$ Cobre: DRC limpio, RS1 Kelvin, vías únicas conocidas}
\begin{columns}[T]
\column{0.42\textwidth}
\begin{itemize}
\item DRC con \texttt{.kicad\_dru}, relleno y paridad: \textbf{3 errores} (MOD1, por diseño, excluidos), \textbf{0} sin conectar, paridad solo PWR\_FLAG — en las dos
\item RS1: VIN y CLN llegan \textbf{solo} a su pad (prueba recortando el pad)
\item Vías únicas: las aceptadas el 19/21-oct + dos notas: V5.7 (146.37, 86.96) lleva el LDO del MCU + U12 ($\approx$ 0.3 A); V5.7 24 V por dos vías 0.8/0.3 en serie
\item 0 mm de potencia en capas internas salvo la rama de R2 (permitida)
\end{itemize}
\column{0.58\textwidth}
\includegraphics[width=\linewidth]{fig/fig-rs1-kelvin.png}
\end{columns}
\end{frame}
\begin{frame}{E $\cdot$ Firmware: 0.6.3 no sirve a V5.6/V5.7; board\_v56.h sí}
\begin{columns}[T]
\column{0.5\textwidth}
\begin{block}{Lo que 0.6.3 hace mal en V5.6}
No enciende el módem (PC3) $\cdot$ reset del módem por PCF P7 que ya no existe $\cdot$ NTC en PB1 que ya no existe $\cdot$ flotación 4.00 V (es 3.50) $\cdot$ corte 3.40/3.70 V (LFP: 2.95/3.20) $\cdot$ ignición por digitalRead
\end{block}
\begin{block}{Entregado hoy}
\texttt{board\_v56.h}: 64 pines del netlist (V5.6 = V5.7), umbrales del hardware como constantes, notas por pin nuevo (MODEM\_EN/RST/LED, RTCM\_TAP, ACC\_INT1, NTC\_CELL).
\end{block}
\column{0.5\textwidth}
\begin{block}{0.7.0: trabajo con tamaño}
\begin{itemize}
\item F-1 0.7.0-pre (módem, NTC, LFP, ADC): \textbf{1 día}
\item F-2 ciclo de respaldo STOP + RTC: 3--4 días
\item F-3 SC16IS752 + EFCR primero: 1 día
\item F-4 Ethernet de campo: 2 días
\item F-5..F-8 acelerómetro, vigilancia del módem, Modo B, recuperación: 2 días
\end{itemize}
\end{block}
\end{columns}
\end{frame}
\begin{frame}{E $\cdot$ Los algoritmos de la tarjeta}
\begin{columns}[T]
\column{0.5\textwidth}
\begin{itemize}\small
\item \textbf{Gobernador de carga}: HOLDOFF 120 s $\to$ PROVING (riel $\ge$ 5.05 V 30 s) $\to$ ON $\to$ SHED ($<$ 4.70 V muestra, $<$ 4.90 V media 1 s) $\to$ COOLDOWN 60 s × 2$^n$ $\to$ WAIT; HOT $\ge$ 45 °C
\item \textbf{Recuperación de enlace}: gracia 90 s; sin NMEA 60 s $\to$ ciclo (1 / 5 min); RTK perdido 15 min $\to$ ciclo (1 / 30 min); 3 ciclos $\to$ LIMP
\item \textbf{Modo B}: K1 a los 10 s de NMEA; inyección solo en huecos $\ge$ 8 ms; \$PHLG $\le$ 100 caracteres; soltar antes de cortar
\end{itemize}
\column{0.5\textwidth}
\begin{itemize}\small
\item \textbf{Vigilancia del módem}: caída del riel por ventanas (30/50 mV) + edad del RTCM; 0.7.0: LED (PC2) + RTCM (PC7) + reset con límite
\item \textbf{Cortes}: térmico 60/55 °C; batería por media de 200 ms (LFP en 0.7.0)
\item \textbf{Medición}: ADC con VREFINT; mínimos de ventana y medias de 200 ms
\item \textbf{Supervisión}: IWDG 16 s; razón del reset en registros RTC; holdoff ×2$^n$
\item \textbf{Ciclo de respaldo} (nuevo): STOP + RTC + INT1
\end{itemize}
\end{columns}
\end{frame}
\begin{frame}{Hallazgos: los que deciden}
\small
\begin{tabular}{@{}p{0.9cm}p{0.4cm}p{5.5cm}p{5.5cm}@{}}
\toprule
\textbf{Id} & & \textbf{Problema} & \textbf{Arreglo}\\
\midrule
P-1 & \ok & Relleno viejo en el repo (mañana) & \textbf{Cerrado 13:00}: relleno fresco en los dos archivos; falta commit\\
P-2 & \sevB & U6: 3 vías en la pasta & Epoxy Filled \& Capped + rayos X\\
P-3 & \sevB & Rotación de huellas easyeda2kicad & Visor de JLC\\
P-4 & \sevD & D10 unidireccional $\to$ F2 abre con el arnés al revés & SMBJ33CA\\
E-3 & \sevB & W5500 sin enable: 65--132 mA en batería & PHY power-down (13 mA) en 0.7.0\\
E-4 & \sevC & RS-485 toma el bus desde el reset; sin TVS & EFCR primero; THVD1410 para 108/322\\
E-7 & \sevB & Ignición a 12 V en zona indefinida & ADC con histéresis\\
E-9/10 & \sevC & U25: lazo 56 mm$^2$, vía única de 24 V & Banco 9/24/32 V, cámara térmica\\
F-1 & \sevA & 0.6.3 no enciende el módem & 0.7.0-pre, 1 día\\
F-2 & \sevB & Ciclo de 10 min y umbrales LFP & STOP + RTC, 2.95/3.20 V\\
\bottomrule
\end{tabular}
\par\medskip 30 hallazgos en total (8 de pedido, 16 eléctricos, 8 de firmware); 6 easy wins.
\end{frame}
\begin{frame}{Matriz de riesgo}
\centering\includegraphics[width=0.96\linewidth]{fig/fig-matriz-riesgo.png}
\end{frame}
\begin{frame}{El pedido de hoy y el camino a las 108 / 322}
\begin{columns}[T]
\column{0.5\textwidth}
\begin{block}{Hoy ($\approx$ 40 min)}
\begin{enumerate}
\item BOM: D10 $\to$ SMBJ33CA (el \texttt{\_bom.csv} de las 13:00 aún dice SMBJ33A)
\item PCB: 4 capas, ENIG, \textbf{Epoxy Filled \& Capped}
\item Ensamble top; rayos X en U6 en las notas
\item Visor: pin 1, cátodos, «+» de electrolíticos
\item 5 + 5; número de orden al acta
\item \ok\ B y guardar ya están (13:00); falta commit de kicad/ y production/
\end{enumerate}
\end{block}
\column{0.5\textwidth}
\begin{block}{Antes de las 108 / 322 (banco con 0.7.0)}
\begin{enumerate}
\item Lupa en U6 + autoprueba
\item 24 V: NMEA, registro, Kelvin (TP1 ÷ 32), carga 1.2--1.4 A
\item 20 ciclos de 10 min (paquete 20 \%, 45 °C): piso $<$ 100 mW
\item 20 cortes 24 V $\leftrightarrow$ batería sin reset
\item RS-485/RS-232 en lazo; Ethernet 24 h
\item V5.7: 9/12/24/32 V, polaridad, térmico
\item Temperaturas de U6, L6, L7
\item Arneses, tapa, barrenos
\end{enumerate}
\end{block}
\end{columns}
\end{frame}
\begin{frame}[standout]
GO al piloto 5 + 5 con tres condiciones.\\[3mm]
\small El cobre está listo y ya vive en el repo (P-1 cerrado); el camino crítico es 0.7.0.
\end{frame}
\end{document}