From 8ea4bbc52f0171d989426c7690e91fe9f031b5f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leopoldo=20Rodr=C3=ADguez?= Date: Tue, 15 Sep 2026 18:23:54 +0000 Subject: [PATCH] v5: procedimiento de prueba y flasheo por tarjeta (lote 15 pzas, ES) Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01YJ4eAB6zjQT49RVwpgfKdt --- ..._Procedimiento-Prueba-y-Flasheo_ES_v1.0.md | 311 ++++++++++++++++++ 1 file changed, 311 insertions(+) create mode 100644 06-Testing-Validation/2026-09-15_Drogheda_EinarBoard-v5_Procedimiento-Prueba-y-Flasheo_ES_v1.0.md diff --git a/06-Testing-Validation/2026-09-15_Drogheda_EinarBoard-v5_Procedimiento-Prueba-y-Flasheo_ES_v1.0.md b/06-Testing-Validation/2026-09-15_Drogheda_EinarBoard-v5_Procedimiento-Prueba-y-Flasheo_ES_v1.0.md new file mode 100644 index 0000000..0a9e4cc --- /dev/null +++ b/06-Testing-Validation/2026-09-15_Drogheda_EinarBoard-v5_Procedimiento-Prueba-y-Flasheo_ES_v1.0.md @@ -0,0 +1,311 @@ +--- +title: EinarBoard v5 (HBOX v5) — Procedimiento de prueba y flasheo por tarjeta +tags: [project-drogheda, hardware, einarboard, v5, bringup, testing, flasheo, procedimiento] +project: Project Drogheda +author: Helgen Technologies +date: 2026-09-15 +version: 1.0 +status: ACTIVO — aplicar a cada una de las 15 tarjetas del lote JLC 22-Ago-2026 +audience: técnicos de banco +--- + +# EinarBoard v5 — Procedimiento de prueba y flasheo + +**Lote:** 15 tarjetas `hbox-watchdog-v5` (JLCPCB, pedido 22-Ago-2026). +**Objetivo:** verificar que cada tarjeta enciende sin cortos, que sus rieles están en valor, +y dejarla flasheada con el firmware de arranque entregado por ingeniería. +**Duración estimada:** 15–20 min por tarjeta. + +> ⛔ **REGLA 1 — NO flashear `blackpillrtkcode_v3` (v3.0.3) en esta tarjeta.** +> Ese firmware es para la EinarBoard 1.0 (Blackpill). En la v5 usa los pines PB12–PB15 como +> LEDs de batería, pero en esta tarjeta esos pines son el bus SPI del chip Ethernet (W5500). +> Solo se flashea el archivo `.bin` que entregue ingeniería para v5. +> +> ⛔ **REGLA 2 — Sin batería y sin módulos en estas pruebas.** No conectar nada en P4 +> (batería), ni insertar el simpleRTK2B en MOD1, ni el módem 4G en J7/J8. +> +> ⛔ **REGLA 3 — Fuente de banco siempre con límite de corriente.** Si la corriente llega al +> límite o un componente se calienta: apagar, marcar la tarjeta como FALLA y pasar a la siguiente. + +--- + +## 0. Material + +| Cant. | Ítem | +|---|---| +| 1 | Multímetro (continuidad / V DC) | +| 1 | Fuente de banco 0–30 V con límite de corriente ajustable | +| 1 | Cable USB-C ↔ USB-C (o USB-A ↔ USB-C) **con datos** (no solo carga) | +| 1 | Laptop con **STM32CubeProgrammer** instalado (o `dfu-util` en terminal) | +| 1 | Archivo de firmware: **`hbox-v5-bringup_0.1.0.bin`** (repo: `04-Source-Code/firmware/hbox_v5_bringup/release/`, SHA-256 inicia `1a9a77ae`) | +| 1 | Jumper 2.54 mm para P11 (interruptor de corte) | +| 1 | Lupa o lámpara con aumento | +| — | Hoja de registro (sección 7) | + +**Identificación en la tarjeta** (serigrafía): + +| Ref. | Qué es | Dónde se usa | +|---|---|---| +| **J11** | USB-C **DFU** (junto a SW1/SW2 y J10 Ethernet) | Alimentar solo el MCU y flashear | +| **J9** | USB-C del **módem** | NO se usa en este procedimiento | +| **SW1** | Botón **RESET** | Reiniciar el MCU | +| **SW2** | Botón **BOOT0** | Entrar en modo DFU | +| **TP7 / TP6** | Puntos de prueba **3V3 / GND** | Medir el riel de 3.3 V | +| **TP3 / TP4 / TP5** | SWDIO / SWCLK / NRST | Solo si ingeniería pide programar por ST-Link | +| **P2** | Entrada **5 V** (donde va la Mean Well SD-15B) | Prueba del riel de 5 V | +| **P1** | Entrada **24 V** (GX16) — pin 1 = +24 V, pin 2 = GND | Prueba del buck del ventilador | +| **P11** | Header **CUTOFF-SW** (2 pines) | Puentear para que pase MAIN5V → SYS5V | +| **P6** | Header del ventilador (2 pines) — pin 1 = +5V_FAN, pin 2 = retorno conmutado | Medir salida del buck (pin 1 contra GND) | +| **MOD1** | Zócalo UNO del simpleRTK2B — pin **"5V"** | Verificar que la etapa RTK arranca **apagada** | +| **D18** | LED verde **PWR** | Enciende cuando hay 3.3 V | +| **D17** | LED azul **C13** | Lo controla el firmware (apagado en chip virgen) | +| **U17** | Regulador AMS1117 3.3 V | Tocar para verificar temperatura | +| **Y2** | Cristal **3.6864 MHz** (HC-49, marcado `3.6864` / `36.864`) | Verificación visual | + +--- + +## 1. Inspección visual (sin energía) — 3 min + +Con lupa, en cada tarjeta: + +- [ ] No hay puentes de soldadura visibles entre pines de **U16** (MCU, 64 pines), **U11** + (W5500), **U10** (SC16IS752), **U6** (LTC4040). +- [ ] **Y2** dice `3.6864` (o `36.864`). Los otros tres cristales: **Y1** y **Y3** = `25.000`, + **Y4** = pequeño de 32.768 kHz. Si Y2 dice `1.8432` → marcar y avisar a ingeniería. +- [ ] Botones **SW1** y **SW2** presentes y con "clic". +- [ ] Conectores **J11**, **J9**, **J10 (RJ45)** bien asentados, sin pines doblados. +- [ ] Jumpers de configuración del cargador presentes: **JP2, JP3, JP4** (no tocar su posición). +- [ ] Sin componentes faltantes evidentes ni marcas de quemado. + +--- + +## 2. Continuidad — cortos a tierra (sin energía) — 2 min + +Multímetro en **ohms** (no en modo continuidad/beep, porque los capacitores dan lecturas +transitorias). Punta negra en **TP6 (GND)**. Esperar a que la lectura se estabilice. + +| Medir en | Riel | Esperado | Si es < 100 Ω | +|---|---|---|---| +| **TP7** | 3V3 | > 1 kΩ (la lectura sube lentamente) | FALLA — corto en 3.3 V | +| **P2 pin 1** | VEH5V (entrada 5 V) | > 1 kΩ | FALLA — corto en entrada 5 V | +| **P11 pin 1** | MAIN5V | > 1 kΩ | FALLA — corto en 5 V del sistema | +| **P1 pin 1** | 24V_IN | > 10 kΩ | FALLA — corto en 24 V | +| **MOD1 pin "5V"** | SW_5V (etapa RTK) | > 1 kΩ | FALLA | + +> Nota: es normal ver lecturas de unos cientos de ohms **que van subiendo** — son los +> capacitores cargándose con el multímetro. Lo que NO es normal es una lectura fija de 0–20 Ω. + +--- + +## 3. Prueba del riel de 3.3 V por USB (J11) — 3 min + +Con USB solo se energiza el MCU y la lógica de 3.3 V; el riel de 5 V del sistema queda apagado. +Es la forma más segura de encender la tarjeta por primera vez. + +1. Conectar el cable USB-C en **J11** (el que está junto a los botones), otro extremo a la laptop + o a un cargador USB. +2. Verificar: + +| Punto | Esperado | +|---|---| +| **D18** (LED verde PWR) | **Encendido** | +| **TP7** respecto a TP6 | **3.20 – 3.40 V** | +| **U17** (AMS1117) al tacto tras 1 min | Tibio, se puede tocar. **Si quema → FALLA** | +| **D17** (LED azul) | Apagado o fijo (chip virgen — normal) | + +3. Si D18 no enciende o TP7 < 3.0 V → desconectar, marcar **FALLA (3V3)**. +4. **Dejar el USB conectado** para la sección siguiente. + +--- + +## 4. Prueba de rieles de 5 V y 24 V con fuente de banco — 5 min + +Se hace **con el MCU virgen (sin firmware)**: así todos sus pines quedan en alta impedancia y la +etapa RTK permanece apagada por diseño. Esto es lo que se está verificando. + +### 4a. Riel de 5 V (entrada P2) + +1. Fuente de banco: **5.0 V, límite 500 mA**, salida apagada. +2. Colocar el **jumper en P11** (CUTOFF-SW). +3. Conectar fuente a **P2**: pin 1 = +5 V, pin 2 = GND. (Puede quedarse el USB en J11.) +4. Encender la salida y medir: + +| Punto | Esperado | +|---|---| +| Corriente de la fuente | **< 300 mA** (típico 100–250 mA) | +| **P11 pin 1** (MAIN5V) | 4.8 – 5.1 V | +| **P11 pin 2** (SYS5V, con jumper) | 4.8 – 5.1 V | +| **TP7** (3V3) | 3.20 – 3.40 V | +| **MOD1 pin "5V"** (SW_5V, etapa RTK) | **0 V** ← obligatorio. Si hay 5 V aquí → FALLA (etapa RTK no arranca apagada) | +| **U6** (LTC4040), **U12** (buck Ethernet) al tacto | Tibios, no queman | + +5. Apagar la salida de la fuente. Desconectar de P2. + +### 4b. Riel de 24 V → buck del ventilador (entrada P1) + +1. Fuente de banco: **24.0 V, límite 200 mA**, salida apagada. +2. Conectar a **P1**: pin 1 = +24 V, pin 2 = GND. **Pin 3 (ignición) sin conectar.** +3. Encender la salida y medir: + +| Punto | Esperado | +|---|---| +| Corriente de la fuente | **< 50 mA** (sin ventilador) | +| **P6 pin 1** (5V_FAN) respecto a **TP6 (GND)** | **4.9 – 5.1 V** (no medir contra P6 pin 2: es el lado conmutado del ventilador) | +| **U2** (buck) al tacto | Frío o tibio | + +4. Apagar salida. Desconectar de P1. Quitar el jumper de P11 (opcional; puede dejarse). + +> Si algún valor está fuera de rango: marcar FALLA con la sección (4a o 4b) y el valor medido. +> **No flashear una tarjeta con FALLA.** + +--- + +## 5. Flasheo por USB DFU (J11) — 5 min + +Solo para tarjetas que pasaron las secciones 1 a 4. + +### 5a. Entrar en modo DFU + +1. Solo el **USB en J11** conectado a la laptop (nada en P1/P2). +2. **Mantener presionado SW2 (BOOT0).** +3. Sin soltar SW2, **presionar y soltar SW1 (RESET)**. +4. **Soltar SW2.** +5. La laptop debe detectar un dispositivo **"STM32 BOOTLOADER"** (ID `0483:DF11`). + +> El chip viene **vacío de fábrica**: no hace nada hasta que se flashea, y **solo** entra al +> programador con esta secuencia de botones. Si no aparece el dispositivo: cambiar el cable +> USB (muchos son solo de carga), repetir la secuencia con calma (SW2 debe estar presionado +> cuando se suelta SW1). + +### 5b. Flashear con STM32CubeProgrammer (recomendado) + +1. Abrir **STM32CubeProgrammer**. +2. Arriba a la derecha, en el selector de conexión elegir **USB**. Pulsar el botón de refrescar; + debe aparecer `USB1`. Pulsar **Connect**. +3. Ir a la pestaña **Erasing & Programming** (icono de flecha hacia abajo, lado izquierdo). +4. **File path** → seleccionar `hbox-v5-bringup_0.1.0.bin`. +5. **Start address** = `0x08000000`. Marcar **Verify programming** y **Run after programming**. +6. Pulsar **Start Programming**. Esperar "File download complete" y "Verify… successful". +7. Pulsar **Disconnect**. + +### 5c. Alternativa por terminal (`dfu-util`, macOS/Linux) + +```bash +dfu-util -l # debe listar [0483:df11] +dfu-util -a 0 -s 0x08000000:leave -D hbox-v5-bringup_0.1.0.bin +``` + +### 5d. Verificación después del flasheo + +1. Abrir un terminal serie en la laptop (CoolTerm, Serial, `screen`, o el monitor de Arduino) + y dejarlo listo. Pulsar **SW1** (RESET) una vez. +2. Esperado en los primeros 5 segundos: + +| Punto | Esperado | +|---|---| +| **D17** (LED azul) + LED de panel en P8 (si hay) | **Parpadean** a 1 Hz (MCU ejecutando el firmware) | +| **DB1 → DB4** (LEDs del indicador de batería) | Se encienden **en secuencia** una vez, luego se apagan; después R, G, B en P14 si hay LED RGB conectado | +| Laptop | Aparece un **puerto serie** nuevo ("STMicroelectronics Virtual COM Port" / `usbmodem…`) | +| Terminal serie a **115200 baud** | Encabezado `hbox-v5-bringup 0.1.0`, luego líneas `[PASS]` / `[FAIL]`, y al final **`>>> BOARD OK`** | + +3. Si el terminal se abrió tarde y no se vio el reporte: teclear **`r`** en el terminal → repite + todas las pruebas (y vuelve a encender los LEDs en secuencia). +4. Reporte esperado (todas `[PASS]`): + +``` +[PASS] CLOCK_HSE SYSCLK=96000000 Hz HSE_RDY=1 PLL_SRC=HSE ← cristal Y3 y USB OK +[PASS] LSE_Y4 Y4 32.768k LSERDY=1 ← cristal Y4 OK +[PASS] I2C PCF8574 U13 @0x20 ACK +[PASS] I2C SHT40 U3 @0x44 ACK +[PASS] I2C TMP102 U4 @0x48 ACK +[PASS] I2C SC16IS752 U10 @0x4D ACK +[PASS] TMP102 TMP102 27.50 C +[PASS] SHT40 SHT40 27.8 C 45.0 %RH +[PASS] SC16IS752 0x4D ACK, SPR rd=0xA5 (exp A5), LSR=0x60 +[PASS] GAUGE_WALK visual — technician confirms ← el técnico confirma que vio DB1→DB4 +[PASS] ADC vbat=0.00 v5=0.00 ntc=..C mcu=..C ← vbat y v5 en 0 es NORMAL con solo USB +[PASS] DIN ign=0 chrg=.. fault=.. ser_irq=1 eth_int=.. +---- RESULT: 12 PASS / 0 FAIL ---- +>>> BOARD OK +``` + + Después imprime una línea `STAT …` cada 2 s con temperaturas y voltajes — es normal. + +5. Cualquier `[FAIL]` → anotar la línea completa en la hoja de registro y marcar **FALLA (POST)**. + El LED azul que no parpadea → repetir 5a–5b una vez; si vuelve a fallar → **FALLA (FLASH)**. + +> Este firmware **no enciende la etapa RTK ni el cargador**: solo prueba la tarjeta. El firmware +> de producción v5 se flashea después, por el mismo procedimiento DFU. + +--- + +## 6. Cierre de la tarjeta + +- [ ] Desconectar USB. +- [ ] Etiquetar la tarjeta con su número de serie (**V5-01 … V5-15**) y fecha, en la esquina + cerca de MH4 (sin tapar serigrafía ni componentes). +- [ ] Llenar la hoja de registro. +- [ ] Guardar en bolsa antiestática. Las tarjetas con FALLA van en bolsa aparte con la nota + del punto que falló. + +--- + +## 7. Hoja de registro del lote + +| Tarjeta | Visual (1) | Cortos (2) | 3V3 USB (3) | 5 V (4a) | 24 V (4b) | DFU (5a) | Flash (5b) | Post-flash (5d) | OK / FALLA | Técnico | Fecha | +|---|---|---|---|---|---|---|---|---|---|---|---| +| V5-01 | | | | | | | | | | | | +| V5-02 | | | | | | | | | | | | +| V5-03 | | | | | | | | | | | | +| V5-04 | | | | | | | | | | | | +| V5-05 | | | | | | | | | | | | +| V5-06 | | | | | | | | | | | | +| V5-07 | | | | | | | | | | | | +| V5-08 | | | | | | | | | | | | +| V5-09 | | | | | | | | | | | | +| V5-10 | | | | | | | | | | | | +| V5-11 | | | | | | | | | | | | +| V5-12 | | | | | | | | | | | | +| V5-13 | | | | | | | | | | | | +| V5-14 | | | | | | | | | | | | +| V5-15 | | | | | | | | | | | | + +Anotar el valor medido cuando esté fuera de rango (ej. "TP7 = 2.9 V"). + +--- + +## Anexo A — Notas de ingeniería (no requeridas para el técnico) + +Verificado contra `hbox-watchdog-v5.kicad_pcb` / `.kicad_sch` (netlist, 15-Sep-2026): + +- **Alimentación por J11:** VBUS → D13 (SS34) → `/LDO_IN` → U17 AMS1117 → `/3V3`. `/SYS5V` + queda apagado, por lo tanto U12 y `/3V3_ETH` (W5500) quedan apagados. R100/R101 (5.1 k en CC) + presentes: un cable C-a-C entrega VBUS. +- **DFU:** BOOT0 = pin 60 de U16, pull-down R98 10 k, SW2 lo lleva a 3V3. `/BOOT1_STRAP` + (PB2, pin 28) fijo a GND por R99 10 k. HSE = Y3 25 MHz en PH0/PH1 (el bootloader ROM lo + requiere, AN2606). USB en PA11/PA12 (pines 44/45) con ESD D14/D15. +- **SWD:** TP3 SWDIO (PA13), TP4 SWCLK (PA14), TP5 NRST, TP6 GND, TP7 3V3. +- **Colisión firmware v3.0.3 ↔ v5 (única encontrada):** `PIN_BATLED1..4` = PB12–PB15 (pines + 33–36) = `/ETH_CS`, `/ETH_SCK`, `/ETH_MISO`, `/ETH_MOSI` (SPI2 del W5500). PB14 es salida del + W5500. El indicador de batería en v5 está en U13 PCF8574 (A0–A2 a GND → dirección I²C + 0x20, salidas P0–P3 → RB1–RB4 120 R → LEDs). Todo el resto del mapa de pines de v3 coincide + con v5: PA0 BAT_SENSE, PA1 PWR_CTRL, PA2/PA3 GNSS, PA4 5V_SENSE, PA5 IGN_SENSE, PA6 FAN_PWM, + PA8 CHRG_EN, PA9/PA10 USART1, PB0 EXT_LED, PB1 NTC, PB3 CHRG_STAT, PB4 CHRG_FAULT, + PB5 BYP_CTRL, PB6/PB7 I²C1, PC13 LED (activo bajo, R102 1 k a 3V3), PB10 tach = NC. +- **Pines de v5 que v3 no conoce (firmware v5 debe manejarlos):** PC0 `/ETH_INT`, + PA15 `/ETH_RST` (sin pull-up: flota si el MCU no lo maneja), PB8 `/SER_IRQ` (SC16IS752), + PC14/PC15 LSE 32.768 kHz (Y4). `/SER_RSTn` sí tiene pull-up R80 10 k. +- **Cristales (BOM = maestro):** Y2 = C2238 X49SM36864MSD2SC-1 = **3.6864 MHz** para el + SC16IS752 (`XTAL_FREQ 3686400`); el campo "1.8432MHz" del esquemático/BOM es un error de + etiqueta. Y1 (W5500) y Y3 (HSE del MCU) = C14872 X49SM25MSD2SC = **25 MHz**, confirmados contra el BOM de ensamble en JLCPCB. Y4 = 32.768 kHz LSE. +- **Estado del archivo KiCad vs tarjetas fabricadas:** el `.kicad_pcb` vivo tiene 35 huellas + movidas después del pedido (commits 24-Ago y 07-Sep: reubicación de la zona Ethernet/DFU + J10/U11/U12/Y1/C90–C103/J11, D14–D16, R20, C101). La netlist no cambió. La referencia + física de este lote es `production/HBOX_v5_PROD.zip` (22-Ago). En las tarjetas recibidas + D14–D16 están junto al MCU, no junto a J11. +- **Buck del ventilador U2 se habilita solo:** `/EN_FAN` = divisor Ren1 100 k / Ren2 20 k desde + `/24V` (≈4 V con 24 V de entrada), no depende del MCU → la prueba 4b es válida con chip virgen. + `/FAN_RET` es el lado bajo conmutado por Q2 (gate desde PA6): con MCU virgen queda abierto. +- **Objetivo de compilación del firmware v5:** `STMicroelectronics:stm32:GenF4:pnum=GENERIC_F411RETX` + (no `BLACKPILL_F411CE`), `HSE_VALUE=25000000` con `SystemClock_Config` explícito en HSE para + que el USB CDC tenga reloj exacto.