hbox-docs/docs/descargas/index.md

22 KiB
Raw Blame History

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

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 y manda la telemetría en dos líneas cortas; está publicada solo para prueba de banco (abajo). Detalle: notas de versión.

!!! warning "0.6.2 EN PRUEBA DE BANCO (30-sep): solo para ingeniería y el banco, no flashear en campo" El gobernador de 0.6.1 con la telemetría arreglada: en banda el $PHLG va con los campos 1–24 y una línea nueva, $PHCG, lleva el resto (fuente, uptime y estado del gobernador); las dos de 100 caracteres o menos. Tecla X: prueba del largo de línea que deja pasar el módem. En campo sigue 0.6.0 hasta que 0.6.2 pase el banco (H0027 primero).

Antes de flashearla, el servidor tiene que tener el `retranslator.py` con `$PHCG` (htracker, 30-sep). Con el viejo, el monitor no ve la fuente, el uptime ni el gobernador de esa unidad.

| Tarjeta | Binario de prueba | Tamaño | SHA-256 |
|---|---|---|---|
| V4 | [`prueba/hbox-tarjetaV4_0.6.2.bin`](prueba/hbox-tarjetaV4_0.6.2.bin) | 95 692 B | `ec7425ace7a43d36…` |
| V5 / V5.5 | [`prueba/hbox-v5-bringup_0.6.2.bin`](prueba/hbox-v5-bringup_0.6.2.bin) | 96 180 B | `3a183fccfbff32bc…` |

Qué probar y qué debe verse: [notas de versión → 0.6.2](notas-de-version.md#062-en-prueba). Para leer la prueba de la tecla `X`: [`prueba/phtst_report.py`](prueba/phtst_report.py) (Python 3).

!!! 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 de prueba/ en campo: son builds para el banco hasta que pasen y entren a la tabla de vigentes. - 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. El $PHLG de 29 campos crece con el tiempo encendida (up_s y rx_count ganan dígitos): ~102 caracteres al arrancar, ~108 tras unas horas, ~113 a los 12 días. 0.6.2 (en prueba) manda en banda el $PHLG con los campos 1–24 y aparte una $PHCG, las dos de 100 caracteres o menos; su tecla X mide el límite exacto.

!!! 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 prueba de banco, arriba) 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.2" - 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.2 (en prueba de banco desde el 30-sep, carpeta prueba/): el gobernador de 0.6.1; en banda $PHLG de 24 campos + $PHCG (fuente, uptime, gobernador), cada línea sola en el cable; tecla X (prueba de largo de línea). Notas de versión. - 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.
2.2 2026-09-30 0.6.2 publicada solo para prueba de banco, en prueba/ (V4 ec7425ac…, V5 3a183fcc…), con phtst_report.py; 0.6.0 sigue vigente.

Versiones anteriores en git.