- contenido curado desde Drogheda via scripts/sync-docs.sh (procedimientos de banco, montaje/arneses, diagnostico remoto, guias git) - scripts/deploy.sh: mkdocs build --strict + rsync al servidor Helgen - README con setup de nginx + htpasswd para acceso privado de tecnicos Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YJ4eAB6zjQT49RVwpgfKdt
312 lines
15 KiB
Markdown
312 lines
15 KiB
Markdown
---
|
||
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.
|