hbox-docs/docs/procedimientos/v5-prueba-y-flasheo.md

15 KiB
Raw Permalink Blame History

title tags date project author version status audience
EinarBoard V5 — Prueba y flasheo por tarjeta
project-drogheda
hardware
einarboard
v5
v5.5
v5.6
bringup
testing
flasheo
procedimiento
2026-09-15 Project Drogheda Helgen Technologies 1.3 ACTIVO 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. - 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 y el acta de tarjeta V5.

!!! warning "Reglas" 1. Flashea solo el binario V5 de Descargas. 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).

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)

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.
  • 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 · valores: hoja de datos V5.6 · pinout V5.6.

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.