168 lines
18 KiB
Markdown
168 lines
18 KiB
Markdown
---
|
||
title: "Descargas"
|
||
tags: [project-drogheda, hbox, descargas, firmware, v3, v4, v5, modem, zed-f9p]
|
||
date: 2026-09-27
|
||
project: Project Drogheda
|
||
author: Helgen Technologies
|
||
version: "1.9"
|
||
---
|
||
|
||
# Descargas
|
||
|
||
| Qué | Qué se le carga | Cómo | Sección |
|
||
|---|---|---|---|
|
||
| Tarjeta HBOX (Blackpill / EinarBoard) | Firmware `.bin` | DFU por USB | [Firmware](#firmware-del-hbox-que-binario-va-en-que-tarjeta) |
|
||
| Módem 4G NTRIP Master | Parámetros `$$$AS+…` | Terminal serie por el USB XBEE | [Módem 4G](#parametros-del-modem-4g-ntrip-master) |
|
||
| simpleRTK2B Pro (ZED-F9P) | Configuración u-center y firmware u-blox | u-center por el USB POWER+GPS | [ZED-F9P](#firmware-y-configuracion-del-simplertk2b-pro-zed-f9p) |
|
||
|
||
Cada carga se registra en el [acta de reflasheo](../formularios/reflasheo.html) y queda en el [expediente](../unidad.html) 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.
|
||
|
||
```bash
|
||
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`](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](../manuales/manual-tarjeta-V3.md)) | Blackpill en zócalo (F411CE) | `blackpillrtkcode_v4` (4.0.0) | [`hbox-tarjetaV3_4.0.0.bin`](hbox-tarjetaV3_4.0.0.bin) · 64 352 B · `a68a87ff…` | Compilado 19-sep, sin prueba de banco |
|
||
| V4 — `hbox-watchdog-v4` ([manual](../manuales/manual-tarjeta-V4.md)) | Blackpill + PCF8574 · W5500 · SC16IS752 | `hbox_v5_bringup` + `board_v4.h` (`-DHBOX_BOARD_V4`) | [`hbox-tarjetaV4_0.6.0.bin`](hbox-tarjetaV4_0.6.0.bin) · 88 556 B · `1458470bbdd95b49…` | Compilado 27-sep, sin prueba de banco. DFU solo con USB; puente U13-P7 → SW4G1 opcional ([procedimiento V4](../procedimientos/v4-prueba-fw-0.5.6.md)) |
|
||
| V5 — `hbox-watchdog-v5`, lote de 15 ([manual](../manuales/manual-tarjeta-V5.md)) | STM32F411RET6 soldado | `hbox_v5_bringup` (0.6.0) | [`hbox-v5-bringup_0.6.0.bin`](hbox-v5-bringup_0.6.0.bin) · `8a0ee4839763eae8…` | Vigente desde 27-sep, sin prueba de banco. Uso: [prueba y flasheo §5](../procedimientos/v5-prueba-y-flasheo.md) y [ensamble §5](../procedimientos/v5-ensamble.md) |
|
||
|
||
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](../procedimientos/prueba-bateria-modem.md#3-hallazgos-2527-sep)); 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.
|
||
|
||
!!! 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](../procedimientos/reflasheo-unidades.md#5-para-ingenieria-generar-y-publicar-un-binario)).
|
||
|
||
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.
|
||
|
||
!!! 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.0)
|
||
|
||
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 al PFI 4.60 V 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 carga solo con etapa ON en 24 V; nunca en los primeros 120 s tras boot o STACK ON; arranca tras 30 s de riel ≥ 5.05 V; corta al instante bajo 4.90 V con enfriamiento de 60 s a 30 min; inhibe con celda ≥ 45 °C; rearma el safety timer del LTC4040. En fuente débil carga por ciclos: más lento, pero el módem nunca paga. 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 (columna Energía) solo con `chg=1` en `$PHLG`. `PHLG_FW` = `0.6.0` (sin "-fm"). Prueba de banco: [módem en batería §1](../procedimientos/prueba-bateria-modem.md#1-cargador-060). Si corta sin parar: V5.6 (`RS1` 10 mΩ, `R50` 1.5 kΩ) o fuente de 4 A.
|
||
|
||
### 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](../procedimientos/v4-prueba-fw-0.5.6.md)).
|
||
|
||
### Flasheo y consola (V5)
|
||
|
||
DFU por J11 (mantén SW2, pulsa y suelta SW1, suelta SW2):
|
||
|
||
```bash
|
||
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. La primera línea tras reset dice la versión (`hbox-v5-bringup 0.6.0 built …`); si `STAT` no termina en `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](hbox-v5-bringup-README.md).
|
||
|
||
### 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`](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.5.9.bin`](superseded/hbox-v5-bringup_0.5.9.bin) · [`superseded/hbox-tarjetaV4_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-v5-bringup_0.5.8.bin) · [`superseded/hbox-tarjetaV4_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 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-v5-bringup_0.5.7.bin) · [`superseded/hbox-tarjetaV4_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-v5-bringup_0.5.6.bin) · [`superseded/hbox-tarjetaV4_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-v5-bringup_0.5.5.bin) · [`superseded/hbox-tarjetaV4_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-v5-bringup_0.5.4.bin) · [`superseded/hbox-tarjetaV4_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-v5-bringup_0.5.3.bin) · [`superseded/hbox-tarjetaV4_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-v5-bringup_0.5.2.bin) · [`superseded/hbox-tarjetaV4_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-v5-bringup_0.5.1.bin) · [`superseded/hbox-tarjetaV4_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`](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.0"
|
||
- 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.0 CAMPO: 0.5.9 + gobernador de carga (arriba).
|
||
- 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`](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](https://www.u-blox.com/en/product/zed-f9p-module). 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](../procedimientos/reflasheo-unidades.md#5-para-ingenieria-generar-y-publicar-un-binario).
|
||
|
||
## 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* 115200` o 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. |
|
||
|
||
Versiones anteriores en git.
|