auto-sync 2026-07-10 18:00

This commit is contained in:
Leopoldo Rodríguez 2026-07-10 18:00:15 -06:00
parent 0b984b6a0f
commit 3d25a79cf5
16 changed files with 676 additions and 2 deletions

View File

@ -1,6 +1,6 @@
# PLAN.md — Project Drogheda URGENT Remediation
**Updated:** 2026-06-19 · **Owner:** Leo Rodriguez
**Updated:** 2026-07-10 · **Owner:** Leo Rodriguez
**Situation:** **all HBOX units have been removed from the machines.** We have
**4 units in hand — 3 not working, 1 working-ish.** They are **physically in
Veracruz**; the team is in **Querétaro → debugging is remote** until they ship or
@ -9,6 +9,46 @@ Strategy: **ruggedize now + PCB in parallel**; near-term work pivots to **remote
backend analysis (doable from QRO today)** + a **remote diagnostic protocol**
(`06-Testing-Validation/remote-diagnostic-protocol.md`).
---
## Current status & schedule (2026-07-10) — supersedes the dated remediation view below
**Where we are.** The June crisis response drove a full hardware redesign:
**EinarBoard 1.0 (Rev 1.1)** — the production carrier that folds the watchdog,
LTC4040 battery-backup, and locking I/O onto one board — is **designed, audited
(ERC 0 / DRC 0), and now in fabrication + PCBA at JLCPCB.**
- **PCBA order `#W2026070815023249` (SMT `SMT026070860804`) — in production.**
DFM/remark resolved with JLCPCB (Swee): J1/J2 left unpopulated, C50984 not
purchased, edge rails removed → finished board **135.0 × 100.0 mm**.
**Advanced-option payment (depanel + edge rail, $4.93) settled from JLC balance
on 2026-07-10**; awaiting dispatch estimate.
- **First lot schedule.** Assembled boards land in **Querétaro ~Jul 14** → **final
HBox assembly + validation Jul 14–17** → **ship to Veracruz ~Jul 18** (client
update sent by Adriana, 2026-07-10).
- **Client escalation (open).** León David Piña (Hutchison) pushed back on the slip
and asked whether a latest-version unit went to **ICAVE for parallel testing**
(agreed Jul 2). It **has not shipped yet** — commitment: **dispatch one of the 3
pre-assembled units to ICAVE by ~Jul 15** so on-site testing runs in parallel;
results to follow. *(Draft reply prepared for Leo, 2026-07-10.)*
- **Target:** **30 units operational by August** across ICAVE, TIMSA, EIT, LCT.
| Date | Milestone | Status |
|---|---|---|
| 2026-07-10 | EinarBoard PCBA advanced-option payment settled (JLC balance) | ✅ done |
| ~2026-07-15 | Dispatch 1 pre-assembled unit to ICAVE for parallel testing | ⬜ committed |
| ~2026-07-14 | Assembled PCBs received in Querétaro | 🔄 in production |
| 2026-07-14–17 | Final HBox assembly + validation | ⬜ upcoming |
| ~2026-07-18 | Ship first validated lot to Veracruz | ⬜ upcoming |
| Aug 2026 | 30 units operational (ICAVE · TIMSA · EIT · LCT) | ⬜ target |
> The **P0–P2 remediation plan below** (dated 2026-06-19) is retained for the
> still-open **backend** items (anti-jump hotfix, async retranslator, secret
> rotation) and the RCA/thermal work; hardware has since progressed from
> “ruggedize + PCB in parallel” to the EinarBoard production build above.
---
Legend: ⬜ todo · 🔄 in progress · ✅ done · 👤 owner TBD · ⛔ blocker
---

View File

@ -0,0 +1,272 @@
% Helgen Technologies — HBOX RTK · Avance Semanal (Project Drogheda)
% Audiencia: Hutchison Ports (ICAVE / TIMSA / EIT / LCT). Semana del 7 al 11 de julio de 2026.
% Compilar: latexmk -xelatex -interaction=nonstopmode (fuentes de marca solo con XeLaTeX).
% Nota de licencia: se usa League Spartan (OFL) para titulos; el cuerpo NO embebe MADE Evolve Sans
% (licencia de uso personal) por ser documento para cliente — cae al sans por defecto.
\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 Semanal HBOX RTK \sep\ Hutchison Ports]{HBOX RTK — Avance Semanal}
\subtitle{PCB de producción liberada a fabricación \sep\ Gabinete finalizado \sep\ Semana del 7 al 11 de julio}
\author[Helgen Technologies]{Helgen Technologies — Ingeniería de Producto}
\date{9 de julio de 2026}
\titlegraphic{\hfill\includegraphics[height=1.05cm]{figs/logo-helgen.png}}
\begin{document}
\maketitle
% =====================================================================
\begin{frame}{Resumen de la semana}
\centering\footnotesize
\setlength{\tabcolsep}{5pt}\renewcommand{\arraystretch}{1.22}
\begin{tabular}{@{}L{0.15\textwidth} L{0.30\textwidth} L{0.46\textwidth}@{}}
\toprule
Frente & Estado al 2 jul & \textbf{Esta semana (9 jul)} \\
\midrule
Electrónica / PCB & Esquemático cerrado; layout iniciado & \alert{PCB de producción liberada a fabricación} (EinarBoard 1.0, auditada). Recepción \textbf{13--17 jul} \\
Gabinete / Térmico & 2 alternativas en prueba & \alert{Diseño de gabinete finalizado}; disipador en prueba; \textbf{termopar} en curso \\
Backend & Desplegado en producción & \textbf{Estable} — 3 correcciones verificadas \\
Módulo 4G & — & \alert{En aislamiento} (2 unidades desmontadas); comparativa GPS pendiente \\
\bottomrule
\end{tabular}
\vspace{2mm}
\begin{block}{En una línea}
De prototipo a \textbf{placa industrial liberada a fábrica}, con el gabinete finalizado; la PCB impresa llega a \alert{mediados de la próxima semana}.
\end{block}
\end{frame}
% =====================================================================
\section{Logro de la semana — PCB a fabricación}
\begin{frame}{PCB de producción liberada a fabricación}
\begin{columns}[T]
\column{0.54\textwidth}
\begin{itemize}\small
\item \textbf{EinarBoard 1.0}: la placa industrial unificada que reemplaza el cableado Dupont del prototipo.
\item Esquemático y trazado \textbf{cerrados con verificación cero errores}; una auditoría de pre-fabricación \alert{cerró 4 hallazgos críticos antes de ordenar}.
\item \textbf{Orden de fabricación liberada} (7 jul). Estándar \textbf{idéntico} para ICAVE, TIMSA, EIT y LCT.
\end{itemize}
\begin{alertblock}{El «pero» de la semana — honesto}
\small La PCB impresa es la \textbf{ruta crítica}: los primeros prototipos se reciben a \textbf{mediados de la próxima semana (13--17 jul)}. Hasta entonces, las unidades operan con el \textbf{circuito v3 en protoboard} ya validado — el despliegue de campo \alert{no se detiene}.
\end{alertblock}
\column{0.44\textwidth}
\centering
\includegraphics[width=\linewidth]{figs/pcb-einarboard.jpeg}
\figcap{EinarBoard 1.0 (HBox v1.1): un solo circuito impreso integra watchdog, receptor RTK y módem 4G.}
\end{columns}
\end{frame}
% =====================================================================
\section{Memoria técnica — qué hace la placa}
\begin{frame}{Qué es la EinarBoard 1.0}
\begin{itemize}
\item Una sola placa de \textbf{4 capas (135 $\times$ 100 mm)} que aloja los \textbf{tres módulos en zócalos}: el microcontrolador \emph{watchdog} (STM32), el receptor \textbf{RTK} (simpleRTK2B Pro) y el \textbf{módem 4G-NTRIP}.
\item Elimina por completo los \textbf{cables sueltos (Dupont)}, el \textbf{estrés de soldadura} y la \textbf{vulnerabilidad por vibración} — todo lo que antes era módulos y cableado a mano queda integrado y protegido a bordo.
\end{itemize}
\vfill
\begin{block}{Responde directo a su observación \#1}
El aspecto de prototipo (cableado Dupont) fue una etapa deliberada para congelar la lógica en el entorno más exigente. \textbf{Esa etapa cumplió su función}: la versión industrial ya está liberada a fabricación.
\end{block}
\end{frame}
\begin{frame}{Qué hace — funciones a bordo}
\begin{columns}[T]
\column{0.48\textwidth}
\begin{itemize}\small
\item \textbf{Estado seguro por diseño:} el stack RTK arranca \emph{apagado} hasta que el watchdog confirma — \alert{nunca ciclo infinito}.
\item \textbf{Carga calificada por temperatura:} corta la carga con celda caliente — responde a la causa \#1 del RCA.
\item \textbf{Correcciones a prueba de fallas:} puente \emph{normalmente cerrado}; aun con el watchdog fuera, \alert{no se interrumpen}.
\item \textbf{Sensado térmico + ventilador:} sensores + NTC de punto caliente gobiernan enfriamiento y telemetría.
\item \textbf{Diagnóstico por unidad:} el estado (T$^\circ$, batería, tensiones, ignición) viaja en el \textbf{mismo flujo GPS}.
\end{itemize}
\column{0.52\textwidth}
\centering
\resizebox{\linewidth}{!}{%
\begin{tikzpicture}[node distance=3.2mm and 4.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] (sw) {Load switch\\(OFF = seguro)};
\node[box, right=of sw] (stack){Stack RTK\\F9P + 4G};
\node[box, below=6mm of psu] (bat) {LTC4040 + batería\\carga calif.\ por T$^\circ$};
\node[box, below=6mm of sw] (mcu) {STM32\\watchdog};
\node[box, below=6mm of stack](temp){Sensores\\T$^\circ$/HR + NTC};
\draw[arrb] (vin)--(prot); \draw[arrb] (prot)--(psu); \draw[arrb] (psu)--(sw);
\draw[arrb] (sw)--(stack);
\draw[arrb, {Stealth}-{Stealth}] (bat) -- (psu) 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+ADC};
\draw[arr] (bat) -- (mcu);
\draw[arr] (mcu.north east) to[bend right=12] node[right=0.5mm, font=\tiny, text=HelgenIndigo]{diagnóstico} (stack.south west);
\end{tikzpicture}}
\figcap{Protección, ignición, respaldo, sensado y control térmico: \alert{a bordo de una sola placa}.}
\end{columns}
\end{frame}
% =====================================================================
\section{Gabinete y pruebas}
\begin{frame}{Diseño del gabinete finalizado — en prueba}
\begin{itemize}\small
\item \textbf{Diseño finalizado} y en espera de materiales; electrónica interna \textbf{idéntica para las 4 BUs} (sólo cambian los herrajes de sujeción a cada máquina).
\item Chasis con \textbf{disipador de aluminio integrado}: el calor sale por \textbf{conducción} con la caja sellada — \alert{IP67 se mantiene}.
\end{itemize}
\vfill
\begin{columns}[c]
\column{0.5\textwidth}\centering
\includegraphics[height=0.46\textheight]{figs/box-heatsink.jpeg}
\figcap{Gabinete impreso (RV1.4) con disipador — en banco esta semana.}
\column{0.5\textwidth}\centering
\includegraphics[height=0.46\textheight]{figs/hbox-in-cabinet.jpeg}
\figcap{HBOX instalado en el gabinete IP67, en cabina de máquina.}
\end{columns}
\end{frame}
\begin{frame}{Estado térmico — sin adornos}
\begin{itemize}
\item La solución térmica (disipador + ventilador interno, caja sellada) está \textbf{en prueba}; enfría por conducción \textbf{sin comprometer el ingreso de agua}.
\item \textbf{Honesto:} estamos \alert{cuantificando la temperatura interior real del gabinete con un termopar} durante un turno completo de sol. Blindamos el diseño contra la temperatura \textbf{medida}, no la de ficha técnica.
\end{itemize}
\vfill
\begin{block}{Lo que ya sabemos (validación en cámara, 2 jul)}
\small El calor \textbf{no} degrada el posicionamiento: el RTK opera normal a 50\,°C. El eslabón térmico es la \textbf{energía} — ahora protegida por la \textbf{carga calificada por temperatura} de la EinarBoard.
\end{block}
\end{frame}
% =====================================================================
\section{Confiabilidad e integración}
\begin{frame}{Confiabilidad e integración — estado}
\begin{columns}[T]
\column{0.5\textwidth}
\begin{block}{Backend — resuelto y desplegado}
\small 3 correcciones verificadas (10/10 pruebas de extremo a extremo). El tablero ya distingue una unidad \emph{sin señal} de una \emph{en línea que el backend no reenviaba}.
\end{block}
\begin{block}{Módulo 4G — en aislamiento}
\small Desmontamos \textbf{2 unidades} para aislar la causa en laboratorio; el watchdog mitiga reiniciando el hardware de forma autónoma. Presentaremos la \textbf{comparativa de precisión GPS} (nivel centimétrico cuando el módem transmite).
\end{block}
\column{0.5\textwidth}
\begin{block}{Estación base — lista}
\small Operativa y validada; viaja en el \textbf{primer paquete logístico} para asegurar la red RTK de alta precisión.
\end{block}
\begin{alertblock}{Integración VERONICA — dependencia}
\small La retransmisión nativa \textbf{ya funciona para ICAVE}. Para habilitarla en \textbf{TIMSA, EIT y LCT} requerimos formalmente las \textbf{credenciales de acceso} de esas 3 BUs — único insumo pendiente de su lado.
\end{alertblock}
\end{columns}
\end{frame}
% =====================================================================
\section{Cronograma}
\begin{frame}{Próximos pasos — de la fábrica al despliegue}
\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-07}{2026-07-31}
\gantttitle{Julio 2026}{25} \\
\gantttitlelist{7,...,31}{1} \\
\ganttmilestone[name=rel]{PCB liberada a fabricación}{2026-07-07} \\
\ganttbar[name=camp]{Campaña de banco — protoboard v3 (3 tarjetas)}{2026-07-07}{2026-07-16} \\
\ganttbar[name=comp]{Comparativa de confiabilidad en ICAVE}{2026-07-10}{2026-07-17} \\
\ganttbar[name=fab]{Fabricación de PCBs}{2026-07-13}{2026-07-17} \\
\ganttmilestone[name=rx]{Recepción de PCBs impresos}{2026-07-17} \\
\ganttmilestone[name=cmp]{Comparativa entregada}{2026-07-17} \\
\ganttbar[name=ens]{Ensamble + validación de PCBs}{2026-07-18}{2026-07-24} \\
\ganttbar[name=desp]{Despliegue e instalación en las 4 BUs}{2026-07-25}{2026-07-31} \\
\ganttmilestone[name=op]{30 unidades operativas → agosto}{2026-07-31}
\ganttlink{rel}{fab}
\ganttlink{fab}{rx}
\ganttlink{rx}{ens}
\ganttlink{ens}{desp}
\ganttlink{desp}{op}
\end{ganttchart}}
\vfill
\figcap{Dos rutas en paralelo: \textbf{campo} (comparativa en ICAVE) y \textbf{fábrica} (PCBs). Convergen en el despliegue a las 4 BUs y \alert{30 unidades operativas en agosto}.}
\end{frame}
% =====================================================================
\begin{frame}[standout]
EinarBoard 1.0 liberada a fabricación.\\
Gabinete finalizado, en prueba.\\[2mm]
{\normalsize PCB impresa: \textbf{13--17 jul} \sep\ Comparativa ICAVE: \textbf{17 jul} \sep\ 30 unidades: \textbf{agosto}}
\vfill
{\footnotesize Gracias \sep\ Preguntas}
\end{frame}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 419 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

View File

@ -0,0 +1,362 @@
% Drogheda_Diagrama-Unico-Proto.tex — UN solo diagrama de conexiones del protoboard
% HBOX Watchdog v3 (DEV) · bloques 1–11 en una sola hoja, todos los símbolos.
% Fuente de verdad: watchdog-electrical-design-state.md §2 + Guía v3.0 (Bloques 1–11).
% Autocontenido: pdflatex Drogheda_Diagrama-Unico-Proto.tex
\documentclass[border=14pt]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{circuitikz}
\usepackage{helvet}\renewcommand{\familydefault}{\sfdefault}
\usetikzlibrary{calc,arrows.meta}
\definecolor{net5V}{HTML}{C62828}
\definecolor{net3V3}{HTML}{EF6C00}
\definecolor{netGND}{HTML}{212121}
\definecolor{netSig}{HTML}{1565C0}
\definecolor{netAna}{HTML}{2E7D32}
\definecolor{netIgn}{HTML}{800020}
\definecolor{Indigo}{HTML}{2C3C5B}
\ctikzset{bipoles/length=0.75cm, font=\footnotesize}
\newcommand{\flagg}[4]{\node[circle,fill=#1,text=white,inner sep=1.6pt,font=\bfseries\tiny] (#2) at (#3) {#4};}
\newcommand{\ant}[2]{\draw (#1,#2) -- ++(0,0.34) -- ++(-0.18,0.22); \draw (#1,#2) ++(0,0.34) -- ++(0.18,0.22);}
\newcommand{\bnum}[2]{\node[circle,draw=Indigo,text=Indigo,inner sep=1.2pt,font=\bfseries\tiny] at (#1) {#2};}
\begin{document}
\begin{tikzpicture}[every node/.append style={font=\footnotesize}]
% ================= TITULO + LEYENDA =================
\node[anchor=north west,font=\bfseries\large,Indigo] at (-20.4,13.6)
{HBOX Watchdog v3 — Diagrama ÚNICO de conexiones del protoboard (bloques 1–11)};
\node[anchor=north west,font=\scriptsize,gray] at (-20.4,12.9)
{Todo el sistema en una hoja, para verificación rápida · Modo B dibujado (Modo A: ver Avisos) · Proyecto Drogheda / Helgen · v1.0 · 2026-07-09};
\begin{scope}[shift={(-20.4,12.1)}]
\foreach \i/\c/\t in {0/net5V/{5 V},1.6/net3V3/{3.3 V},3.2/netGND/GND,4.6/netSig/{Señal},6.2/netAna/{Analógico},8.6/netIgn/{Ign. / 24 V}}{
\draw[\c,line width=2pt] (\i,0)--(\i+0.45,0); \node[anchor=west,font=\scriptsize] at (\i+0.5,0){\t};}
\node[anchor=west,font=\scriptsize] at (11.6,0){$\bullet$ = unión · cruce sin punto = NO se conectan · SAL/3V3/VEH: misma red donde se repite la etiqueta};
\end{scope}
% ================= RIEL MAIN5V =================
\draw[net5V,line width=1.2pt] (-8.6,10.6) -- (23.0,10.6);
\node[net5V,font=\bfseries,anchor=south west] at (-8.6,10.65){MAIN5V};
\node[net5V,font=\bfseries,anchor=south east] at (23.0,10.65){MAIN5V};
\bnum{-9.0,10.6}{1}
% cap de reserva del riel
\fill[net5V] (-7.4,10.6) circle(1.4pt);
\draw (-7.4,10.6) to[C,l=$100\,\mu$F$+$100 nF] (-7.4,9.1) node[ground]{};
% ================= MCU BLACKPILL =================
\node[draw,fill=blue!8,rounded corners,inner sep=0] (MCU) at (2.3,0.9) [minimum width=4.6cm,minimum height=13cm]{};
\node[font=\bfseries\small,Indigo,rotate=90] at (2.3,2.6){Blackpill STM32F411 (WeAct)};
\node[font=\tiny,gray,rotate=90] at (2.9,2.6){3V3 = salida del regulador del módulo};
% --- pin 5V (borde superior) ---
\draw[net5V,line width=1pt] (1.6,7.4) -- (1.6,10.6); \fill[net5V] (1.6,10.6) circle(1.4pt);
\node[font=\bfseries\tiny,anchor=north] at (1.6,7.3){5V};
% --- GND (borde inferior) ---
\draw[netGND,line width=1pt] (0.8,-5.6) -- (0.8,-6.1) node[ground]{};
\node[font=\bfseries\tiny,anchor=south] at (0.8,-5.5){GND};
% --- 3V3 (borde izq) ---
\draw[net3V3,line width=1pt] (0,6.6) -- (-0.9,6.6); \flagg{net3V3}{f3a}{-1.15,6.6}{3V3}
\node[font=\bfseries\tiny,anchor=west] at (0.05,6.6){3V3};
% --- pines izquierda ---
\foreach \y/\nm in {4.4/PA0,3.2/PA4,1.8/PA5,0.0/PA7,-1.6/PB1,-3.0/PA8,-4.8/NRST}{
\node[font=\bfseries\tiny,anchor=west] at (0.05,\y){\nm};}
% --- pines derecha ---
\foreach \y/\nm in {6.6/PA1,5.6/PA2,5.0/PA3,4.2/PA10,3.4/PA9,2.2/PB6,1.6/PB7,0.4/PB0,-1.2/PA6}{
\node[font=\bfseries\tiny,anchor=east] at (4.55,\y){\nm};}
% --- pines borde inferior (gauge) ---
\foreach \x/\nm in {1.8/PB12,2.6/PB13,3.4/PB14,4.2/PB15}{
\node[font=\bfseries\tiny,anchor=south,rotate=90] at (\x,-5.45){\nm};}
% ================= BLOQUE 10 · FUENTE + RESPALDO (izquierda arriba) =================
\bnum{-19.0,9.7}{10}
\node[draw,rounded corners,minimum width=2.3cm,minimum height=1.5cm,align=center,font=\scriptsize] (SRC) at (-18.0,8.6){Fuente 5 V\\«vehículo»\\SD-15B-05 / banco};
\draw[netGND] (-18.0,7.85) -- (-18.0,7.4) node[ground]{};
% fila VEH -> D1 -> SYS -> corte -> riel
\draw[net5V,line width=1pt] (-16.8,8.6) -- (-15.0,8.6);
\node[net5V,font=\bfseries\tiny,anchor=south] at (-16.1,8.65){VEH 5V};
\draw[net5V] (-15.0,8.6) to[D,l={\tiny 1N5819}] (-13.2,8.6);
\draw[net5V,line width=1pt] (-13.2,8.6) -- (-10.6,8.6);
\fill[net5V] (-10.6,8.6) circle(1.5pt);
\node[net5V,font=\bfseries\tiny,anchor=south] at (-10.6,8.72){nodo SYS};
\draw[net5V,line width=1pt] (-10.6,8.6) -- (-10.0,8.6);
\draw[net5V] (-10.0,8.6) to[nos] (-9.0,8.6);
\node[font=\tiny,anchor=south,align=center] at (-9.5,9.0){apagador de\\corte (SPST)};
\draw[net5V,line width=1.2pt] (-9.0,8.6) -- (-8.6,8.6) -- (-8.6,10.6);
% --- compuerta de carga CHRG_RUN (PA8) ---
\node[pmos,anchor=gate] (MC) at (-16.4,6.0){};
\node[font=\tiny,anchor=west,align=left] at (-15.5,6.0){IRF9540N (P)};
\draw[net5V,line width=0.9pt] (MC.source) -- (MC.source |- 0,8.6);
\fill[net5V] (MC.source |- 0,8.6) circle(1.4pt);
\draw[netSig] (MC.gate) -- (-17.6,6.0); \fill (-17.6,6.0) circle(1.3pt);
\draw (-17.6,6.0) to[R,l=$10$k] (-17.6,7.4);
\draw (-17.6,7.4) -- (MC.source |- 0,7.4); \fill (MC.source |- 0,7.4) circle(1.3pt);
\node[npn,anchor=collector] (QC) at (-17.6,5.3){};
\node[font=\tiny,anchor=west] at (-17.25,4.75){2N3904};
\draw[netSig] (QC.collector) -- (-17.6,6.0);
\draw[netSig] (QC.base) to[R,l_=$1$k] (-20.2,4.75 |- QC.base);
\draw[netGND] (QC.emitter) -- ++(0,-0.35) node[ground]{};
\node[font=\tiny,Indigo,align=left,anchor=west] at (-20.2,3.05){\textbf{CHRG\_RUN (PA8):} ALTO = carga\\MCU ausente = SIN carga (inverso al PCB)};
% --- TP4056 ---
\node[draw,rounded corners,fill=blue!6,minimum width=1.8cm,minimum height=1.2cm,font=\tiny,align=center] (TP) at (-15.5,3.8){TP4056\\cargador};
\draw[net5V,line width=0.9pt] (MC.drain) -- (MC.drain |- 0,4.4);
\node[font=\tiny,anchor=south west] at (-15.55,4.42){IN$+$};
\draw[netGND] (-16.4,3.8) -- (-16.9,3.8) -- (-16.9,3.4) node[ground]{};
\node[font=\tiny,anchor=west] at (-16.38,3.58){IN$-$};
% B+ hacia bus
\draw[net5V,line width=0.9pt] (-15.2,3.2) -- (-15.2,2.6);
\node[font=\tiny,anchor=north west] at (-15.18,3.2){B$+$};
\node[font=\tiny,gray,align=left,anchor=north west] at (-16.6,2.0){NTC del kit: SIN USAR\\(módulo sin pin TEMP;\\en PCB $\rightarrow$ LTC4040)};
% --- bus BAT+ ---
\draw[net5V,line width=1pt] (-15.2,2.6) -- (-9.1,2.6);
\node[net5V,font=\bfseries\tiny,anchor=south] at (-12.6,2.65){BAT$+$};
% bateria
\fill[net5V] (-13.6,2.6) circle(1.4pt);
\draw (-13.6,2.6) to[battery1] (-13.6,0.8);
\draw[netGND] (-13.6,0.8) -- (-13.6,0.55) node[ground]{};
\node[font=\tiny,anchor=west,align=left] at (-13.35,1.6){18650 1S4P\\$\sim$12 Ah};
% --- MT3608 ---
\node[draw,rounded corners,fill=blue!6,minimum width=1.9cm,minimum height=1.2cm,font=\tiny,align=center] (MT) at (-10.9,3.8){MT3608\\elevador $\rightarrow$5 V};
\fill[net5V] (-11.4,2.6) circle(1.4pt);
\draw[net5V,line width=0.9pt] (-11.4,2.6) -- (-11.4,3.2);
\node[font=\tiny,anchor=south west] at (-11.38,3.22){IN$+$};
\draw[netGND] (-11.85,3.8) -- (-12.35,3.8) -- (-12.35,3.35) node[ground]{};
\draw[net5V,line width=0.9pt] (-10.6,4.4) -- (-10.6,5.2);
\draw[net5V] (-10.6,5.2) to[D,l={\tiny 1N5819}] (-10.6,6.6);
\draw[net5V,line width=0.9pt] (-10.6,6.6) -- (-10.6,8.6);
\node[font=\tiny,anchor=west] at (-10.35,5.9){aj. $<$ 5 V veh.};
% ================= BLOQUE 4 · SENSADO =================
\bnum{-9.0,6.4}{4}
% PA0 (BAT_SENSE): bus -> riser -> divisor vertical en x=-2.8
\fill[net5V] (-9.1,2.6) circle(1.4pt);
\draw[netAna,line width=0.9pt] (-9.1,2.6) -- (-9.1,6.0) -- (-2.8,6.0);
\node[netAna,font=\tiny,anchor=south] at (-6.2,6.05){BAT\_SENSE ($\div$2)};
\draw (-2.8,6.0) to[R,l=$10$k] (-2.8,4.4);
\fill (-2.8,4.4) circle(1.4pt);
\draw (-2.8,4.4) to[R,l=$10$k] (-2.8,3.0);
\draw[netGND] (-2.8,3.0) -- (-2.8,2.7) node[ground]{};
\draw[netAna,line width=0.9pt] (-2.8,4.4) -- (0,4.4);
% PA4 (5V_SENSE): divisor vertical en x=-6.0
\flagg{net5V}{fveh}{-6.0,4.9}{VEH}
\draw (-6.0,4.7) to[R,l_=$10$k] (-6.0,3.2);
\fill (-6.0,3.2) circle(1.4pt);
\draw (-6.0,3.2) to[R,l_=$10$k] (-6.0,1.7);
\draw[netGND] (-6.0,1.7) -- (-6.0,1.45) node[ground]{};
\draw[netAna,line width=0.9pt] (-6.0,3.2) -- (0,3.2);
\node[netAna,font=\tiny,anchor=south] at (-4.0,3.25){5V\_SENSE ($\div$2)};
% PA5 (ignicion): DFR1015
\node[netIgn,font=\bfseries\tiny,align=right,anchor=east] at (-8.8,2.0){Ignición\\12--24 V\\(GX16 p3)};
\draw[netIgn,line width=1pt] (-8.75,2.0) -- (-8.2,2.0);
\node[draw,rounded corners,minimum width=1.6cm,minimum height=1.2cm,font=\tiny,align=center] (DFR) at (-7.4,1.8){DFR1015\\$\rightarrow$ 5 V};
\node[font=\tiny,anchor=south west] at (-8.18,2.02){IN$+$};
\draw[netGND] (-8.2,1.4) -- (-8.5,1.4) -- (-8.5,1.0) node[ground]{};
\draw[net5V,line width=0.9pt] (-6.6,1.8) -- (-5.6,1.8);
\draw (-5.6,1.8) to[R,l=$100\,\Omega$] (-3.9,1.8);
\draw[netGND] (-6.6,1.4) -- (-6.35,1.4) -- (-6.35,1.0) node[ground]{};
\draw[netSig,line width=0.9pt] (-3.9,1.8) -- (0,1.8);
\fill (-3.1,1.8) circle(1.3pt); \fill (-2.2,1.8) circle(1.3pt);
% clamp BAT54 hacia 3V3 (dibujado hacia abajo; cátodo en 3V3)
\draw (-3.1,1.8) to[D] (-3.1,0.85);% ánodo en PA5, cátodo hacia 3V3 (clamp Schottky)
\flagg{net3V3}{f3c}{-3.1,0.55}{3V3}
\node[font=\tiny,anchor=east,align=right] at (-3.35,1.05){1N5819\\\textcolor{gray}{(PCB: BAT54)}};
\draw (-2.2,1.8) to[C,l=100 nF] (-2.2,0.9);
\draw[netGND] (-2.2,0.9) -- (-2.2,0.7) node[ground]{};
\node[font=\tiny,gray,anchor=north west,align=left] at (-8.8,0.55){banco: apagador 3V3$\rightarrow$PA5\\simula la ignición (sin DFR1015)};
\node[font=\tiny,netSig,anchor=south] at (-1.1,1.85){digital, sin divisor};
% ================= BLOQUE 11 · LM35 (PA7) + NTC (PB1) =================
\bnum{-7.6,-0.35}{11}
\node[draw,rounded corners,minimum width=1.4cm,minimum height=1.5cm,font=\bfseries\scriptsize,align=center] (LM) at (-5.9,-1.25){LM35};
\node[font=\tiny,anchor=north] at (-5.9,-1.5){TO-92};
\draw[netAna,line width=0.9pt] (-5.9,-0.5) -- (-5.9,0.0) -- (0,0.0);
\node[font=\tiny,anchor=west] at (-5.8,-0.22){OUT};
\node[netAna,font=\tiny,anchor=south] at (-1.6,0.08){10 mV/°C · aire/tarjeta};
\draw[net5V,line width=0.9pt] (-6.6,-0.8) -- (-7.4,-0.8);
\node[net5V,font=\bfseries\tiny,anchor=south east] at (-7.05,-0.7){MAIN5V};
\fill[net5V] (-7.4,-0.8) circle(1.2pt);
\draw (-7.4,-0.8) to[C,l_=100 nF] (-7.4,-1.7);
\draw[netGND] (-7.4,-1.7) -- (-7.4,-1.9) node[ground]{};
\draw[netGND] (-5.9,-2.0) -- (-5.9,-2.35) node[ground]{};
% NTC -> PB1 (columna x=-3.3)
\flagg{net3V3}{f3d}{-3.3,-0.45}{3V3}
\draw (-3.3,-0.65) to[R,l=$10$k 1\%] (-3.3,-1.6);
\fill (-3.3,-1.6) circle(1.4pt);
\draw (-3.3,-1.6) to[thR,l=NTC $10$k] (-3.3,-2.8);
\draw[netGND] (-3.3,-2.8) -- (-3.3,-3.0) node[ground]{};
\draw[netAna,line width=0.9pt] (-3.3,-1.6) -- (0,-1.6);
\node[netAna,font=\tiny,anchor=south] at (-1.55,-1.5){al punto caliente (celda/módem)};
\draw (-3.3,-1.6) -- (-4.3,-1.6); \draw (-4.3,-1.6) to[C] (-4.3,-2.6);
\node[font=\tiny,anchor=east] at (-4.45,-2.1){100 nF};
\draw[netGND] (-4.3,-2.6) -- (-4.3,-2.8) node[ground]{};
% ================= PA8 (ruta larga a la compuerta de carga) =================
\draw[netSig,line width=0.9pt] (0,-3.0) -- (-1.3,-3.0) -- (-1.3,-3.4) -- (-20.2,-3.4) -- (-20.2,4.75 |- QC.base);
\node[netSig,font=\tiny,anchor=south] at (-11.0,-3.35){PA8 = CHRG\_RUN $\rightarrow$ compuerta de carga (Bloque 10)};
% ================= BLOQUE 7 · RESET + GAUGE =================
\bnum{-3.5,-4.3}{7}
\draw[netSig,line width=0.9pt] (0,-4.8) -- (-1.2,-4.8);
\draw (-1.2,-4.8) to[push button] (-2.6,-4.8);
\draw[netGND] (-2.6,-4.8) -- (-2.6,-5.3) node[ground]{};
\node[font=\tiny,anchor=north,align=center] at (-1.9,-5.35){reset $\rightarrow$ GND};
% gauge x4
\foreach \x in {1.8,2.6,3.4,4.2}{
\draw[netSig,line width=0.8pt] (\x,-5.6) -- (\x,-6.0);
\draw (\x,-6.0) to[R] (\x,-7.3);
\draw (\x,-7.3) to[leD] (\x,-8.4);
\draw[netGND] (\x,-8.4) -- (\x,-8.6) node[ground]{};}
\node[font=\tiny,anchor=east] at (1.7,-6.65){$330\,\Omega$};
\node[font=\tiny,anchor=north,align=center] at (3.0,-8.9){gauge de batería $\times$4 · quedan APAGADOS hasta firmware};
% ================= BLOQUE 3 · INTERRUPTOR DE CARGA (PA1 -> SAL) =================
\bnum{5.4,7.3}{3}
\draw[netSig,line width=0.9pt] (4.6,6.6) -- (5.1,6.6);
\draw (5.1,6.6) to[R,l=$1$k] (7.1,6.6);
\node[npn,anchor=base] (Q1) at (7.6,6.6){};
\node[font=\tiny,anchor=west] at (8.5,6.3){2N3904};
\draw[netSig] (7.1,6.6) -- (Q1.base);
\draw[netGND] (Q1.emitter) -- ++(0,-0.35) node[ground]{};
\draw[netSig] (Q1.collector) -- (Q1.collector |- 0,8.4); \fill (Q1.collector |- 0,8.4) circle(1.4pt);
\draw (Q1.collector |- 0,8.4) to[R,l=$10$k] (Q1.collector |- 0,10.6);
\fill[net5V] (Q1.collector |- 0,10.6) circle(1.4pt);
\node[pmos,anchor=gate] (M1) at (9.9,8.4){};
\node[font=\tiny,anchor=south,align=center] at (10.6,9.35){IRF9540N (P)};
\draw[netSig] (Q1.collector |- 0,8.4) -- (M1.gate);
\draw[net5V,line width=0.9pt] (M1.source) -- (M1.source |- 0,10.6);
\fill[net5V] (M1.source |- 0,10.6) circle(1.4pt);
\draw[net5V,line width=1pt] (M1.drain) -- (M1.drain |- 0,7.6);
\coordinate (SALn) at (M1.drain |- 0,7.6);
\fill[net5V] (SALn) circle(1.5pt);
\node[net5V,font=\bfseries\tiny,anchor=south west] at ($(SALn)+(0.1,0.04)$){SAL = 5 V conmutado del stack};
% ================= BLOQUES 8/9 · STACK RTK (Modo B dibujado) =================
\bnum{15.35,7.85}{8}
\node[font=\bfseries\tiny,Indigo,anchor=west] at (15.55,7.85){/ 9};
% linea SAL
\draw[net5V,line width=1pt] (SALn) -- (20.0,7.6);
% F9P
\node[draw,fill=blue!7,rounded corners,inner sep=0] (F9P) at (15.5,4.6) [minimum width=4cm,minimum height=5.2cm]{};
\node[font=\bfseries\scriptsize,align=center] at (15.5,6.6){simpleRTK2B Pro\\(ZED-F9P)};
\node[font=\tiny,align=center,Indigo] at (15.5,2.55){switch XBee $\rightarrow$ \textbf{UART1}\\(socket del Pro VACÍO)};
% 5V top
\fill[net5V] (14.2,7.6) circle(1.4pt);
\draw[net5V,line width=0.9pt] (14.2,7.6) -- (14.2,7.2);
\node[font=\bfseries\tiny,anchor=north] at (14.2,7.15){5V};
% IOREF / GND izq
\node[font=\bfseries\tiny,anchor=west] at (13.55,6.4){IOREF};
\draw[net3V3,line width=0.9pt] (13.5,6.4) -- (12.8,6.4); \flagg{net3V3}{f3b}{12.5,6.4}{3V3}
\node[font=\bfseries\tiny,anchor=west] at (13.55,5.6){GND};
\draw[netGND,line width=0.9pt] (13.5,5.6) -- (12.9,5.6) -- (12.9,5.15) node[ground]{};
% RX1 / TX1
\node[font=\bfseries\tiny,anchor=west] at (13.55,4.6){RX1};
\node[font=\bfseries\tiny,anchor=west] at (13.55,4.0){TX1};
\draw[netSig,line width=0.9pt] (4.6,5.6) -- (12.3,5.6) -- (12.3,4.6) -- (13.5,4.6);
\draw[netSig,line width=0.9pt] (4.6,5.0) -- (11.9,5.0) -- (11.9,4.0) -- (13.5,4.0);
\node[netSig,font=\tiny,anchor=south] at (8.0,5.62){PA2 $\rightarrow$ RX1 (NMEA, cruce TX/RX)};
\node[netSig,font=\tiny,anchor=north] at (6.8,4.97){PA3 $\leftarrow$ TX1};
% antena GNSS (borde derecho)
\draw (17.5,6.6) -- (18.4,6.6); \ant{18.4}{6.6}
\node[font=\tiny,anchor=north west] at (18.4,6.35){Ant. GNSS (SMA)};
% TX2 / RX2 (borde inferior)
\node[font=\bfseries\tiny,anchor=south] at (14.6,2.05){TX2};
\node[font=\bfseries\tiny,anchor=south] at (16.4,2.05){RX2};
% TX2 -> PA10
\draw[netSig,line width=0.9pt] (14.6,2.0) -- (14.6,1.2) -- (11.5,1.2) -- (11.5,4.2) -- (4.6,4.2);
\node[netSig,font=\tiny,anchor=south] at (8.6,4.25){F9P TX2 $\rightarrow$ PA10 (subida al MCU · Modo B)};
% pull-up 22k DFU en PA10
\fill (11.5,3.0) circle(1.3pt);
\draw (11.5,3.0) to[R,l=$22$k] (12.6,3.0); \flagg{net3V3}{f3e}{12.9,3.0}{3V3}
\node[font=\tiny,gray,anchor=north] at (11.9,2.62){DFU-safe};
% PA9 -> DIN
\draw[netSig,line width=0.9pt] (4.6,3.4) -- (5.5,3.4) -- (5.5,3.9) -- (11.1,3.9) -- (11.1,0.8) -- (19.6,0.8) -- (19.6,3.3) -- (20.0,3.3);
\node[netSig,font=\tiny,anchor=north] at (9.3,3.85){PA9 $\rightarrow$ 4G DIN (releva + inyecta \$PHLG)};
% XBee 4G
\node[draw,fill=black!8,rounded corners,inner sep=0] (G4) at (21.7,3.7) [minimum width=3.4cm,minimum height=3.8cm]{};
\node[font=\bfseries\scriptsize,align=center] at (21.7,4.6){4G NTRIP Master\\(XBee)};
\node[font=\tiny,align=center] at (21.7,3.85){en breakout BOB-08276\\(paso 2.0 mm $\rightarrow$ 2.54)};
\node[font=\bfseries\tiny,anchor=west] at (20.05,3.3){DIN};
\node[font=\bfseries\tiny,anchor=west] at (20.05,2.5){DOUT};
\node[font=\bfseries\tiny,anchor=east] at (23.35,4.9){VCC};
\node[font=\bfseries\tiny,anchor=west] at (21.8,2.05){GND};
\draw[netGND,line width=0.9pt] (21.7,1.8) -- (21.7,1.3) node[ground]{};
% DOUT -> RX2 directo (RTCM3)
\draw[netSig,densely dashed,line width=1pt,-{Stealth}] (20.0,2.5) -- (19.2,2.5) -- (19.2,1.5) -- (16.4,1.5) -- (16.4,2.0);
\node[netSig,font=\tiny,anchor=north] at (17.9,1.4){RTCM3 \textbf{DIRECTO} $\rightarrow$ F9P RX2 (no pasa por el MCU)};
% antenas LTE
\draw (21.0,5.6) -- (21.0,5.9); \ant{21.0}{5.9}
\draw (22.4,5.6) -- (22.4,5.9); \ant{22.4}{5.9}
\node[font=\tiny,anchor=south] at (21.7,6.8){2$\times$ ant. LTE (¡antes de energizar!)};
% servidor
\draw[-{Stealth},Indigo,thick] (23.4,3.4) -- (24.4,3.4);
\node[Indigo,font=\tiny,anchor=west] at (24.45,3.4){$\rightarrow$ servidor NTRIP};
% buck MODEM 3.3V
\node[draw,rounded corners,fill=blue!6,minimum width=2.6cm,minimum height=1.2cm,font=\tiny,align=center] (BKM) at (21.8,8.6){LM2596/MP1584\\«MODEM 3.3 V» (aj.)};
\draw[net5V,line width=0.9pt] (20.0,7.6) -- (20.0,8.6) -- (20.5,8.6);
\draw[netGND] (21.2,8.0) -- (21.2,7.5) node[ground]{};
\draw[net3V3,line width=0.9pt] (23.1,8.6) -- (23.9,8.6) -- (23.9,4.9) -- (23.4,4.9);
\node[net3V3,font=\bfseries\tiny,anchor=west] at (24.0,8.6){3.3 V — NUNCA 5 V};
\fill[net3V3] (23.9,6.4) circle(1.4pt);
\draw (23.9,6.4) -- (24.7,6.4); \draw (24.7,6.4) to[C,l=$100\,\mu$F$+$100 nF] (24.7,5.3);
\draw[netGND] (24.7,5.3) -- (24.7,5.1) node[ground]{};
\node[font=\tiny,gray,anchor=west,align=left] at (24.0,7.5){junto al pin VCC\\(picos LTE 1--1.5 A)};
% ================= BLOQUE 6 · AHT10 (I2C1) =================
\bnum{7.5,3.35}{6}
\node[draw,rounded corners,inner sep=0] (AHT) at (8.85,1.9) [minimum width=2.1cm,minimum height=2.2cm]{};
\node[font=\bfseries\scriptsize,align=center] at (8.85,2.55){AHT10\\(T $+$ RH)};
\node[font=\tiny] at (9.0,2.0){0x38 fija};
\node[font=\tiny,Indigo,align=center] at (8.95,1.2){SOLO él en el bus\\3V3 — nunca 5 V};
\node[font=\bfseries\tiny,anchor=west] at (7.85,2.2){SCL}; \node[font=\bfseries\tiny,anchor=west] at (7.85,1.6){SDA};
\draw[netSig,line width=0.9pt] (4.6,2.2) -- (7.8,2.2);
\draw[netSig,line width=0.9pt] (4.6,1.6) -- (7.8,1.6);
\fill (6.6,2.2) circle(1.3pt); \draw (6.6,2.2) to[R,l_=$4.7$k] (6.6,3.4); \flagg{net3V3}{f3f}{6.6,3.6}{3V3}
\fill (7.5,1.6) circle(1.3pt); \draw (7.5,1.6) to[R,l_=$4.7$k] (7.5,0.4); \flagg{net3V3}{f3g}{7.5,0.18}{3V3}
\draw[net3V3,line width=0.9pt] (9.9,2.6) -- (10.5,2.6); \flagg{net3V3}{f3h}{10.75,2.6}{3V3}
\node[font=\bfseries\tiny,anchor=east] at (9.85,2.6){VCC};
\node[font=\bfseries\tiny,anchor=west] at (9.0,0.62){GND};
\draw[netGND,line width=0.9pt] (8.85,0.8) -- (8.85,0.42) node[ground]{};
% ================= BLOQUE 2 · LED PB0 =================
\bnum{5.3,-0.25}{2}
\draw[netSig,line width=0.9pt] (4.6,0.4) -- (5.1,0.4);
\draw (5.1,0.4) to[R,l=$330\,\Omega$] (6.6,0.4);
\draw (6.6,0.4) to[leD] (6.6,-0.7);
\draw[netGND] (6.6,-0.7) -- (6.6,-0.9) node[ground]{};
\node[font=\tiny,anchor=west] at (6.95,-0.75){LED estado};
% ================= BLOQUE 5 · VENTILADOR =================
\bnum{5.6,-1.9}{5}
\draw[netSig,line width=0.9pt] (4.6,-1.2) -- (6.1,-1.2) -- (6.1,-2.6);
\draw (6.1,-2.6) to[R,l=$220$] (7.9,-2.6);
\fill (8.3,-2.6) circle(1.3pt);
\draw[netSig] (7.9,-2.6) -- (8.3,-2.6);
\node[nmos,anchor=gate] (M2) at (8.9,-2.6){};
\node[font=\tiny,anchor=west] at (10.0,-3.3){IRLZ44N (N, lógico)};
\draw (8.3,-2.6) to[R,l_=$100$k] (8.3,-4.2);
\draw[netGND] (8.3,-4.2) -- (8.3,-4.4) node[ground]{};
\draw[netGND] (M2.source) -- (M2.source |- 0,-3.7) node[ground]{};
\draw[netGND,line width=0.9pt] (M2.drain) -- (M2.drain |- 0,-1.5);
\draw[netGND,line width=0.9pt] (M2.drain |- 0,-1.5) -- (11.65,-1.5);
\node[draw,circle,minimum size=1.1cm,font=\scriptsize] (FAN) at (12.2,-1.5){VENT};
\node[font=\tiny,anchor=north] at (12.2,-2.1){2 hilos};
\node[font=\tiny,anchor=north west] at (11.6,-1.55){$-$};
\node[net5V,font=\tiny,anchor=south west] at (12.28,-0.98){$+$};
\draw[net5V,line width=0.9pt] (FAN.north) -- (12.2,-0.3);
\draw[net5V,line width=1pt] (10.4,-0.3) -- (13.8,-0.3);
\node[net5V,font=\bfseries\tiny,anchor=south] at (11.2,-0.25){5 V VENT (separado)};
\fill (10.4,-1.5) circle(1.3pt); \fill[net5V] (10.4,-0.3) circle(1.3pt); \fill[net5V] (12.2,-0.3) circle(1.3pt);
\draw (10.4,-1.5) to[D,l={\tiny 1N5819}] (10.4,-0.3);
\node[draw,rounded corners,fill=blue!6,minimum width=2.3cm,minimum height=1.2cm,font=\tiny,align=center] (BKV) at (15.0,-0.3){LM2596 «VENT»\\24 $\rightarrow$ \textbf{5.0 V} (aj.)};
\draw[netIgn,line width=0.9pt] (16.2,-0.3) -- (17.0,-0.3);
\node[netIgn,font=\bfseries\tiny,anchor=west] at (17.05,-0.3){Fuente 24 V (banco)};
\draw[netGND] (15.0,-0.9) -- (15.0,-1.35) node[ground]{};
% ================= AVISOS =================
\node[draw,rounded corners,fill=gray!6,anchor=north west,align=left,font=\scriptsize,text width=19.6cm,inner sep=7pt] at (-20.4,-5.9){%
\textbf{\textcolor{Indigo}{Avisos (verificación):}}\\[2pt]
$\bullet$ \textbf{Modo A (por defecto):} el 4G va \textbf{dentro} del socket XBee del Pro (switch $\rightarrow$ UART2); PA9, PA10, la buck «MODEM 3.3 V» y el breakout \textbf{no se usan}; todo lo demás igual. El diagrama dibuja el \textbf{Modo B} (diagnóstico \$PHLG).\\
$\bullet$ \textbf{Apagado = estado seguro:} el stack arranca \textbf{OFF} (pull-up de 10 k en la compuerta del IRF9540N); PA1 en ALTO lo enciende.\\
$\bullet$ \textbf{Nunca 5 V} a PA0/PA4/PA7/PB1 sin divisor ni a \textbf{PA5} (digital, máx 3.3 V — clamp Schottky \textbf{1N5819} del kit a 3V3; en el PCB es BAT54). \textbf{IOREF $\rightarrow$ 3V3 es obligatorio} (sin él, los UART del Pro no responden).\\
$\bullet$ \textbf{XBee VCC = 3.3 V, NUNCA 5 V} (buck dedicada desde SAL: reiniciar el stack reinicia el módem). \textbf{AHT10: solo él} en I\textsuperscript{2}C1 y solo a 3V3.\\
$\bullet$ Ventilador en \textbf{5 V separado} (LM2596 ajustado a 5.0 V con multímetro); IRLZ44N debe ser \textbf{lógico}. MT3608 ajustado \textbf{apenas por debajo} del 5 V del vehículo (prioridad al vehículo). Electrolíticos \textbf{con polaridad}.\\
$\bullet$ Blackpill: \textbf{USB y riel 5 V nunca al mismo tiempo}. Bench: bloques 1+3 bastan para el arranque; agrega el resto en orden.};
\end{tikzpicture}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 866 KiB

View File

@ -218,7 +218,7 @@ these before presenting; if it breaks one, say so and propose the compliant fix.
| `00-Project-Management` | plan, ethos, hackathon, **financials**, **handover**, client comms, Drive tooling | [[00-Project-Management/PLAN\|PLAN]] · [[00-Project-Management/Engineering-Handover\|Engineering-Handover]] · `ethos.md` · `hackathon-plan.md` · `Financials.md` · `Drive-Upload/` · `client-comms/` |
| `01-Requirements` | what we build | `SRS.md` · `HBOX-product-spec.md` |
| `02-Architecture-Software` | backend/software analysis, ADRs | `backend-review.md` |
| `03-Architecture-Hardware` | HBOX/cabinet, wiring, BOM, **watchdog PCB v3** | `hardware-respec-and-pcb-brief.md` · `cabinet-electrical-bom.md` · `watchdog-schematic.md` · `watchdog-health-telemetry.md` · `firmware-review.md` · `BOM-master.md` (+§5 Block B/E/H/I parts) · **`watchdog-pcb-v3-design.md`** (schematic spec) · `watchdog-pcb-v3-bom.xlsx` · `watchdog-pcb-v3-kicad-guide.md` (KiCad→JLCPCB) · `watchdog-pcb-v3-blockdiagram.svg` · `watchdog-protoboard-bringup.md` + `watchdog-proto-bench-bringup-v3.md` · `watchdog-connections.xlsx` (PCB pin/net list; H1 DNP; +B/H/I rows) · `watchdog-connections-rationale.md` (+§7 additions 2026-07-02) · **`watchdog-electrical-design-state.md`** (CANONICAL — read first) · **`watchdog-production-schematic-delta.md`** (PROD build spec; LTC4040 §4 values) · `kicad/` — `hbox-watchdog-v3.kicad_sch` (**DEV/proto**) · `hbox-watchdog-v3-PROD.kicad_sch/.kicad_pcb` (**PRODUCTION**: ERC 0, layout started, DRC baseline) · `Drogheda-sym.kicad_sym` (MP1584EN · LTC4040EUFD · AO4406A) · `Drogheda_Conexiones-por-Bloque_Proto_v1.xlsx` (**proto assumptions ledger**) · `Guia-Conexion-Protoboard/` (LaTeX source; `modulos-pinout.tex` = visual parts catalog) → `Drogheda_Guia-Conexion-Protoboard_ES_v3.0.pdf` · **`2026-07-08_Drogheda_4G-Modem-Alternatives_v1.0.md`** (XBee 2.0 mm bridge + cheap-4G survey) · `circuitikz-wiring/` (sheet + Beamer v2.1, blocks 1–11; XBee-socket 3V3 fix 07-08) · `watchdog-protoboard-BOM-3boards.xlsx` + `watchdog-LISTA-DE-COMPRAS-ES.xlsx` (proto BOMs) · **`2026-07-06_Drogheda_EinarBoard-1.0-PreFab-Audit_v1.0.md`** (CLOSED — Rev 1.1 fixes) · `Assembly-BOM-Split.md` + `LCSC-search-list.md` (verified LCSC) + `JLCPCB-Order-Guide.md` (ordering runbook) · `harness-connector-pinout.md` + `Socket-Pinout-Silkscreen.md` · **`EinarBoard-Manual/`** (Rev 1.1 order-prep pack: `einarboard-manual.tex` → branded PDF · `helgen_einarboard_1.0_production_bom.xlsx` · `tools/generate_production_bom.py` + `tools/sync_bom.py` Excel→LaTeX BOM sync) — plus repo-root `scripts/prep_order_release.sh` (safe cleanup + release commit) |
| `03-Architecture-Hardware` | HBOX/cabinet, wiring, BOM, **watchdog PCB v3** | `hardware-respec-and-pcb-brief.md` · `cabinet-electrical-bom.md` · `watchdog-schematic.md` · `watchdog-health-telemetry.md` · `firmware-review.md` · `BOM-master.md` (+§5 Block B/E/H/I parts) · **`watchdog-pcb-v3-design.md`** (schematic spec) · `watchdog-pcb-v3-bom.xlsx` · `watchdog-pcb-v3-kicad-guide.md` (KiCad→JLCPCB) · `watchdog-pcb-v3-blockdiagram.svg` · `watchdog-protoboard-bringup.md` + `watchdog-proto-bench-bringup-v3.md` · `watchdog-connections.xlsx` (PCB pin/net list; H1 DNP; +B/H/I rows) · `watchdog-connections-rationale.md` (+§7 additions 2026-07-02) · **`watchdog-electrical-design-state.md`** (CANONICAL — read first) · **`watchdog-production-schematic-delta.md`** (PROD build spec; LTC4040 §4 values) · `kicad/` — `hbox-watchdog-v3.kicad_sch` (**DEV/proto**) · `hbox-watchdog-v3-PROD.kicad_sch/.kicad_pcb` (**PRODUCTION**: ERC 0, layout started, DRC baseline) · `Drogheda-sym.kicad_sym` (MP1584EN · LTC4040EUFD · AO4406A) · `Drogheda_Conexiones-por-Bloque_Proto_v1.xlsx` (**proto assumptions ledger**) · `Guia-Conexion-Protoboard/` (LaTeX source; `modulos-pinout.tex` = visual parts catalog) → `Drogheda_Guia-Conexion-Protoboard_ES_v3.0.pdf` · **`2026-07-08_Drogheda_4G-Modem-Alternatives_v1.0.md`** (XBee 2.0 mm bridge + cheap-4G survey) · `circuitikz-wiring/` (sheet + Beamer v2.1, blocks 1–11; XBee-socket 3V3 fix 07-08; **`Drogheda_Diagrama-Unico-Proto`** = todo-en-una-hoja para verificación rápida, Modo B, 07-09) · `watchdog-protoboard-BOM-3boards.xlsx` + `watchdog-LISTA-DE-COMPRAS-ES.xlsx` (proto BOMs) · **`2026-07-06_Drogheda_EinarBoard-1.0-PreFab-Audit_v1.0.md`** (CLOSED — Rev 1.1 fixes) · `Assembly-BOM-Split.md` + `LCSC-search-list.md` (verified LCSC) + `JLCPCB-Order-Guide.md` (ordering runbook) · `harness-connector-pinout.md` + `Socket-Pinout-Silkscreen.md` · **`EinarBoard-Manual/`** (Rev 1.1 order-prep pack: `einarboard-manual.tex` → branded PDF · `helgen_einarboard_1.0_production_bom.xlsx` · `tools/generate_production_bom.py` + `tools/sync_bom.py` Excel→LaTeX BOM sync) — plus repo-root `scripts/prep_order_release.sh` (safe cleanup + release commit) |
| `04-Source-Code` | firmware + backend repos | `firmware/` (**own git repo `hbox-firmware`**: `blackpillrtkcode_v2/` deploy · `legacy/` v1 · `docs/LOGGING-SPEC.md` v2.1) · `htracker/` · `notifications/` · `rtk-config/` |
| `05-Analytics-Reports` | SQL views, dashboards (VERONICA/PowerBI), **observability** | `2026-06-22_Drogheda_Manual-Logs-Grafana_v1.0.pdf` (Grafana/Loki log-consultation manual) |
| `06-Testing-Validation` | RCA, diagnostics, test evidence, **log analysis & tooling** | `RCA-2026-06-field-failures.md` · `remote-diagnostic-protocol.md` · `2026-06-20_Drogheda_Bench-Log-Analysis_v1.0.md` (rev-3) · `2026-06-20_Drogheda_GNSS-Findings-Summary.md` · `log-analysis/` (repo **`hbox-log-tools`**: `log-explorer.html` · `analyze_logs.py` · `build_dashboard.py` · `docs/manual.pdf`) |

Binary file not shown.

After

Width:  |  Height:  |  Size: 717 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB