19 KiB
| title | tags | date | project | author | version | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Descargas |
|
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.1.bin · 93 096 B · ef43a901ae9a875e… |
Compilado 28-sep, sin prueba de banco (primero H0027). 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.1) |
hbox-v5-bringup_0.6.1.bin · 93 584 B · 6fbbc583ac2415a7… |
Vigente desde 29-sep, sin prueba de banco (primero H0008). Uso: prueba y flasheo §5 y ensamble §5 |
0.6.1 CAMPO (V4 y V5): cargador con gobernador (hasta 0.5.9 estaba apagado, paquete de un solo uso) que desde 0.6.1 ya no corta la carga por las ráfagas del módem; $PHLG de 36 campos. 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.
!!! 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 cada 30 s y un $PHEV por cambio de estado, en banda por el módem (Modo B). V3 4.0.0 y V4/V5 hasta 0.6.0: 29 campos; V4/V5 0.6.1: 36 (los mismos 29 + 7 del gobernador de carga, al final). El monitor los parsea igual (retranslator.py: 20 campos base + 4 de v3 + 5 de 0.5.1 + 7 de 0.6.1, y $PHEV) y las tres se ven igual en Salud; un servidor sin el parser de 0.6.1 ignora los 7 campos nuevos.
!!! 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 (0.6.1) 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 con la media del riel ≥ 5.05 V; corta si una muestra baja de 4.70 V (DURO) o si la media de 200 ms queda bajo 4.90 V durante 1 s o baja de 4.85 V (SOSTENIDO), con enfriamiento de 60 s a 30 min; quitar el 24 V no cuenta como corte; inhibe con celda ≥ 45 °C; rearma el safety timer del LTC4040 solo entre 3.00 y 3.80 V y nunca con FALLA. En fuente débil carga por ciclos: más lento, pero el módem nunca paga. Eventos CHG_ON/CHG_SHED/CHG_OFF/CHG_RAIL/CHG_FAULT/CHG_HOT/CHG_COOL/CHG_PULSE; STAT → carga=FASE … ltc=CARGANDO|no cortes= media= duty= cargado= caida= vdda=; tecla C = veto. En el monitor, columna Energía: la fase del gobernador (espera de arranque, comprobando riel, espera tras corte…), 🔌 CARGANDO, «cargó N %» y «casi lleno». PHLG_FW = 0.6.1. 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. Qué hacía 0.6.0 y por qué se cambió: notas de versión.
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.1.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.1 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.0.bin · superseded/hbox-tarjetaV4_0.6.0.bin |
Con la ruta de 5 V justa (riel cerca de 5.0 V al cargar) el gobernador cortaba la carga en cada ráfaga del módem, porque bastaba una muestra bajo 4.90 V: la batería casi no cargaba y el monitor casi nunca mostraba 🔌 CARGANDO. Sustituida por 0.6.1 (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 CAMPO: 0.6.0 con el gobernador corregido: sin cortes por las ráfagas del módem, quitar el 24 V no cuenta como corte, prueba de la ruta de 5 V (CHG_RAIL), ADC calibrado con VREFINT; $PHLG de 36 campos. Detalle: notas de versión.
- 0.6.0 CAMPO (retirada): 0.5.9 + gobernador de carga; con la ruta de 5 V justa cortaba la carga en cada ráfaga del módem.
- 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
- STM32CubeProgrammer (Windows/macOS/Linux): https://www.st.com/en/development-tools/stm32cubeprog.html
- dfu-util (macOS:
brew install dfu-util; Linux:apt install dfu-util) - Terminal serie: CoolTerm,
screen /dev/tty.usbmodem* 115200o el monitor serie de Arduino IDE
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. |
Versiones anteriores en git.