Drogheda/06-Testing-Validation/2026-09-29_Drogheda_HBOX-V5_Configuracion-de-Unidad_ES_v1.0.md

275 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: HBOX V5 (V5.5 / V5.6) — Configuración de una unidad
tags: [project-drogheda, hardware, hbox, v5, v5.6, configuracion, ntrip, ethernet, rs485, rs232, bateria, procedimiento]
project: Project Drogheda
author: Helgen Technologies
date: 2026-09-29
version: 1.0
status: ACTIVO — aplica a toda unidad V5.5 / V5.6 antes de embarcar o de reinstalar
audience: técnicos de banco
---
# HBOX V5 — Configuración de una unidad (V5.5 / V5.6)
**Alcance:** unidad ensamblada (EinarBoard V5.5 o V5.6 + simpleRTK2B + 4G NTRIP Master + SD-15B + paquete de
batería + antenas) que ya pasó la [prueba final](v5-prueba-final-unidad.md). Este documento dice **qué tiene que
quedar configurado** para que la unidad sea una unidad Helgen y no solo una caja que enciende.
**Duración estimada:** 30–40 min por unidad (más si hay que esperar RTK FIX).
**Registro:** acta de ensamble (`HBOX5-Exx-Axxx-Rxxxx`) y, si se probaron Ethernet o los puertos serie,
[acta Ethernet y puertos serie](../formularios/ethernet-serie.html).
## Qué es una «unidad configurada»
Una unidad está configurada cuando cumple **las siete** filas:
| # | Elemento | Queda configurado cuando… | Dónde se verifica |
|---|---|---|---|
| 1 | Módem 4G NTRIP Master | parámetros cargados (APN, caster, mountpoint, ID de estación) y registrado en Telcel | §1 |
| 2 | simpleRTK2B (ZED-F9P) | configuración Helgen guardada en flash; llega a **RTK FIX (`fix=4`)** con cielo | §2 |
| 3 | Identidad | la unidad aparece en el monitor como **`H00xx`** con posición y columna *Salud* | §3 |
| 4 | Ethernet (si la unidad lo lleva) | enlace y espejo TCP probados en banco con el build `0.6.0-eth` | §4 |
| 5 | Puertos serie (si la unidad los lleva) | `[PASS] SC16IS752` en el POST y niveles correctos en P15/P16 | §5 |
| 6 | Paquete de batería | química correcta para la tarjeta y **JP2** en la posición que corresponde | §6 |
| 7 | Firmware y consola | versión vigente y `STAT` limpio (tabla de §7) | §7 |
!!! warning "Sin secretos"
El archivo con los parámetros reales del módem (usuario/contraseña del caster y de la APN) **no está en el
sitio ni en el repositorio**. Vive **en el servidor / con Leo**. Se pide para la unidad que se va a configurar,
se usa y **no se guarda ni se reenvía**. En este documento solo aparece la plantilla.
---
## 0. Material
| Cant. | Ítem |
|---|---|
| 1 | Laptop con terminal serie (CoolTerm / PuTTY / `screen`) a **115200**, grabando a archivo |
| 2 | Cables USB-C **con datos** |
| 1 | Fuente 24 V (o el arnés GX16 real) — ver [prueba final §0](v5-prueba-final-unidad.md) |
| 1 | Plantilla [`4G_NTRIP_HelgenSRV-NMEA.example.txt`](../descargas/4G_NTRIP_HelgenSRV-NMEA.example.txt) + el archivo **`.local.txt`** con valores reales entregado por ingeniería |
| 1 | Archivo de configuración Helgen del ZED-F9P (u-center `.txt`) — lo entrega ingeniería |
| 1 | Antena GNSS con cielo, 2 antenas LTE, SIM Telcel activa |
| — | Solo si aplica: cable Ethernet, adaptadores USB-RS485 / USB-RS232 (ver [prueba Ethernet y serie](v5-prueba-ethernet-serie.md)) |
---
## 1. Módem 4G NTRIP Master — parámetros
### 1a. Qué se carga
Los parámetros se envían como líneas `$$$AS+…` a 115200 baudios, una por una; cada una contesta `OK`.
La plantilla publicada trae **todas** las claves; los valores sensibles están en blanco:
| Clave | Qué es | En la plantilla |
|---|---|---|
| `AS+I=1111` | Entra a modo configuración | fijo |
| `AS+A` · `AS+Q` · `AS+q` | APN: host, usuario, contraseña | `<APN_HOST>` `<APN_USER>` `<APN_PASS>` |
| `AS+S` · `AS+P` | Caster NTRIP: host y puerto | `<NTRIP_CASTER_HOST>` `<NTRIP_CASTER_PORT>` |
| `AS+U` · `AS+M` | Caster: `usuario:contraseña` y mountpoint | `<NTRIP_USER>:<NTRIP_PASS>` `<NTRIP_MOUNTPOINT>` |
| `AS+B=115200` | Velocidad del puerto hacia el F9P | fijo |
| `AS+r` · `AS+h` · `AS+k=2` | Servidor secundario (monitor Helgen): IP, puerto, modo | `<SECONDARY_SERVER_IP>` `<SECONDARY_SERVER_PORT>` |
| `AS+K` | **ID de estación** → es el `H00xx` de la unidad (§3) | `<STATION_ID>` |
### 1b. Cómo se carga
1. **Módulo suelto (banco, antes del ensamble):** módem en el zócalo XBee del simpleRTK2B, terminal en el USB
**XBEE** del simpleRTK2B a 115200, enviar el `.local.txt` línea por línea — es el §3b de
[Módulos e integración](v5-modulos-integracion.md).
2. **Unidad ya ensamblada (módem en J7/J8 de la EinarBoard):** el USB-C **J9** de la tarjeta va al USB del módem
(`USB_DP/DM` → J7 pines 7/8, según netlist V5.6). Terminal en J9 a 115200 y mismo procedimiento.
<!-- VERIFICAR: que el módem enumere por J9 con la etapa encendida y acepte $$$AS+ por ese puerto; hasta hoy solo se ha configurado por el USB XBEE del simpleRTK2B -->
3. Al terminar: `$$$AS+I=1111` y leer de vuelta `AS+K`; anotar el ID en el acta.
!!! note "Sin cable en J9 durante las pruebas de batería"
J9 entrega VBUS al módulo. Con cable en J9 el módem queda alimentado por la laptop y las pruebas de batería
y de reset del módem **no valen**. Se conecta solo para configurar y se retira.
- [ ] Todas las líneas contestaron `OK` (ninguna `ERROR`).
- [ ] LED de red del módem en parpadeo lento / fijo (registrado en Telcel) en < 2 min con antenas puestas.
- [ ] `AS+K` anotado en el acta.
---
## 2. simpleRTK2B — configuración y RTK FIX
1. El módulo trae la configuración Helgen desde su acta (UART1 a 115200, UART2 a la velocidad del módem, mensajes
NMEA). Si el módulo llegó sin acta: cargarla con u-center (**Tools → Receiver Configuration → Transfer file → GNSS**),
**UBX-CFG-CFG → Save**, desconectar y reconectar: debe seguir a 115200 con `$GNGGA`.
2. En la consola del HBOX (J11, 115200), con la etapa encendida (`STAT … stack=ON`), teclear **`n`**: 20 s de
tramas `$GNGGA` con `fix=` y `sats=`.
3. Con antena al cielo y módem registrado, esperar hasta **`fix=4` = RTK FIX** (típico 1–5 min; máximo 10).
`STAT` debe decir `gga=RTK_FIX sats≥10 hdop<1.5` y el LED RGB queda **verde**.
| `fix=` | Significado | Aceptable para embarcar |
|---|---|---|
| 0 | sin fix | no |
| 1 | GPS autónomo | no (correcciones no llegan) |
| 5 | RTK FLOAT | no, salvo cielo malo documentado |
| **4** | **RTK FIX** | **sí** |
- [ ] `fix=4` alcanzado y estable 5 min. Anotar tiempo y satélites.
---
## 3. Identidad `H00xx` y registro en el monitor
- La identidad de la unidad en el monitor (**monitor.helgen.dev**, htracker) **sale del módem**: el NTRIP Master
envía una trama `$GPTXT` cuyo tercer campo es el ID de estación configurado en `AS+K`; el servidor toma ese
campo como `H00xx`. <!-- VERIFICAR: confirmar con Leo que AS+K se captura literalmente como H00xx (retranslator: parse_gptxt → parts[2]) -->
- Por eso **el `H00xx` se asigna al configurar el módem** (§1) y no cambia si se cambia la tarjeta; sí cambia si
se cambia el módem. Anotar en la etiqueta interior de la tapa: `HBOX5-Exx-Axxx-Rxxxx · H00xx`.
- Verificación: con 24 V, etapa ON y módem registrado, en ≤ 2 min el monitor muestra la fila `H00xx` con posición
a 1 Hz y la columna **Salud** (fw, `vbat`, temperaturas, `v5min`). En consola: `STAT … modoB=ON relay=… phlg_aire=…`
subiendo de 1 en 1 cada 30 s.
!!! note "Ethernet no cambia la identidad"
Por el espejo Ethernet la tarjeta manda `$PHID` (UID del MCU, fw, tarjeta, MAC). El monitor **todavía no lo usa**:
hoy la identidad sigue siendo el `$GPTXT` del módem.
- [ ] La unidad aparece en el monitor como `H00xx` con Salud. Anotar `H00xx` en el acta.
---
## 4. Ethernet (solo unidades con RJ45 en el panel)
**Lo que hay en la tarjeta:** W5500 (U11) en SPI2, RJ45 J10 con LEDs de enlace y actividad, alimentación
`3V3_ETH` desde el 5 V del sistema. **No hay PoE** (J10 pines 7/8 sin conectar): la unidad sigue necesitando
24 V. Un switch PoE ni ayuda ni estorba.
**Lo que hace el firmware (build de banco `0.6.0-eth`, `-DENABLE_ETH=1`; el binario de campo 0.6.0 NO lo incluye):**
| Parámetro | Valor por defecto | Cómo se cambia |
|---|---|---|
| Dirección propia | **DHCP**; si no hay respuesta en 4 s → estática **192.168.7.2/24** | `-DETH_DHCP=0` · `-DETH_IP=192,168,1,50` |
| Servidor (espejo TCP) | **192.168.7.1:5010**, cliente TCP, reintento cada 5 s | `-DETH_SERVER_IP=192,168,1,10` · `-DETH_SERVER_PORT=5010` |
| Qué sale por el socket | todas las NMEA válidas del F9P + cada `$PHLG` + cada `$PHEV` + `$PHID` al conectar y cada 5 min | — |
| Cuándo está activo | solo con 5 V presente (nunca en batería ni por USB); tecla **`E`** on/off | — |
!!! warning "Cambiar IP o servidor = recompilar"
Hoy la IP y el servidor son **banderas de compilación**, no parámetros de la unidad: no se cambian desde la consola
ni se guardan. Cualquier valor distinto al de banco (192.168.7.x) lo compila ingeniería y entrega un `.bin` con
su SHA-256. **No existe todavía build de campo con Ethernet.**
!!! note "Qué hace el monitor con el espejo Ethernet: nada, por ahora"
El servidor htracker no escucha ese socket. El espejo sirve para **probar el hardware en banco** (`nc -lk 5010`
en la laptop) y como camino futuro. La unidad en el puerto sigue reportando por el módem 4G.
**Prueba de banco (resumen; detalle en [prueba Ethernet y puertos serie](v5-prueba-ethernet-serie.md)):** laptop
en 192.168.7.1/24, cable directo a J10, `nc -lk 5010`; con 24 V y etapa ON debe llegar `$PHID,…` y luego NMEA.
- [ ] Ethernet probado en banco y registrado en el acta (o «no aplica: panel sin RJ45»).
---
## 5. Puertos serie P15 (RS-485) y P16 (RS-232)
**Lo que hay en la tarjeta:** UART dual SC16IS752 (U10, I²C 0x4D, cristal Y2 3.6864 MHz) → canal A a un
transceptor RS-485 (U14 SP3485) en **P15**; canal B a un MAX3232 (U15) en **P16**. Ambos son clemas Phoenix MC 1,5
de 3 vías (paso 3.5 mm).
| Conector | Pin 1 | Pin 2 | Pin 3 | Notas |
|---|---|---|---|---|
| **P15 RS-485** | **A** | **B** | **GND** | Semi-dúplex (2 hilos). **JP5** = terminación 120 Ω (R82) entre A y B |
| **P16 RS-232** | **TX** (sale del HBOX) | **RX** (entra al HBOX) | **GND** | Niveles ±5 V (MAX3232). Es un DTE |
**Regla de JP5 (terminación RS-485):** un bus RS-485 se termina **solo en sus dos extremos**. JP5 (puente de soldadura,
abierto de fábrica) se cierra únicamente si el HBOX es uno de los dos extremos del bus. En un bus de dos nodos
(HBOX + un equipo) se cierran los dos. Nunca cerrar JP5 en un nodo intermedio.
**Cruce RS-232:** el HBOX es DTE (TX es salida). Contra otro DTE (laptop, PLC con DB9 macho) se cruza:
`P16.1 TX → RXD (DB9 pin 2)` · `P16.2 RX ← TXD (DB9 pin 3)` · `P16.3 GND ↔ DB9 pin 5`. Contra un DCE (módem, equipo
con DB9 hembra) va directo.
**Cable a las clemas:** alambre 0.2–1.5 mm² (AWG 24–16), pelado 7 mm, sin estaño en la punta (o con puntera). RS-485
con par trenzado (A/B) y el GND por el mismo cable.
!!! note "Lo que el firmware hace hoy con los puertos"
Firmware 0.6.0: **solo prueba de presencia** del SC16IS752 en el POST (`[PASS] SC16IS752 0x4D ACK, SPR rd=0xA5`).
No hay tráfico de aplicación, no hay velocidad configurada y el protocolo hacia el equipo del cliente está
**por definir**. El auto-test de lazo (loopback) está planeado para **0.6.1**. Parámetros previstos de banco:
**9600 8N1** en ambos puertos <!-- VERIFICAR: velocidad y formato de banco de 0.6.1 -->.
- [ ] `[PASS] SC16IS752` en el POST de la consola.
- [ ] JP5 en la posición que pide la instalación (anotar en el acta: abierto / cerrado).
- [ ] Si se hizo la prueba con adaptadores: resultado en el [acta Ethernet y puertos serie](../formularios/ethernet-serie.html).
---
## 6. Paquete de batería — química y JP2
La química del paquete **la fija la tarjeta**, no el técnico. El LTC4040 lee la posición de **JP2** (pin F2) y con ella
decide el voltaje de flotación; si no coincide con el paquete, o no carga o sobrecarga.
| Tarjeta | Paquete | JP2 (puente de soldadura de 3 pads) | RNTB (R55) / NTC del paquete | Flotación |
|---|---|---|---|---|
| **V5.5** (lote 22-Ago, 15 pzas) | **Li-ion 18650 1S4P** | **1-2** (F2 alto = Li-ion) | 10 k / NTC 10 k | ≈ 4.0–4.1 V |
| **V5.6** (ECO 28-Sep) | **LiFePO4 alta temperatura 26650** | **2-3** (F2 bajo = LFP) | **5.6 k** / NTC B3380 | 3.50 V |
!!! danger "Cruce de química = FALLA"
- Paquete **Li-ion** en una tarjeta con **JP2 2-3** (LFP): el cargador flota a 3.50 V → el paquete nunca se llena,
autonomía de minutos.
- Paquete **LFP** en una tarjeta con **JP2 1-2** (Li-ion): el cargador intenta 4.0 V sobre una celda de 3.6 V máx →
**sobrecarga**. No embarcar.
Antes de conectar P4: **leer JP2 con lupa** (serigrafía V5.6: `JP2 = F2 (Li-ion / LFP)`) y comparar con la etiqueta
del paquete. Si no coinciden, la unidad se detiene y se avisa a ingeniería. JP2 **no** se cambia en banco.
Conexión: P4 = JST XH-3: pin 1 **BAT+**, pin 2 **GND**, pin 3 **NTC** del paquete. Medir en vacío antes de conectar:
Li-ion 3.0–4.2 V; LFP 2.8–3.6 V.
Comprobación en consola (24 V, etapa ON, > 150 s tras el arranque): `STAT … carga=PROVING` → `carga=ON … ltc=CARGANDO`
y en el monitor **🔌 CARGANDO**. `vbat` debe subir en la siguiente media hora. Detalle en
[prueba de módem en batería — caja 0.6.0](prueba-bateria-modem.md).
- [ ] Química del paquete = posición de JP2. Anotar ambas en el acta.
- [ ] `ltc=CARGANDO` visto en consola.
---
## 7. Checklist final de consola y versiones
Con 24 V + ignición, etapa ON ≥ 5 min, antena al cielo, batería conectada. Teclear **`s`** y leer la línea `STAT`:
| Campo | Debe decir | Si no |
|---|---|---|
| encabezado (tras reset) | `hbox-v5-bringup 0.6.0 built …` | otra versión → re-flashear (tabla abajo) |
| `v5=` | `5.2x–5.3x(ok)` (nunca `BAJO` ni `no`) | SD-15B ajustado a ~5.3 V; arnés |
| `v5min=` | ≥ 4.9 | riel cae con ráfaga LTE → fuente / SD-15B |
| `vbat=` | Li-ion 3.6–4.1 · LFP 3.2–3.5 <!-- VERIFICAR: rango LFP con firmware para V5.6 --> | paquete / P4 |
| `chrg=` · `ltc=` · `carga=` | `chg` · `CARGANDO` · `ON` (tras ~150 s) | ver §6 |
| `flt=` | `none` | `FAULT` → LTC4040 / NTC del paquete |
| `tair=` / `rh=` · `tbat=` · `tmcu=` | valores plausibles (< 45 °C en banco), no `n/d` | I²C: U3 / U4 |
| `i2cerr=` | `0` | soldadura U3 / U4 / U13 / U10 |
| `stack=` · `modo=` | `ON` · `AUTO` | `MAN` → teclear `A` |
| `gga=` · `sats=` | `RTK_FIX` · ≥ 10 | §2 |
| `modoB=` · `phlg_aire=` | `ON` · sube cada 30 s | K1 / módem |
| `rtcm_age=` | pocos segundos (no `rtcm=none`) | correcciones no llegan → §1 |
| `modem=` | **`vivo`** (tras la gracia de 2 min) | `SOSPECHOSO` → módem oscuro: SW4G1 y revisar |
| `rec=` | `0` sin `LIMP` | NMEA intermitente: MOD1 / UART1 |
| `eth=` (solo build -eth) | `CONECTADO ip=…` con cable; `off` sin 5 V | §4 |
**V5.6:** el firmware para V5.6 (`MODEM_EN`, `tchg`, `tcell`, `tmodem`) todavía no existe; hasta que se publique, una
V5.6 se prueba con el 0.6.0 de V5.5 y los campos nuevos no aparecen. <!-- VERIFICAR: versión y nombre del binario V5.6 cuando se publique -->
### Firmware vigente por tarjeta (29-sep-2026)
| Tarjeta | Binario | Versión | Notas |
|---|---|---|---|
| **V5** (V5.5 y, por ahora, V5.6) | `hbox-v5-bringup_0.6.0.bin` | **0.6.0** | 0.5.9 + gobernador de carga. Build `0.6.0-eth` solo banco |
| **V4** | `hbox-tarjetaV4_0.6.0.bin` | **0.6.0** | mismo sketch, `-DHBOX_BOARD_V4`; DFU solo con USB |
| **V3** (flota en campo) | `hbox-tarjetaV3_4.0.0.bin` | **4.0.0** | compilado, sin prueba de banco |
Descargas y SHA-256: [Descargas](../descargas/index.md). Un binario **nunca** se cruza de tarjeta.
- [ ] `STAT` limpio (tabla anterior) pegado en el acta junto con el encabezado de versión.
- [ ] Etiquetas exterior e interior con `HBOX5-Exx-Axxx-Rxxxx` y `H00xx`.
- [ ] Interruptor de corte (P11) en **OFF** para almacenar/embarcar.
---
## Historial de revisiones
| Versión | Fecha | Autor | Cambios |
|---|---|---|---|
| 1.0 | 2026-09-29 | Helgen Technologies | Primera versión: define «unidad configurada» para V5.5/V5.6 (4G, F9P, identidad H00xx, Ethernet, RS-485/RS-232, química/JP2, checklist de consola). |