--- title: "EinarBoard V5 — Prueba y flasheo por tarjeta" tags: [project-drogheda, hardware, einarboard, v5, v5.5, v5.6, bringup, testing, flasheo, procedimiento] date: 2026-09-15 project: Project Drogheda author: Helgen Technologies version: 1.2 status: ACTIVO audience: técnicos de banco --- # EinarBoard V5 — Prueba y flasheo por tarjeta !!! abstract "Para quién · Cuándo · Tiempo · Necesitas" - Para quién: técnicos de banco. - Cuándo: al recibir cada tarjeta V5.5 o V5.6 desnuda, antes de montar módulos. Siguiente paso: [Módulos RTK y 4G](v5-modulos-integracion.md). - Tiempo: 15–20 min por tarjeta. - Necesitas: multímetro, fuente de banco 0–30 V con límite de corriente, cable USB-C con datos, laptop con STM32CubeProgrammer o `dfu-util`, jumper 2.54 mm para P11, lupa, el binario V5 vigente de [Descargas](../descargas/index.md) y el [acta de tarjeta V5](../formularios/v5.html). !!! warning "Reglas" 1. Flashea solo el binario V5 de [Descargas](../descargas/index.md). `blackpillrtkcode_v3` (v3.0.3) maneja PB12–PB15 como LEDs de batería; en la V5 esos pines son el SPI del W5500. 2. Sin batería en P4, sin simpleRTK2B en MOD1 y sin módem en J7/J8. 3. Fuente siempre con límite de corriente. Si llega al límite o algo se calienta: apaga, marca FALLA y pasa a la siguiente tarjeta. ## Referencias en la tarjeta | Ref. | Qué es | Uso | |---|---|---| | J11 | USB-C DFU (junto a SW1/SW2 y J10) | Alimentar el MCU y flashear | | J9 | USB-C del módem | No se usa aquí | | SW1 / SW2 | RESET / BOOT0 | Reinicio y modo DFU | | TP7 / TP6 | 3V3 / GND | Riel de 3.3 V | | TP3 / TP4 / TP5 | SWDIO / SWCLK / NRST | Solo si ingeniería pide ST-Link | | P2 | Entrada 5 V (SD-15B) | Riel de 5 V | | P1 | Entrada 24 V (GX16): pin 1 = +24 V, pin 2 = GND | Buck del ventilador | | P11 | CUTOFF-SW (2 pines) | Puentear para pasar MAIN5V → SYS5V | | P6 | Ventilador: pin 1 = +5V_FAN, pin 2 = retorno conmutado | Salida del buck (pin 1 contra GND) | | MOD1 | Zócalo UNO del simpleRTK2B, pin "5V" | La etapa RTK debe arrancar apagada | | D18 / D17 | LED verde PWR / LED azul C13 | 3.3 V presente / controlado por firmware | | U17 | AMS1117 3.3 V | Temperatura al tacto | | Y2 | Cristal 3.6864 MHz (marcado `3.6864` o `36.864`) | Visual | ## 1. Inspección visual (sin energía, 3 min) - [ ] Sin puentes de soldadura en U16 (MCU), U11 (W5500), U10 (SC16IS752) y U6 (LTC4040). - [ ] Y2 marcado `3.6864` o `36.864`; Y1 y Y3 `25.000`; Y4 el pequeño de 32.768 kHz. Y2 marcado `1.8432`: anota y avisa a ingeniería. - [ ] SW1 y SW2 presentes y con clic. - [ ] J11, J9 y J10 (RJ45) asentados, sin pines doblados. - [ ] JP2, JP3 y JP4 presentes; no cambies su posición. - [ ] Sin componentes faltantes ni marcas de quemado. ## 2. Cortos a tierra (sin energía, 2 min) Multímetro en ohms, no en modo continuidad. Punta negra en TP6. Unos cientos de ohms que suben es normal (capacitores cargando); una lectura fija de 0–20 Ω es corto. | Punto | Riel | Esperado | < 100 Ω | |---|---|---|---| | TP7 | 3V3 | > 1 kΩ | FALLA: corto en 3.3 V | | P2 pin 1 | VEH5V | > 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 | > 1 kΩ | FALLA | ## 3. Riel de 3.3 V por USB (J11, 3 min) El USB en J11 energiza solo el MCU y la lógica de 3.3 V; el 5 V del sistema queda apagado. 1. Conecta USB-C en J11 a la laptop o a un cargador. 2. Mide: | Punto | Esperado | |---|---| | D18 | Encendido | | TP7 contra TP6 | 3.20–3.40 V | | U17 al tacto tras 1 min | Tibio. Si quema: FALLA | | D17 | Apagado o fijo (chip virgen) | 3. D18 apagado o TP7 < 3.0 V: desconecta y marca FALLA (3V3). 4. Deja el USB conectado. ## 4. Rieles de 5 V y 24 V con fuente (5 min) Con el MCU virgen sus pines quedan en alta impedancia y la etapa RTK debe quedar apagada; eso es lo que se verifica. ### 4a. 5 V (P2) 1. Fuente a 5.0 V, límite 500 mA, salida apagada. 2. Jumper en P11. 3. Fuente a P2 (pin 1 = +5 V, pin 2 = GND). El USB puede quedarse en J11. 4. Enciende y mide: | Punto | Esperado | |---|---| | Corriente | < 300 mA (típico 100–250 mA) | | P11 pin 1 (MAIN5V) | 4.8–5.1 V | | P11 pin 2 (SYS5V) | 4.8–5.1 V | | TP7 | 3.20–3.40 V | | MOD1 pin "5V" (SW_5V) | 0 V. Con 5 V: FALLA (la etapa RTK no arranca apagada) | | U6 y U12 al tacto | Tibios | 5. Apaga la fuente y desconecta P2. ### 4b. 24 V → buck del ventilador (P1) 1. Fuente a 24.0 V, límite 200 mA, salida apagada. 2. Fuente a P1 (pin 1 = +24 V, pin 2 = GND). Pin 3 (ignición) sin conectar. 3. Enciende y mide: | Punto | Esperado | |---|---| | Corriente | < 50 mA (sin ventilador) | | P6 pin 1 contra TP6 | 4.9–5.1 V (no midas contra P6 pin 2: es el lado conmutado) | | U2 al tacto | Frío o tibio | 4. Apaga y desconecta P1. El jumper de P11 puede quedarse. Valor fuera de rango: marca FALLA con la sección (4a o 4b) y el valor medido. ## 5. Flasheo por USB DFU (J11, 5 min) Solo tarjetas que pasaron 1–4. El firmware de campo se flashea igual. Verifica el SHA-256 del binario antes ([Descargas](../descargas/index.md)). ### 5a. Modo DFU 1. Solo el USB en J11 (nada en P1/P2). 2. Mantén SW2 (BOOT0). 3. Pulsa y suelta SW1 (RESET). 4. Suelta SW2. 5. La laptop detecta `STM32 BOOTLOADER` (ID `0483:DF11`). Si no aparece: cambia el cable (muchos son solo de carga) y repite con SW2 presionado al soltar SW1. El chip virgen solo entra al bootloader con esta secuencia. ### 5b. STM32CubeProgrammer 1. Selector de conexión: USB. Refresca hasta ver `USB1` y pulsa Connect. 2. Pestaña Erasing & Programming. 3. File path: el `.bin` descargado. Start address: `0x08000000`. 4. Marca Verify programming y Run after programming. 5. Start Programming. Espera "File download complete" y "Verify… successful". 6. Disconnect. ### 5c. `dfu-util` (macOS/Linux) ```bash dfu-util -l # debe listar [0483:df11] dfu-util -a 0 -s 0x08000000:leave -D hbox-v5-bringup_X.Y.Z.bin ``` ### 5d. Verificación 1. Abre un terminal serie a 115200 baud (CoolTerm, `screen` o el monitor de Arduino) y pulsa SW1. 2. En los primeros 5 s: | Punto | Esperado | |---|---| | D17 y LED de panel en P8 | Parpadean a 1 Hz | | DB1 → DB4 | Encienden en secuencia una vez y se apagan; luego R, G, B en P14 si hay LED RGB | | Laptop | Puerto serie nuevo (`STMicroelectronics Virtual COM Port` / `usbmodem…`) | | Terminal | Encabezado `hbox-v5-bringup X.Y.Z` con la versión flasheada (otra versión: reflashea), líneas `[PASS]` y al final `>>> BOARD OK` | 3. Si abriste el terminal tarde, teclea `r`: repite las pruebas y la secuencia de LEDs. 4. Reporte esperado: ``` [PASS] CLOCK_HSE SYSCLK=96000000 Hz HSE_RDY=1 PLL_SRC=HSE ← cristal Y3 y USB [PASS] LSE_Y4 Y4 32.768k LSERDY=1 ← cristal Y4 [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 ← confirmas que viste DB1→DB4 [PASS] ADC vbat=0.00 v5=0.00 ntc=..C mcu=..C ← vbat y v5 en 0 con solo USB [PASS] DIN ign=0 chrg=.. fault=.. ser_irq=1 eth_int=.. ---- RESULT: 12 PASS / 0 FAIL ---- >>> BOARD OK ``` Después sale una línea `STAT …` cada 2 s. Sin módulos ni batería, la etapa RTK y el cargador no encienden. 5. Cualquier `[FAIL]`: anota la línea completa y marca FALLA (POST). LED azul sin parpadear: repite 5a–5b una vez; si vuelve a fallar, FALLA (FLASH). ## 6. Cierre - [ ] Desconecta el USB. - [ ] Etiqueta la tarjeta con su serie (V5-01 … V5-15) y la fecha, cerca de MH4, sin tapar serigrafía. - [ ] Llena el [acta de tarjeta V5](../formularios/v5.html). - [ ] Guarda en bolsa antiestática. Las FALLA van en bolsa aparte con nota del punto que falló. ## 7. Hoja de respaldo en papel El registro oficial es el acta. Anota el valor medido cuando esté fuera de rango (ej. "TP7 = 2.9 V"). | 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 | | | | | | | | | | | | Conectores y LEDs: [manual V5](../manuales/manual-tarjeta-V5.md) · valores: [hoja de datos V5.6](../hardware/v56-datasheet.md) · [pinout V5.6](../hardware/v56-pinout.md). ## Anexo — notas de ingeniería 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` apagado, así que U12 y `/3V3_ETH` (W5500) también. 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 a 3V3. `/BOOT1_STRAP` (PB2, pin 28) 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. - Única colisión v3.0.3 ↔ v5: `PIN_BATLED1..4` = PB12–PB15 (pines 33–36) = `/ETH_CS`, `/ETH_SCK`, `/ETH_MISO`, `/ETH_MOSI` (SPI2 del W5500); PB14 es salida del W5500. En v5 el indicador de batería está en U13 PCF8574 (A0–A2 a GND → 0x20, P0–P3 → RB1–RB4 120 R → LEDs). El resto del mapa v3 coincide: 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 v5 que v3 no conoce: PC0 `/ETH_INT`, PA15 `/ETH_RST` (sin pull-up: flota si el MCU no lo maneja), PB8 `/SER_IRQ`, PC14/PC15 LSE (Y4). `/SER_RSTn` tiene pull-up R80 10 k. - Cristales (BOM = maestro): Y2 = C2238 X49SM36864MSD2SC-1 = 3.6864 MHz para el SC16IS752 (`XTAL_FREQ 3686400`); "1.8432MHz" en esquemático/BOM es error de etiqueta. Y1 (W5500) y Y3 (HSE) = C14872 X49SM25MSD2SC = 25 MHz, confirmados contra el BOM de JLCPCB. Y4 = 32.768 kHz. - KiCad vs tarjetas fabricadas: el `.kicad_pcb` vivo tiene 35 huellas movidas después del pedido (commits 24-ago y 07-sep: zona Ethernet/DFU J10/U11/U12/Y1/C90–C103/J11, D14–D16, R20, C101); la netlist no cambió. Referencia física del lote: `production/HBOX_v5_PROD.zip` (22-ago). En las tarjetas recibidas D14–D16 están junto al MCU, no junto a J11. - U2 se habilita solo: `/EN_FAN` = divisor Ren1 100 k / Ren2 20 k desde `/24V` (≈4 V con 24 V), sin MCU; por eso 4b vale con chip virgen. `/FAN_RET` es el lado bajo conmutado por Q2 (gate en PA6): abierto con MCU virgen. - Compilación 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. ## Historial de revisiones | Versión | Fecha | Cambios | |---|---|---| | 1.0 | 2026-09-15 | Primera versión (lote de 15, firmware 0.5.1). | | 1.1 | 2026-09-29 | Encabezado uniforme, nota de binario vigente, enlaces a acta y manuales. | | 1.2 | 2026-09-29 | Edición breve: sin tabla de material duplicada; binario genérico `X.Y.Z` en lugar de 0.5.1. | Versiones anteriores en git.