hbox-docs/docs/descargas/index.md

20 KiB
Raw Blame History

title tags date project author version
Descargas
project-drogheda
hbox
descargas
firmware
v3
v4
v5
modem
zed-f9p
2026-09-29 Project Drogheda Helgen Technologies 2.0

Descargas

Qué Qué se le carga Cómo Sección
Tarjeta HBOX (Blackpill / EinarBoard) Firmware .bin DFU por USB Firmware
Módem 4G NTRIP Master Parámetros $$$AS+… Terminal serie por el USB XBEE Módem 4G
simpleRTK2B Pro (ZED-F9P) Configuración u-center y firmware u-blox u-center por el USB POWER+GPS ZED-F9P

Cada carga se registra en el acta de reflasheo y queda en el expediente con las capturas de antes y después.

Verifica el SHA-256

Antes de flashear. Un binario incompleto o de otra tarjeta puede dejarla inservible.

shasum -a 256 archivo.bin                          # macOS / Linux (o sha256sum)
certutil -hashfile archivo.bin SHA256              # Windows (cmd)
Get-FileHash .\archivo.bin -Algorithm SHA256       # Windows (PowerShell)

Debe coincidir carácter por carácter con SHA256SUMS.txt. Si no coincide, descarga otra vez; si sigue sin coincidir, no lo uses y avisa.

Firmware del HBOX — qué binario va en qué tarjeta

Un binario por tarjeta. El nombre lleva la tarjeta y eso manda; el número de versión no dice nada de la tarjeta (0.4.0 no es "para V4": es una versión vieja del firmware de V5).

Tarjeta MCU Código fuente Binario vigente Estado
V3 — EinarBoard 1.0, 3 unidades en campo (manual) Blackpill en zócalo (F411CE) blackpillrtkcode_v4 (4.0.0) hbox-tarjetaV3_4.0.0.bin · 64 352 B · a68a87ff… Compilado 19-sep, sin prueba de banco
V4 — hbox-watchdog-v4 (manual) Blackpill + PCF8574 · W5500 · SC16IS752 hbox_v5_bringup + board_v4.h (-DHBOX_BOARD_V4) hbox-tarjetaV4_0.6.0.bin · 88 556 B · 1458470bbdd95b49… Vigente otra vez desde el 29-sep: 0.6.1 se retiró (por qué). DFU solo con USB; puente U13-P7 → SW4G1 opcional (procedimiento V4)
V5 — hbox-watchdog-v5, lote de 15 (manual) STM32F411RET6 soldado hbox_v5_bringup (0.6.0) hbox-v5-bringup_0.6.0.bin · 89 028 B · 8a0ee4839763eae8… Vigente otra vez desde el 29-sep: 0.6.1 se retiró. Uso: prueba y flasheo §5 y ensamble §5

0.6.0 CAMPO (V4 y V5): cargador con gobernador (hasta 0.5.9 estaba apagado, paquete de un solo uso); en batería la etapa y el módem siguen encendidos y reportando igual que en 24 V (la V5.5 no arranca el módem en frío sobre el boost, ver módem en batería); ningún ciclo de etapa en batería; corte a 3.40 V; reset del MCU al volver el 5 V tras ≥ 10 s de respaldo; vigilancia del módem solo diagnóstica (modem= en STAT); teclas C/M/R. 0.5.1 fue la última embarcada antes de 0.6.0. Qué cambió en cada versión y por qué: notas de versión.

!!! danger "0.6.1 retirada (29-sep): no la flashees" Su $PHLG de 36 campos (125–131 caracteres) no pasa por el módem 4G NTRIP Master, que descarta las líneas largas: el monitor se queda sin Salud ni Energía (batería, carga, temperaturas). El gobernador de 0.6.1 sí funcionaba. 0.6.2 lleva el mismo gobernador, el $PHLG de siempre (29 campos) y el estado del gobernador en una sentencia corta aparte; se publica después de probarla en H0027. Detalle: notas de versión.

!!! warning "No se cruzan" - hbox-v5-bringup_… (F411RE soldado) en una V3 o V4: otro MCU y otro mapa de pines. La V4 usa hbox-tarjetaV4_…. - hbox-tarjetaV3_… o blackpillrtkcode_v3 en una V4 o V5: manejan los LEDs de carga en PB12–PB15, que ahí son el SPI del W5500. - Nada de superseded/: se guarda solo por trazabilidad. - Nada que no esté publicado aquí con su SHA-256. Los .bin de V3 y V4 no viven en el repositorio; se compilan, se prueban en banco y se publican (reflasheo §5).

Las tres tarjetas mandan la misma trama: $PHLG de 29 campos cada 30 s y un $PHEV por cambio de estado, en banda por el módem (Modo B). El monitor la parsea igual (retranslator.py: 20 campos base + 4 de v3 + 5 de 0.5.1, y $PHEV) y las tres se ven igual en Salud. Ninguna línea en banda puede pasar de lo que deja pasar el módem: hasta 105 caracteres está probado; las de 125 o más (el $PHLG de 0.6.1) se pierden.

!!! warning "V3 4.0.0: todavía no en unidades de campo" Compila y pasa el simulador, pero no ha corrido en una EinarBoard 1.0 real. Solo en la mesa de ingeniería hasta que se pruebe en banco (RTK-003 o RTK-006) y se quite este aviso. 4.0.0 activa Modo B por omisión (el MCU queda en línea con el enlace de correcciones), así que la primera prueba es en par: el binario publicado y uno sin Modo B sobre la misma unidad. Si el fix RTK cae al energizar K1, o v5min se hunde en ese instante, sospecha de la bobina de K1 llevando el riel al PFI del LTC4040.

```bash
arduino-cli compile --fqbn "$FQBN" --build-property "compiler.cpp.extra_flags=-DENABLE_MODOB=0" \
  --output-dir build/v4-sinB blackpillrtkcode_v4
```

Gobernador de carga (0.6.x)

No se podía encender el cargador sin más: en V5.5/V4 RS1 8 mΩ → límite de entrada del LTC4040 ≈ 3.1 A (más que los 3 A del SD-15B) y R50 825 Ω → 2.4 A de carga; paquete vacío + etapa + ráfaga LTE hunden el riel hasta el PFI del LTC4040 y la unidad entra en bucle (incidente de flota 10-ago). H0008 amaneció a 3.50 V tras una noche en batería y seguía "sin cargar" en 24 V.

El gobernador de 0.6.0 (vigente) carga solo con etapa ON en 24 V; nunca en los primeros 120 s tras boot ni tras cada STACK ON; arranca tras 30 s de riel ≥ 5.05 V; corta al instante si una muestra baja de 4.90 V, con enfriamiento de 60 s a 30 min; inhibe con celda ≥ 45 °C; rearma el safety timer del LTC4040. Con la ruta de 5 V justa (riel cerca de 5.0 V al cargar) cualquier ráfaga del módem corta la carga: la batería carga poco y el monitor casi nunca muestra 🔌 CARGANDO. Eventos CHG_ON/CHG_SHED/CHG_OFF/CHG_HOT/CHG_COOL/CHG_PULSE; STAT → carga=FASE … ltc=CARGANDO|no cortes=; tecla C = veto. El monitor muestra 🔌 CARGANDO solo con chg=1 en $PHLG. 0.6.2 (en preparación) corrige los cortes y manda el estado del gobernador al monitor (notas de versión); su prueba de banco: módem en batería §1. Si corta sin parar: ruta de 5 V débil hasta P2 (regla) o fuente sin margen de corriente (el SD-15B da 3 A; carga + etapa piden ~2.8 A). La V5.6 (RS1 10 mΩ, R50 1.5 kΩ) pide mucho menos.

Monitor con builds de ciclo

Builds con ciclo o ahorro en batería (0.5.2–0.5.8, o compilados con -DENABLE_DUTY=1) apagan el módem entre reportes: ~120–180 s cada 10 min con pwr=BATT y DUTY_SLEEP next=<s>. Para que ese silencio no cuente como caída ni dispare el correo del notifier, retranslator.py debe llevar el soporte DUTY (24-sep): despliega primero el servidor, después flashea. 0.5.9+ y la V3 4.0.0 reportan continuo en batería (el monitor muestra ⚡ sin badge de silencio).

V4 = V5 en un Blackpill

Cotejada pad por pad (hbox-watchdog-v4.kicad_pcb contra board_v5.h): mismas redes, pines, direcciones I²C (PCF8574 0x20, SHT40 0x44, TMP102 0x48, SC16IS752 0x4D), W5500 en SPI2 y K1 en PB5. Única diferencia: ETH_INT en PB2 (J1.16) en vez de PC0. Se flashea por DFU solo con USB (sin 24 V, batería desconectada); ese USB alimenta el 5 V y el W5500, cuya INTn llega a PB2 = BOOT1. Sin STM32 BOOTLOADER, se flashea la Blackpill fuera del zócalo (procedimiento V4).

Flasheo y consola (V5)

DFU por J11 (mantén SW2, pulsa y suelta SW1, suelta SW2):

dfu-util -a 0 -s 0x08000000:leave -D hbox-v5-bringup_0.6.0.bin

o STM32CubeProgrammer → USB → Connect → Download en 0x08000000. Tarjetas con cualquier versión anterior se reflashean igual. Al arrancar, la consola imprime la versión (hbox-v5-bringup 0.6.0 built …); si STAT no trae stack=, la tarjeta sigue con 0.1.1.

Consola: EVT en cada cambio (etapa, ignición, 5 V, cargador, NMEA, fix), STAT cada 5 s y $PHLG cada 10 s. l = leyenda, v = puntos de medición de la etapa RTK, P y luego Y = encender la etapa (requiere 5 V en P2).

El nombre "bring-up" viene de 0.1.x, que solo probaba la tarjeta; desde 0.4.0 es el firmware de campo de la V5. Compilación y cambios: README del firmware.

Versiones superadas

No se flashean. Sirven para identificar lo que trae una tarjeta vieja o para volver atrás si una prueba de banco lo pide.

Archivo Por qué se retiró
superseded/hbox-tarjetaV3_3.0.4.bin Lógica de campo (3.0.3) sin telemetría en banda: el monitor no ve Salud. Sustituida por 4.0.0.
superseded/hbox-v5-bringup_0.6.1.bin · superseded/hbox-tarjetaV4_0.6.1.bin No usar. Su $PHLG de 36 campos no pasa por el módem: el monitor pierde Salud y Energía. El gobernador corregido vuelve en 0.6.2 (notas de versión).
superseded/hbox-v5-bringup_0.5.9.bin · superseded/hbox-tarjetaV4_0.5.9.bin Sin cargador (paquete de un solo uso). 0.6.0 añade el gobernador y nada más.
superseded/hbox-v5-bringup_0.5.8.bin · superseded/hbox-tarjetaV4_0.5.8.bin No usar. Recovery activo en batería: el silencio del ahorro provocaba "RTK perdido" y, probablemente, un ciclo de etapa que dejaba el módem oscuro hasta un reset (noche 26/27-sep).
superseded/hbox-v5-bringup_0.5.7.bin · superseded/hbox-tarjetaV4_0.5.7.bin Despertar de batería por reset del MCU: en banco no enciende el módem en batería (brown-out del boost); solo servía al volver el 5 V.
superseded/hbox-v5-bringup_0.5.6.bin · superseded/hbox-tarjetaV4_0.5.6.bin Pulso MODEM_RST por U13-P7 (solo con puente); sin puente el módem no encendía en las ventanas y un reset en batería dejaba la etapa apagada.
superseded/hbox-v5-bringup_0.5.5.bin · superseded/hbox-tarjetaV4_0.5.5.bin No usar. UART del GNSS en alta impedancia no bastó: 3V3_MODEM queda en ~1 V y el módem no rearranca.
superseded/hbox-v5-bringup_0.5.4.bin · superseded/hbox-tarjetaV4_0.5.4.bin No usar. El ciclo de etapa al volver el 5 V no apagaba el módem (el UART del GNSS sostenía su riel): no rearrancaba sin reset.
superseded/hbox-v5-bringup_0.5.3.bin · superseded/hbox-tarjetaV4_0.5.3.bin Ventana de 2 min; al volver el 5 V el módem podía quedar en latch hasta un reset.
superseded/hbox-v5-bringup_0.5.2.bin · superseded/hbox-tarjetaV4_0.5.2.bin Primer reporte cada 10 min en batería; ventana de 90 s insuficiente para entregar la posición.
superseded/hbox-v5-bringup_0.5.1.bin · superseded/hbox-tarjetaV4_0.5.1.bin Última de campo antes del ciclo de 10 min (en batería dejaba la etapa encendida hasta vaciar el paquete).
superseded/hbox-v5-bringup_0.4.0.bin Sin $PHLG en banda. Sustituida por 0.5.1.

??? note "Historial por versión, 0.4.0 → 0.6.1" - Desde 0.4.0: AUTO de fábrica (la etapa RTK enciende sola 3 s después de ver 5 V en P2); watchdog 16 s; ventilador (política v3.0.3); recuperación de enlace (ciclo de etapa si el F9P calla 60 s; LIMP tras 3 ciclos); LEDs de carga y color de estado; corte térmico 60 °C; corte de batería 3.40 V. Anota la versión en el acta. - 0.6.1 (retirada el 29-sep): gobernador corregido, pero con un $PHLG de 36 campos que el módem descarta; el monitor se quedaba sin Salud. Ese gobernador vuelve en 0.6.2. Notas de versión. - 0.6.0 CAMPO (vigente): 0.5.9 + gobernador de carga; con la ruta de 5 V justa corta la carga en cada ráfaga del módem (lo corrige 0.6.2). - 0.5.9 CAMPO: sin ciclo ni ahorro en batería (ENABLE_DUTY 0, ENABLE_BATT_SAVER 0); ningún ciclo de etapa en batería (RECOVERY_ABORT); reset del MCU al volver el 5 V tras ≥ 10 s; un reset en batería deja la etapa apagada hasta que vuelva el 5 V; vigilancia del módem: STAT con rtcm_age= sta= rtcm_last= sag5= sagb= flat= modem=vivo|SOSPECHOSO|?, eventos MODEM_DARK/MODEM_BACK/MODEM_WATCH. Con esos números se calibra 0.5.10. - 0.5.8 CAMPO (retirada): nunca apaga el módem en batería (un módem ya encendido aguanta el paso de 24 V a batería); ráfaga de posición de ~8 s cada 10 min y $PHLG cada 3 min (SAVER_ON, DUTY_SLEEP/DUTY_WAKE, ahorro=); autonomía estimada ~30–35 h; recovery aún activo en batería. - 0.5.7: cada despertar de batería (≥ 10 min tras la última ventana) y cada regreso del 5 V es un reset del MCU (NVIC_SystemReset, igual que P10): arranque en ~4 s; se pierden uptime y contadores. Tecla R. Un reset por SW1/P10 en batería abre ventana en 60 s y P se acepta en batería con vbat ≥ 3.60 V. - 0.5.6: 3 s tras cada encendido de etapa, pulso de 500 ms al reset del módem por U13 P7 (MODEM_RST, mrst=, tecla M); requiere el puente U13 pin 12 → diodo BAT54 → SW4G1 pad 1. Con la etapa apagada PA9/PA10 en alta impedancia sin pull-up. - 0.5.5: con la etapa apagada el UART del GNSS queda en alta impedancia (PA2 sostenía el riel del simpleRTK2B y, por él, el del módem); al volver el 5 V la etapa se cicla 10 s (PWR_RETURN_CYCLE). - 0.5.2–0.5.7: en batería, ventana de reporte de 120–180 s cada 10 min (DUTY_WAKE / DUTY_SLEEP next=<s> / DUTY_SKIP / DUTY_END), ventilador y LEDs apagados en reposo; protecciones de batería (< 3.40 V) y temperatura (≥ 60 °C) por encima del ciclo. El MCU sigue despierto; el ahorro es la etapa (~2.3 W). Retirado en 0.5.8 para V5.5/V4; queda con -DENABLE_DUTY=1. - 0.5.1: $PHLG suma up_s, pwr (VEH/BATT), v5min/vbat_min (mínimos de la ventana de 30 s; cazan hundimientos LTE de 50–200 ms) y bkp_n; cada cambio de estado sale como $PHEV,<up_s>,<CODIGO>,<detalle>. Los analizadores viejos ignoran los campos extra. El 18-sep se reportó que la etapa no encendía; resuelto el 19-sep: 0.5.1 ensambla, enciende y reporta completo. - 0.5.0: Modo B. 10 s después de que habla el F9P, el MCU conmuta K1 y $PHLG viaja cada 30 s con el NMEA (STAT … modoB=ON relay=… phlg_aire=…, sube 1 cada 30 s). Si el MCU falla, K1 vuelve al paso directo. B lo bloquea para pruebas. Sin 5 V la etapa sigue desde la batería (EVT BACKUP inicio / BACKUP fin con duración y tramas); se apaga con vbat < 3.40 V o > 50 °C. A regresa a MANUAL.

Parámetros del módem 4G NTRIP Master

Se envían por el USB XBEE del simpleRTK2B a 115200, línea por línea (solo las que empiezan con $$$AS+); cada una contesta OK.

4G_NTRIP_HelgenSRV-NMEA.example.txt: plantilla con todas las claves y los valores sensibles en blanco.

Clave Configura 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 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 = H00xx de la unidad; se anota en el acta <STATION_ID>

!!! warning "Credenciales" El archivo con los valores reales (usuario y contraseña del caster y de la APN) no está en el sitio ni en el repositorio: sin secretos en el repo, nunca. Pídelo a ingeniería para la unidad que vas a configurar; llega por canal directo, se usa y no se guarda ni se reenvía. Nunca lo escribas en un acta.

Firmware y configuración del simpleRTK2B Pro (ZED-F9P)

Qué Origen Estado
Firmware del ZED-F9P Estándar de u-blox, serie HPG: u-blox → ZED-F9P → Documentation & resources → Firmware Update. Se carga con u-center (solo Windows) a 115200 Disponible en u-blox
Configuración Helgen (.txt de u-center) Nuestra: UART1 a 115200 (lo que lee la tarjeta), UART2 a la velocidad del módem, mensajes NMEA Pendiente de publicar

!!! warning "No actualices el firmware del F9P sin razón concreta" Las correcciones llegan por el módem, no por el GNSS, y en las capturas de junio los receptores estaban sanos. Actualizar es solo-Windows, puede dejar el receptor a medias y borra la configuración. Anota la versión (u-center → View → Messages → UBX-MON-VER) y déjala. Solo se actualiza por un arreglo de u-blox a un problema que estemos viendo, en banco, nunca en una unidad instalada.

Leer o cargar la configuración: u-center → Tools → Receiver Configuration. Después, guarda en FLASH y reconecta para confirmar que sobrevive al reinicio; una configuración solo en RAM se pierde al primer corte (así se perdió tiempo en junio).

Publicar un firmware nuevo

Lista y comandos: reflasheo §5.

Herramientas

Historial de revisiones

Versión Fecha Cambios
1.x 2026-09-19 → 2026-09-27 Cada binario nuevo (0.4.0 → 0.6.0) añadió su nota.
1.8 2026-09-29 Historial por versión en cajas plegables; enlaces a manuales.
1.9 2026-09-29 Edición breve. Una sola tabla de binarios vigentes; verificación SHA-256 con encabezado propio; tabla de parámetros del módem completa (antes en la configuración de la unidad); lista de publicación → reflasheo §5.
2.0 2026-09-29 Firmware 0.6.1 vigente en V4 y V5; 0.6.0 a superseded/; $PHLG de 36 campos; gobernador 0.6.1; notas de versión.
2.1 2026-09-29 0.6.1 retirada (su $PHLG no pasa por el módem): 0.6.0 vigente otra vez; 0.6.2 en preparación.

Versiones anteriores en git.