% Helgen Technologies — HBOX RTK · Avance de Desarrollo y Plan de Despliegue (Project Drogheda) % Audiencia: Hutchison Ports (ICAVE / TIMSA / EIT / LCT). Seguimiento del RCA del 22-jun. % Compilar con XeLaTeX: latexmk -xelatex -interaction=nonstopmode .tex \documentclass[10pt,aspectratio=169]{beamer} \usetheme[progressbar=frametitle, numbering=fraction, block=fill]{metropolis} % ---------- Paleta oficial Helgen (Guia de Identidad v1.5, 2026) ---------- \definecolor{HelgenIndigo}{HTML}{2C3C5B} % Indigo — color primario \definecolor{HelgenCyan}{HTML}{51F3DA} % Verde cian — acento \definecolor{HelgenTeal}{HTML}{17A08C} % derivado: cian oscurecido para TEXTO sobre blanco \definecolor{HelgenMist}{HTML}{EFF1F5} % derivado: tinte indigo 8% para rellenos \definecolor{HelgenAmber}{HTML}{C0392B} % rojo de alerta (umbrales/peligro) \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} \setbeamercolor{block title alerted}{bg=HelgenIndigo, fg=white} % ---------- Fuentes de marca + idioma ---------- \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{graphicx} \usepackage{array} \newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}} \usepackage{tikz} \usetikzlibrary{arrows.meta, positioning, shapes.misc, fit, backgrounds} \usepackage{pgfgantt} % ---------- Estilos TikZ ---------- \tikzset{ box/.style={rounded rectangle, draw=HelgenIndigo, fill=HelgenMist, font=\scriptsize, minimum height=7mm, inner xsep=2mm, align=center}, hot/.style={rounded rectangle, draw=HelgenAmber, fill=HelgenMist, very thick, font=\scriptsize, minimum height=7mm, inner xsep=2mm, align=center}, arr/.style={-{Stealth}, thick, HelgenTeal}, arrb/.style={-{Stealth}, thick, HelgenIndigo}, heat/.style={-{Stealth}, very thick, HelgenAmber} } % ---------- Vinetas + separador ---------- \setbeamertemplate{itemize item}{\textcolor{HelgenTeal}{\rule[0.25ex]{0.85ex}{0.85ex}}} \setbeamertemplate{itemize subitem}{\textcolor{HelgenTeal}{\rule[0.25ex]{0.6ex}{0.6ex}}} \setbeamertemplate{itemize subsubitem}{\textcolor{HelgenTeal}{\rule[0.25ex]{0.5ex}{0.5ex}}} \newcommand{\sep}{\raisebox{0.35ex}{\rule{0.45ex}{0.45ex}}} \newcommand{\figcap}[1]{\par\vspace{1.2mm}\centerline{\begin{minipage}{0.92\textwidth}\footnotesize\centering #1\end{minipage}}} % ---------- Pie de pagina ---------- \setbeamertemplate{frame footer}{% \scriptsize\color{gray}\insertshortauthor\ \sep\ \insertshorttitle\ \sep\ Confidencial — Helgen Servicios Especializados} % ---------- Metadatos ---------- \title[Avance HBOX RTK \sep\ Hutchison Ports]{HBOX RTK — Avance de Desarrollo y Plan de Despliegue} \subtitle{Validación térmica \sep\ Watchdog v3 \sep\ Despliegue en las 4 BUs \sep\ Seguimiento del RCA (22 jun)} \author[Helgen Technologies]{Helgen Technologies — Ingeniería de Producto} \date{2 de julio de 2026} \titlegraphic{\hfill\includegraphics[height=1.05cm]{figs/logo-helgen.png}} \begin{document} \maketitle \begin{frame}{Agenda} \setbeamertemplate{section in toc}[sections numbered] \tableofcontents[hideallsubsections] \end{frame} % ===================================================================== \section{Estado general: los tres frentes del RCA} \begin{frame}{Los tres frentes del RCA — dónde está cada uno hoy} \centering\small \setlength{\tabcolsep}{5pt}\renewcommand{\arraystretch}{1.35} \begin{tabular}{@{}L{0.16\textwidth} L{0.33\textwidth} L{0.42\textwidth}@{}} \toprule Frente & Estado al 22 jun & \textbf{Hoy (2 jul)} \\ \midrule Backend & Reescrito (envío asíncrono, filtro anti-salto corregido) & \alert{Desplegado en producción} y estable \\ Térmico & Hipótesis de campo abierta (faltaba soak) & \alert{Validado en cámara a 50\,°C}: el RTK opera normal; el foco es la \textbf{energía}. Solución en prueba (2 alternativas) \\ Hardware & Plan de PCB v3 & Watchdog v3 \alert{validado en protoboard}; \textbf{congelamiento del diseño de PCB hoy} \\ \bottomrule \end{tabular} \vfill \begin{block}{En una línea} Las tres causas del RCA tienen corrección \textbf{verificada o en prueba final}, y el despliegue hacia las 4 BUs \alert{inicia la próxima semana}. \end{block} \end{frame} % ===================================================================== \section{Validación térmica en cámara (50\,°C)} \begin{frame}{Prueba en cámara de calor — protocolo y resultado} \begin{itemize} \item \textbf{Unidad bajo prueba:} HBOX en configuración actual — \emph{tal como se embarcó a ICAVE}, sin modificaciones. \item \textbf{Condición:} 50\,°C de temperatura ambiente sostenida en cámara. \end{itemize} \vfill \centering\small \setlength{\tabcolsep}{6pt}\renewcommand{\arraystretch}{1.3} \begin{tabular}{@{}L{0.3\textwidth} L{0.3\textwidth} L{0.3\textwidth}@{}} \toprule Subsistema & Resultado a 50\,°C & Lectura \\ \midrule RTK (F9P + 4G + correcciones) & \textbf{Operación normal}, sin degradación & Consistente con el rating del ZED-F9P ($-40\ldots+85$\,°C) \\ Batería de respaldo & Autonomía ${\sim}30\,\%$ de la nominal & \alert{La víctima térmica es la energía} \\ \bottomrule \end{tabular} \vfill \begin{alertblock}{Confirma el RCA} El calor \textbf{no} tumba el posicionamiento: degrada la \textbf{cadena de energía}. Exactamente lo que el RCA señaló como eslabón débil. \end{alertblock} \end{frame} \begin{frame}{Lectura de ingeniería del resultado} \begin{itemize} \item \textbf{Posicionamiento robusto al calor:} con la máquina encendida, el RTK entrega igual a 50\,°C que en frío. \item \textbf{El riesgo térmico es de disponibilidad}, no de precisión: con celda caliente, el respaldo en máquina apagada se reduce a ${\sim}30\,\%$. \item \textbf{Mitigación doble:} bajar la temperatura interior (solución térmica, siguiente sección) y \textbf{proteger la celda} — el watchdog v3 corta la carga cuando el sensor reporta celda caliente (carga calificada por temperatura). \item \textbf{Honesto:} el interior del gabinete en campo puede exceder 50\,°C en picos; por eso el v3 integra \alert{sensores de temperatura} — mediremos el valor real en campo, ya no estimaremos. \end{itemize} \end{frame} % ===================================================================== \section{Solución térmica — dos alternativas en prueba} \begin{frame}{Dos alternativas en evaluación} \begin{columns}[T] \column{0.56\textwidth} \begin{block}{A — Ducto impermeable + ventilador} \small Trayectoria de aire controlada que extrae el calor \textbf{sin comprometer el ingreso de agua} (diseño anti-ingreso validándose). Probada: funcional. \end{block} \begin{block}{B — Disipador de aluminio + ventilador interno} \small Pared disipadora de aluminio con aletas al exterior; el ventilador interno fuerza la convección hacia ella y el calor \textbf{sale por conducción}, con la caja sellada. \alert{En prueba ahora.} \end{block} \begin{alertblock}{Descartada: placa fría a platina} \small El gabinete instalado \textbf{no tiene platina} — no existe superficie de montaje para conducción directa. \end{alertblock} \column{0.4\textwidth} \centering \includegraphics[width=\linewidth]{figs/hbox-heatsink.jpeg} \figcap{Alternativa B: disipador de aluminio integrado al HBOX.} \end{columns} \end{frame} \begin{frame}{Rutas de extracción de calor — comparación} \centering \begin{columns}[T] \column{0.5\textwidth}\centering \textbf{\small A — Ducto impermeable}\\[2mm] \begin{tikzpicture}[scale=0.9] % caja \draw[HelgenIndigo, thick, fill=HelgenMist, rounded corners=1pt] (0,0) rectangle (4.4,2.2); % ducto superior \draw[HelgenIndigo, thick] (-0.5,1.55) -- (0,1.55); \draw[HelgenIndigo, thick] (-0.5,1.95) -- (0,1.95); \draw[HelgenIndigo, thick] (4.4,1.55) -- (4.9,1.55); \draw[HelgenIndigo, thick] (4.4,1.95) -- (4.9,1.95); % membrana \foreach \y in {1.58,1.66,...,1.94} \draw[HelgenTeal, thick] (0.05,\y) -- (0.3,\y); \node[font=\tiny, text=HelgenIndigo, anchor=south] at (0.6,2.25) {membrana / laberinto}; % flujo de aire \draw[arr] (-0.45,1.75) -- (0.7,1.75); \draw[arr] (0.8,1.75) .. controls (2.2,1.3) .. (3.6,1.75); \draw[arr] (3.7,1.75) -- (4.85,1.75); \node[font=\tiny, text=HelgenTeal] at (2.2,0.95) {aire forzado (ventilador)}; % electronica \node[box, font=\tiny] at (2.2,0.45) {electrónica HBOX}; % gotas bloqueadas \node[font=\tiny, text=HelgenAmber] at (-0.55,2.45) {agua}; \draw[HelgenAmber, thick] (-0.75,2.2) -- (-0.35,2.3); \draw[HelgenAmber, thick] (-0.75,2.3) -- (-0.35,2.2); \end{tikzpicture} \par\vspace{1mm} {\scriptsize Extrae aire caliente por trayectoria sellada;\\el diseño impide el paso de agua al interior.} \column{0.5\textwidth}\centering \textbf{\small B — Disipador + ventilador interno}\\[2mm] \begin{tikzpicture}[scale=0.9] % caja sellada \draw[HelgenIndigo, thick, fill=HelgenMist, rounded corners=1pt] (0.4,0) rectangle (4.8,2.2); % pared de aluminio \fill[HelgenIndigo!25] (0.4,0.1) rectangle (0.75,2.1); \draw[HelgenIndigo, thick] (0.4,0.1) rectangle (0.75,2.1); % aletas exteriores \foreach \y in {0.2,0.42,...,2.05} \draw[HelgenIndigo, line width=1.4pt] (0.4,\y) -- (-0.05,\y); \node[font=\tiny, text=HelgenIndigo, anchor=south, align=center] at (0.3,2.25) {aletas al\\exterior}; % ventilador interno \node[circle, draw=HelgenIndigo, thick, minimum size=6mm, font=\tiny] (fan) at (3.4,1.5) {fan}; \draw[arr] (fan.west) -- (1.1,1.5); \draw[arr] (3.4,0.9) .. controls (2.2,0.6) .. (1.2,0.9); % conduccion \draw[heat] (0.35,1.5) -- (-0.45,1.5); \draw[heat] (0.35,0.6) -- (-0.45,0.6); \node[font=\tiny, text=HelgenAmber, anchor=west] at (-0.55,0.28) {calor}; % electronica \node[box, font=\tiny] at (3.4,0.45) {electrónica}; \node[font=\tiny, text=HelgenIndigo] at (2.2,1.9) {IP67 se mantiene}; \end{tikzpicture} \par\vspace{1mm} {\scriptsize Convección interna forzada hacia la pared de aluminio;\\conducción al exterior con la caja \textbf{sellada}.} \end{columns} \vfill \figcap{Las \textbf{pruebas de calor concluyen hoy}; el resultado define la variante que se integra al diseño final. Ambas respetan el invariante: \alert{IP67 sin comprometer}.} \end{frame} % ===================================================================== \section{Watchdog v3 — protoboard validado, PCB en cierre} \begin{frame}{Circuito v3 validado en protoboard profesional} \begin{itemize} \item Armado en \textbf{protoboard profesional} con los componentes reales del diseño: \alert{funciona perfectamente}. \item Qué valida: conmutación del stack RTK (apagado = estado seguro), sensado de ignición a bordo (12--24\,V), respaldo por batería, medidor de carga, reset y \textbf{control de ventilador por temperatura}. \item \textbf{Sensor de temperatura integrado} al watchdog: gobierna el ventilador, \textbf{corta la carga con celda caliente} y alimenta la telemetría. \item Los invariantes del RCA se mantienen: \emph{nunca desaparecer, nunca ciclo infinito}; recuperación ciclando el \textbf{stack 4G}, no el GNSS. \end{itemize} \vfill \begin{block}{Significado} La electrónica que va a la PCB ya no es una apuesta: \textbf{es un circuito medido y funcionando} — la PCB es su traducción a manufactura. \end{block} \end{frame} \begin{frame}{Watchdog v3 — diagrama de bloques} \centering \begin{tikzpicture}[node distance=4mm and 5mm] \node[box] (vin) {24\,V gabinete\\(GX16)}; \node[box, right=of vin] (prot) {Protección\\inv. pol. + TVS}; \node[box, right=of prot] (psu) {Fuente\\24$\rightarrow$5\,V}; \node[box, right=of psu] (rail) {Riel 5\,V\\respaldado}; \node[box, right=of rail] (sw) {Load switch\\(OFF = seguro)}; \node[box, right=of sw] (stack){Stack RTK\\F9P + 4G}; \node[box, below=7mm of psu] (bat) {LTC4040 + batería\\carga calif.\ por T$^\circ$}; \node[box, below=7mm of sw] (mcu) {STM32\\watchdog}; \node[box, below=7mm of stack](temp){Sensores\\T$^\circ$ / HR}; \node[box, left=of bat] (ign) {Ignición 12--24\,V\\(acond.\ a bordo)}; \node[box, below=6mm of bat] (fan) {Ventilador\\PWM}; \draw[arrb] (vin)--(prot); \draw[arrb] (prot)--(psu); \draw[arrb] (psu)--(rail); \draw[arrb] (rail)--(sw); \draw[arrb] (sw)--(stack); \draw[arrb, {Stealth}-{Stealth}] (bat) -- (rail) node[midway, right, font=\tiny, text=HelgenIndigo]{respaldo}; \draw[arr] (mcu) -- (sw) node[midway, right, font=\tiny, text=HelgenIndigo]{enable}; \draw[arr] (temp) -- (mcu) node[midway, above, font=\tiny, text=HelgenIndigo]{I$^2$C}; \draw[arr] (ign.south east) to[bend right=14] node[pos=0.25, below, font=\tiny, text=HelgenIndigo]{sensado} (mcu.south west); \draw[arr] (bat) -- (mcu) node[midway, above, font=\tiny, text=HelgenIndigo]{sensado}; \draw[arr] (mcu) |- (fan) node[near end, above, font=\tiny, text=HelgenIndigo]{ctrl}; \draw[arr] (mcu.north east) to[bend right=12] node[right=1mm, font=\tiny, text=HelgenIndigo]{UART \sep\ diagnóstico} (stack.south west); \end{tikzpicture} \vfill \figcap{Todo lo que era módulos y cableado a mano queda \textbf{a bordo de la PCB}: protección, ignición, respaldo, sensado y control térmico.} \end{frame} \begin{frame}{Diagnóstico completo por unidad — en el mismo flujo GPS} \begin{itemize} \item El watchdog \textbf{inserta un mensaje de diagnóstico en el flujo de datos GPS}: temperatura, batería, tensiones, ignición y causa de recuperación viajan con la posición. \item Requirió \alert{re-arquitectura del flujo de datos} del watchdog — \textbf{en prueba en este momento}. \item Cierra la lección del RCA: la salud de la unidad deja de inferirse de consolas no confiables — \textbf{la reporta la propia unidad}. \end{itemize} \vfill \centering \begin{tikzpicture}[node distance=4mm and 6mm] \node[box] (sens) {Sensores\\T$^\circ$ \sep\ V\textsubscript{bat} \sep\ ign.}; \node[box, right=of sens] (mcu) {Watchdog\\STM32}; \node[box, right=of mcu] (gps) {Flujo GPS/NMEA\\+ mensaje de diagnóstico}; \node[box, right=of gps] (fourg) {Módem\\4G}; \node[box, below=6mm of fourg] (srv) {Servidor\\Helgen}; \node[box, left=of srv] (plat) {Plataforma: diagnóstico\\completo por unidad}; \draw[arrb] (sens)--(mcu); \draw[arr] (mcu)--(gps) node[midway, above, font=\tiny, text=HelgenIndigo]{inserta}; \draw[arrb] (gps)--(fourg); \draw[arrb] (fourg)--(srv); \draw[arrb] (srv)--(plat); \end{tikzpicture} \vfill \figcap{Misma trayectoria que la posición: \alert{si llega la posición, llega el diagnóstico} — sin canales paralelos que mantener.} \end{frame} \begin{frame}{PCB de producción — estado y cierre} \begin{itemize} \item Integrar el diagnóstico y el sensado térmico exigió un \textbf{re-acomodo completo de los circuitos} en la placa. \item En curso sobre el diseño: \textbf{verificación EMC} y \textbf{validación CAD/CAE} del nuevo acomodo. \item Pruebas de calor del watchdog (con su sensor de temperatura) \textbf{concluyen hoy}. \end{itemize} \vfill \begin{alertblock}{Hito de hoy} \textbf{Congelamiento del diseño de PCB} esperado al cierre del día, tras concluir las pruebas de calor. Las unidades del martes viajan con esta PCB impresa (diseño final). \end{alertblock} \end{frame} % ===================================================================== \section{Plan de despliegue — julio} \begin{frame}{Cronograma — de la PCB congelada a las 4 BUs} \centering \resizebox{\textwidth}{!}{% \begin{ganttchart}[ time slot format=isodate, x unit=.5cm, y unit title=.6cm, y unit chart=.56cm, canvas/.append style={draw=HelgenMist}, title/.append style={fill=HelgenIndigo, draw=HelgenIndigo}, title label font=\scriptsize\color{white}, vgrid={{draw=HelgenMist, line width=.3pt}}, bar/.append style={fill=HelgenIndigo, draw=none}, bar height=.55, bar label font=\scriptsize\color{HelgenIndigo}, milestone/.append style={fill=HelgenCyan, draw=HelgenIndigo, thick}, milestone label font=\scriptsize\bfseries\color{HelgenIndigo}, link/.style={-{Stealth}, HelgenTeal, thick} ]{2026-07-02}{2026-07-24} \gantttitle{Julio 2026}{23} \\ \gantttitlelist{2,...,24}{1} \\ \ganttmilestone[name=frz]{Congelamiento diseño PCB}{2026-07-02} \\ \ganttbar{Pruebas de laboratorio (térmico \sep\ EMC \sep\ diagnóstico)}{2026-07-02}{2026-07-10} \\ \ganttbar{Instalación de gabinetes — LCT \sep\ TIMSA \sep\ EIT}{2026-07-06}{2026-07-10} \\ \ganttmilestone{Envío de unidades a ICAVE (PCB impresa)}{2026-07-07} \\ \ganttmilestone[name=inst]{Instalación completa}{2026-07-10} \\ \ganttbar[name=comp]{Comparativa de disponibilidad (1 semana)}{2026-07-10}{2026-07-17} \\ \ganttmilestone[name=prod]{Liberación de PCB a producción}{2026-07-10} \\ \ganttbar[name=fab]{Fabricación de PCBs (5 días)}{2026-07-13}{2026-07-17} \\ \ganttbar[name=bus]{Envío de unidades a todas las BUs}{2026-07-20}{2026-07-24} \ganttlink{prod}{fab} \ganttlink{fab}{bus} \ganttlink{comp}{bus} \end{ganttchart}} \vfill \figcap{Dos rutas en paralelo: \textbf{campo} (instalación + comparativa) y \textbf{fábrica} (producción de PCBs). Convergen en el despliegue a todas las BUs desde \alert{mediados de julio}.} \end{frame} \begin{frame}{Hitos y criterios de éxito} \begin{columns}[T] \column{0.46\textwidth} \begin{block}{Hitos comprometidos} \small \begin{itemize} \item \textbf{Hoy 2 jul} — freeze del diseño de PCB \item \textbf{Mar 7 jul} — unidades nuevas a ICAVE \item \textbf{Vie 10 jul} — instalación completa; PCB a producción \item \textbf{Vie 17 jul} — fin de comparativa; PCBs en sitio \item \textbf{Med.\ jul} — envío a todas las BUs \end{itemize} \end{block} \column{0.5\textwidth} \begin{block}{Cómo mediremos la comparativa (1 semana)} \small \begin{itemize} \item \textbf{Disponibilidad} de unidades nuevas vs.\ anteriores en plataforma \item \textbf{Calidad de fix RTK} sostenida en operación \item \textbf{Telemetría térmica} continua (primer dato real de campo) \item \textbf{Cero} bloqueos permanentes por servidor \end{itemize} \end{block} \end{columns} \vfill \footnotesize La comparativa entrega \alert{evidencia medible} — no una apreciación — antes del despliegue masivo. \end{frame} \begin{frame}{Supuestos y riesgos — sin adornos} \begin{itemize} \item \textbf{Freeze de hoy} condicionado al cierre de las pruebas de calor: si se desplaza, hay colchón hasta el envío del martes. \item \textbf{Accesos a LCT / TIMSA / EIT} la próxima semana: en coordinación con cada BU; es la dependencia externa principal. \item \textbf{Fabricación de PCBs (5 días)} es la ruta crítica del despliegue de mediados de julio; seguimiento diario. \item El resultado de la \textbf{comparativa de disponibilidad} decide ajustes finales \emph{antes} de escalar a las 4 BUs — escalamos con evidencia, no con calendario. \end{itemize} \end{frame} % ===================================================================== \begin{frame}[standout] Validado en cámara.\\ Watchdog v3 funcionando.\\[2mm] {\normalsize Instalación: \textbf{10 jul} \sep\ Comparativa: \textbf{17 jul} \sep\ Todas las BUs: \textbf{med.\ julio}} \vfill {\footnotesize Gracias \sep\ Preguntas} \end{frame} \end{document}