Drogheda/03-Architecture-Hardware/watchdog-proto-bench-bringup-v3.md

14 KiB
Raw Permalink Blame History

title tags date project author status
Watchdog v3 — Preparación y bring-up del prototipo en protoboard
project-drogheda
hardware
watchdog
prototype
breadboard
bring-up
readiness
historico
2026-06-24 Project Drogheda Helgen Technologies HISTÓRICO — guía de banco del 25-jun-2026 (sustituyó la mitad de procedimiento de la lista de compras para v3)

Watchdog v3 — Preparación y bring-up del prototipo en protoboard

Tarjeta: V3 en protoboard (prototipo DEV sobre Blackpill, antes de la EinarBoard 1.0).

!!! abstract "Para quién · Cuándo · Tiempo · Necesitas" - Para quién: ingeniería (banco QRO) - Cuándo: documento histórico — bring-up del prototipo en protoboard del watchdog v3 (jun-2026), antes de la primera PCB. El paso siguiente fue el bring-up de la EinarBoard 1.0 - Tiempo: un día de banco - Necesitas: la lista de compras del protoboard, Blackpill, fuente de 5 V, multímetro, fuente de calor

Traducido del original en inglés (24-jun-2026, actualizado 03-jul-2026).

Alcance: armar en protoboard el watchdog DEV sobre el Blackpill existente y probar la máquina de estados + sensado + interruptor de carga + lazo ventilador/temperatura. El layout de la PCB queda explícitamente fuera del alcance (se hace después de que el prototipo funcione). Autoridad: watchdog-electrical-design-state (canónico, repo) · firmware 04-Source-Code/firmware/blackpillrtkcode_v2/ (v2.3) · esquemático kicad/hbox-watchdog-v3.kicad_sch.

!!! warning "Actualización 2026-07-03 — el conjunto de sensores cambió a las partes en mano" Los sensores del prototipo ahora son AHT10 (0x38, I²C1 solo, 3V3) + LM35 → PA7 + NTC → PB1 (sin SHT40/TMP102 en el prototipo — solo en PCB). El TP4056 del kit no tiene pin TEMP → el corte de carga es PA8 CHRG_RUN (IRF9540N en IN+ del TP4056, invertido respecto a CHRG_EN de PROD). Interruptor de corte cableado: nodo SYS → SPST → MAIN5V. El ventilador en mano es de 2 hilos → la prueba de tacómetro en PB10 se elimina. Las filas de §1/§3 están parchadas; el cableado autoritativo = libro de conexiones xlsx + Drogheda_Guia-Conexion-Protoboard_ES_v2.2.pdf. El firmware v2.3 todavía lee el SHT40 (0x44) — el driver del AHT10, el canal LM35 y la bandera CHRG_RUN quedaron pendientes de un pase de firmware; hasta entonces las filas de I²C y corte de carga son «cablear ahora / probar después».

0. Veredicto: se puede construir, con tres salvedades

Se puede construir y arrancar el núcleo del watchdog. Nada del esquemático ni de su estado de ERC bloquea un armado en protoboard. Las salvedades son de cobertura de firmware y disciplina de alcance, no de preparación:

  1. Los «problemas» de ERC son cosméticos — no bloquean. ERC sobre el archivo hbox-watchdog-v3.kicad_sch = 0 errores, 1 aviso (un símbolo Q_NPN_BCE que no coincide con la caché). La red de tierra está unificada (4 símbolos GND, 0 instancias GNDREF colocadas — el GNDREF que se ve es solo una entrada huérfana de la caché de librería, no una segunda tierra real). Nada de esto afecta al protoboard. (Limpiarlo solo antes de pasar al layout — ver §2.)
  2. Dos subcircuitos de v3 todavía no están en firmware. El build v2.3 flasheado no maneja el indicador de batería de 4 LEDs (PB12–15) ni CHRG_EN (PA8). Se pueden cablear, pero quedarán apagados hasta un pase de firmware. Decidir según §4 si se arman ahora o después.
  3. v2.3 nunca se ha validado en hardware. Invariante del repositorio: probar en banco antes de flashear. Este es su primer banco real — tratar el paso 1 (flash + confirmar telemetría) como la compuerta antes de confiar en cualquier paso posterior.

Lo que no se pudo verificar: las partes compradas exactas. Los dos BOM del prototipo en .xlsx (watchdog-protoboard-BOM-3boards.xlsx, watchdog-LISTA-DE-COMPRAS-ES.xlsx) estaban abiertos en LibreOffice, así que el checklist (§3) se reconstruyó desde los documentos de diseño; se compara con la lista real al cerrarlos.

1. Qué se puede probar (el firmware v2.3 lo soporta) y qué no

Subcircuito Pines Firmware v2.3 ¿Se prueba?
Arranque + telemetría $PHLG/STREAM (USB) USB-C ✅ ENABLE_PHLG=1 Sí — es la compuerta
LED de estado (códigos de parpadeo) PB0 ✅ Sí
Interruptor de carga de la etapa RTK (el corazón de la recuperación) PA1 → 2N3904 → IRF9540 ✅ OFF al reset, el MCU lo enciende Sí
Sensado: batería / 5 V / ignición PA0 / PA4 / PA5 ✅ histéresis + debounce Sí
Ventilador inteligente (PWM) PA6 · (PB10 tacómetro = DNP, el ventilador en mano es de 2 hilos) ✅ PWM 25 kHz · RPM/atasco n/a Sí (rampa PWM; sin tacómetro)
Temperatura/HR por I²C — AHT10 0x38, solo en el bus [2026-07-03] PB6/PB7 ❌ v2.3 lee SHT40 0x44 → driver AHT10 pendiente (+ el respaldo de temperatura del MCU funciona) cablear OK, lee después del parche de firmware
Temperatura analógica ×2 — NTC→PB1 + LM35→PA7 [2026-07-03] PB1 / PA7 ❌ canales no codificados cablear OK, verificar con multímetro mientras tanto
Indicador de batería de 4 LEDs PB12–15 ❌ no codificado cablear OK, queda apagado
Corte de carga por temperatura — CHRG_RUN [2026-07-03] PA8 → 2N3904 → IRF9540N en IN+ del TP4056 ❌ no codificado (invertido respecto a CHRG_EN de PROD — necesita bandera) cablear OK; probar a mano puenteando PA8 alto/bajo
Reset (hardware) NRST n/a (solo HW) Sí — el botón simplemente funciona

Nota del ventilador [actualizada 2026-07-03]: el ventilador en mano es de 2 hilos → sin tacómetro; PB10 queda DNP y la comprobación de RPM/atasco de v2.3 no lee nada (inofensivo). La falla de ventilador se inferirá por temperatura en el pase de firmware. El manejo PWM en PA6 a través del IRLZ44N se prueba exactamente igual.

2. La situación del ERC

  • Lo que ERC reporta en el archivo DEV: 0 errores, 1 aviso (Q_NPN_BCE no encontrado en la librería Device). Ese aviso significa que el símbolo del esquemático viene de la caché del proyecto y la librería Device instalada tiene un nombre/pines ligeramente distintos — puramente cosmético, de enlace de librería.
  • El GNDREF: no hay símbolos GNDREF colocados — solo la definición sobrante en la caché embebida. La tierra es una sola red.
  • Por qué no bloquea el protoboard: ERC valida una netlist para fabricación. En protoboard todas las tierras se unen físicamente; la colocación fuera de rejilla y un nombre de caché distinto son invisibles para el cobre que se cablea a mano.
  • Antes del layout (después), limpiar en KiCad: Tools → Update Symbols from Library (quita el aviso de caché de Q_NPN_BCE), después Annotate y volver a correr ERC; mover cualquier parte fuera de rejilla a la rejilla de 1.27 mm. No editar el esquemático por script mientras KiCad lo tiene abierto (conflicto de bloqueo de archivo).

3. Checklist de partes antes de armar (reconstruido — confirmar contra la caja)

Ya se tiene (no comprar): Blackpill STM32F411, cable USB-C, 18650 + PowerBoost (o fuente de banco), Mean Well SD-15B-05 (o 5 V de banco), multímetro, una fuente de calor (secadora / taza de agua caliente) para la prueba del ventilador. F9P + 4G master NO se necesitan para este bring-up.

Núcleo (los «cerebros» — indispensable):

  • Protoboard ×2 (830 puntos) + kits de jumpers (M-M y M-F)
  • Surtido de resistencias incl. 330 Ω, 1 k, 4.7 k, 10 k, 100 k, 220 Ω
  • 2N3904 ×3 (driver del interruptor de carga, TO-92)
  • IRF9540 / IRF9540N ×2 (P-FET lado alto para 5 V, TO-220)
  • LED ×5 (estado) · 100 nF cerámico ×10 (filtros ADC/desacoplo) · 100 µF ≥ 16 V ×4 (bulk)
  • Potenciómetro de 10 kΩ ×2 + botón táctil/interruptor deslizante ×2 (barrer VBAT / simular ignición)
  • Tira de header macho 1×40 (para pinar cualquier módulo sin pines)

Térmico (nuevo en v3):

  • Ventilador 5 V, 40–60 mm — 2 hilos, en mano [2026-07-03] (sin tacómetro; PB10 DNP)
  • IRLZ44N ×2 (N-FET de nivel lógico, lado bajo del ventilador) — un IRF540/IRFZ44 común no enciende con 3.3 V; si no hay IRLZ44N usar 2N2222A/TIP120 + 1 kΩ en base
  • 1N5819 ×3 (flyback del ventilador; 1N4007 aceptable)
  • Breakout I²C AHT10 (0x38) — en mano [2026-07-03]; solo en el bus, 3V3 únicamente; parche de lectura de firmware pendiente (v2.3 habla SHT40)
  • LM35 (TO-92) — en mano [2026-07-03]; temperatura analógica #2 en PA7, alimentado de 5 V

Adiciones de v3 (armar solo si se quieren cableadas ahora — ver §4):

  • Reset: botón táctil → NRST↔GND (+ header de 2 pines opcional para reset externo)
  • Indicador de batería: 4× LED + 4× 330 Ω en PB12–15 (quedan apagados hasta el firmware)
  • Sustituto del respaldo de batería: módulo TP4056 + boost MT3608 + 2× 1N5819 (OR-ing) (reproduce carga / pérdida de energía→respaldo / BAT_SENSE). [2026-07-03] El TP4056 del kit no tiene pin TEMP → la NTC de 10 kΩ del cargador no se usa; el corte por temperatura ahora está en el prototipo en hardware: PA8 CHRG_RUN → 1 k → 2N3904 → IRF9540N (pull-up 10 k) en IN+ del TP4056 (ALTO = carga; sin MCU = sin carga — invertido respecto a PROD). Más el interruptor de corte: nodo SYS → SPST → MAIN5V (corta vehículo y batería)

4. Decisión antes de sentarse: cuánto de v3 cablear

  • Recomendado — armar el núcleo probable + térmico (todo lo marcado Sí en §1). Prueba toda la lógica del watchdog y el nuevo lazo ventilador/temperatura, que es el objetivo del prototipo. Añadir el botón de reset (gratis — funciona sin firmware).
  • Indicador (PB12–15): cablearlo si se quiere el layout/sensación, pero no encenderá hasta que exista el driver del indicador. Más barato añadirlo después.
  • Sustituto del respaldo de batería (TP4056+MT3608): vale la pena si se quiere observar específicamente la transferencia pérdida de energía → respaldo y que BAT_SENSE siga a la celda. Omitir si el día es solo para la lógica del watchdog.

5. Secuencia de bring-up (correr en orden — cada paso habilita el siguiente)

  1. Solo USB — flashear y compuerta. Compilar v2.3 (Arduino IDE / STM32duino, tarjeta = Blackpill F411CE), flashear por DFU (mantener BOOT0). Abrir serie a 115200. Confirmar líneas BOOT / COLS / TLM y un $PHLG,...*CS cada 30 s. Si falla, detenerse y corregir el firmware antes de cablear nada.
  2. LED de estado — PB0 → 330 Ω → LED → GND. Observar que los códigos de parpadeo cambien con el estado.
  3. Interruptor de carga (el corazón de la recuperación) — PA1 → 1 kΩ → base del 2N3904; colector → gate del IRF9540; 10 kΩ gate→5 V; drain → 5 V conmutado; poner un LED+330 Ω en la salida conmutada. Confirmar: OFF al reset, ON cuando PA1 lo pide. (Apagado es el estado seguro.)
  4. Divisores de sensado — 10 k/10 k ÷2 hacia PA0 (batería vía 18650/pot) y PA4 (riel 5 V); pot de 10 kΩ hacia PA5 (ignición). Barrer y observar que veh/ign/vbat cambien en TLM con histéresis (V5V_ON 4.20 / V5V_OFF 3.80; BAT_CRIT 3.40 / BAT_REC 3.70).
  5. Ventilador + tacómetro — PA6 → 220 Ω → gate del IRLZ44N; ventilador(−) en el drain; 1N5819 ∥ ventilador; 100 kΩ gate→GND. Tacómetro de 3 hilos → pull-up 10 kΩ a 3V3 → PB10. Verlo girar/rampar; desconectar el ventilador → fan_fault en telemetría.
  6. Temperatura I²C — SHT40/TMP102 en PB6/PB7 (+4.7 kΩ pull-up cada uno). Calentarlo → el ventilador rampa en la curva 45→70 °C. ¿Sin sensor? El respaldo de temperatura del MCU también rampa el ventilador — calentar toda la tarjeta.
  7. (Opcional) botón de reset — NRST↔GND momentáneo; presionar → reinicio limpio, línea de causa de reset en el log.
  8. (Opcional) sustituto del respaldo de batería — 5 V del vehículo → IN del TP4056; celda en BAT del TP4056; TP4056/celda → MT3608 → 5 V vía OR-ing 1N5819 al riel; NTC junto a la celda. Quitar los 5 V del vehículo → observar que el respaldo sostenga el riel y BAT_SENSE siga.

6. Hoja de cableado (lado Blackpill, v3)

PA0  ← BAT  ÷2 (10k/10k) desde 18650+ / pot      PA6  → 220Ω → gate IRLZ44N; ventilador(−); 1N5819 ∥ ventilador
PA4  ← 5V   ÷2 (10k/10k) desde riel 5V           PB10 ← tacómetro, pull-up 10k → 3V3
PA5  ← IGN  ÷2 (10k/10k) desde pot/interruptor   PB6/PB7 → I²C SCL/SDA (+4.7k cada uno → 3V3)
PA1  → 1k → base 2N3904; colector → gate IRF9540  PB0  → 330Ω → LED → GND
        ; 10k gate→5V; drain → 5V conmutado        NRST ← botón de reset → GND   (opcional)
        → etapa (LED+330Ω como carga de prueba)    PB12–15 → 330Ω → LED → GND  (indicador; apagado hasta FW)
Rieles GND / 5V / 3V3 comunes.  5 V del ventilador desde una fuente de 5 V SEPARADA (2ª fuente / LM2596) — no del riel conmutado de la etapa.

!!! note "Mapa de partes prototipo↔PCB (para no confundirse)" El esquemático usa equivalentes SMD (Q1 AO3401A P-FET, Q5 MMBT3904, Q2 AO3400A FET del ventilador). En el protoboard se usan los sustitutos through-hole de arriba (IRF9540N / 2N3904 / IRLZ44N) — misma topología, mismo firmware.

7. Después de que el prototipo funcione — siguientes pasos

  • Pase de firmware: driver del indicador de LEDs (PB12–15 desde BAT_SENSE) + lógica CHRG_EN de corte de carga en caliente.
  • KiCad: limpieza cosmética de ERC → huellas → después layout de PCB (DEV primero, después PROD según watchdog-production-schematic-delta).
  • Capacidad del paquete confirmada ~12 Ah (2026-06-30; la etiqueta «40 Ah» estaba mal) — dimensiona la corriente de carga del LTC4040 (≈ C/5, ≤ 2.5 A).

Relacionados

watchdog-electrical-design-state (canónico, repo) · lista de compras del protoboard (22-jun) · watchdog-production-schematic-delta (especificación del build PROD, repo) · kicad/hbox-watchdog-v3.kicad_sch · lo que siguió: bring-up de la EinarBoard 1.0.

Historial de revisiones

Versión Fecha Cambios
1.0 2026-06-24 Guía de banco original (inglés); actualización de sensores 03-jul.
1.1 2026-09-29 Traducción al español, encabezado uniforme y enlaces. Sin cambios técnicos.