--- 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.3 status: ACTIVO audience: técnicos de banco --- # EinarBoard V5 — Prueba y flasheo por tarjeta !!! warning "V5.6 y V5.7: su serigrafía trae otros designadores (T43, 22-oct)" Este procedimiento usa los designadores de la V5.5 (y de la V4), los que trae su serigrafía. La V5.6 y la V5.7 llegan con los de T43 y varios nombres ahora son **otra pieza**: el USB-C de DFU es **J7** (aquí J11), el zócalo del módem es **J8/J9** (aquí J7/J8), el GX16 es **J15** (aquí P1) y el LTC4040 es **U14** (aquí U6). En una V5.6 o una V5.7, busca cada designador en la tabla de abajo antes de medir o conectar. Las notas marcadas «V5.6» ya van en la numeración nueva. ??? info "Designadores de este documento en la V5.6 y la V5.7 (61)" | Aquí (V5.5) | V5.6 | V5.7 | Pieza | |---|---|---|---| | C90 | **C23** | **C23** | 4.7uF (en la V5.5: 10uF) | | C101 | **C48** | **C48** | 22uF | | C103 | **C1** | **C1** | 100uF/6.3V | | D13 | **D8** | **D8** | SS34 | | D14 | **D7** | **D7** | PESD5V0S1BA | | D15 | **D5** | **D5** | PESD5V0S1BA | | D16 | **D6** | **D6** | PESD5V0S1BA | | D17 | **D10** | **D10** | LED C13 (blue) | | D18 | **D12** | **D12** | LED PWR (green) | | DB1 | **D17** | **D17** | LED | | DB4 | **D14** | **D14** | LED | | J7 | **J8** | **J8** | XBEE-ROW-1 (VCC/DOUT/DIN) | | J8 | **J9** | **J9** | XBEE-ROW-2 | | J9 | **J13** | **J13** | USB-C | | J10 | **J6** | **J6** | HR911105A | | J11 | **J7** | **J7** | USB-C DFU | | JP2 | **JP3** | **JP3** | F2:LFP (2-3) (en la V5.5: F2:Li-ion) | | JP3 | **JP5** | **JP5** | F1:0 | | JP4 | **JP4** | **JP4** | F0:1 | | MH4 | **MH3** | **MH3** | MountingHole_3.2mm_M3 (en la V5.5: MountingHole_3.2mm) | | MOD1 | **MOD1** | **MOD1** | simpleRTK2B-Pro on UNO female headers | | P1 | **J15** | **J15** | GX16-5 | | P2 | **J16** | — | 5V-IN-SD15B05 | | P4 | **J5** | **J5** | BATT-1S4P+NTC | | P6 | **J3** | **J3** | FAN 2-pin | | P8 | **J4** | **J4** | PANEL_LED | | P11 | **J2** | **J2** | CUTOFF-SW | | P14 | **J10** | **J10** | RGB_LED_EXT | | Q2 | **Q1** | **Q1** | AO3400A | | R20 | **R76** | — | 100k | | R80 | **R29** | **R29** | 10k | | R98 | **R35** | **R35** | 10k | | R99 | **R12** | **R12** | 10k | | R100 | **R39** | **R39** | 5.1k | | R101 | **R38** | **R38** | 5.1k | | R102 | **R40** | **R40** | 1k | | RB1 | **R66** | **R66** | 120R | | RB4 | **R55** | **R55** | 120R | | Ren1 | **R80** | — | 100k | | Ren2 | **R79** | — | 20k | | SW1 | **SW2** | **SW2** | RESET | | SW2 | **SW1** | **SW1** | BOOT0 | | TP3 | **TP3** | **TP3** | SWDIO | | TP4 | **TP5** | **TP5** | SWCLK | | TP5 | **TP4** | **TP4** | NRST | | TP6 | **TP1** | **TP1** | GND | | TP7 | **TP2** | **TP2** | 3V3 | | U2 | **U15** | — | MP1584EN | | U3 | **U6** | **U6** | SHT40-AD1B | | U4 | **U12** | **U12** | TMP102 | | U6 | **U14** | **U14** | LTC4040EUFD | | U10 | **U5** | **U5** | SC16IS752IPW | | U11 | **U2** | **U2** | W5500 | | U12 | **U9** | **U9** | MP1584EN | | U13 | **U11** | **U11** | PCF8574 | | U16 | **U3** | **U3** | STM32F411RET6 | | U17 | **U4** | **U4** | TLV1117LV33 (en la V5.5: AMS1117-3.3) | | Y1 | **Y1** | **Y1** | 25MHz | | Y2 | **Y3** | **Y3** | 3.6864MHz (en la V5.5: 1.8432MHz) | | Y3 | **Y2** | **Y2** | 25MHz | | Y4 | **Y4** | **Y4** | 32.768kHz | !!! 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. | | 1.3 | 2026-10-22 | Aviso y tabla de equivalencias para la V5.6 y la V5.7, que traen los designadores de T43 (22-oct). El cuerpo conserva la numeración de la V5.5. | Versiones anteriores en git.