diff --git a/docs/descargas/SHA256SUMS.txt b/docs/descargas/SHA256SUMS.txt index 0c50b1e..3b05072 100644 --- a/docs/descargas/SHA256SUMS.txt +++ b/docs/descargas/SHA256SUMS.txt @@ -1,4 +1,5 @@ -035ebeb348461765f099341603a9e99b94512f8477509efb78aa7caf953f4c2f hbox-tarjetaV3_3.0.4.bin a68a87ff1f6b34a8284e9e5e32c95da7bb8d8adc071c5fd64412a3e744e46b28 hbox-tarjetaV3_4.0.0.bin -a8de74b3d7768e9d5656ae0bff05475445c0cd2599ecfdc4ab081e517ed3d6ef hbox-v5-bringup_0.4.0.bin +4528187f9d675bca8114583d44eccf4d2149d847f7e5fc402631d8811ee39282 hbox-tarjetaV4_0.5.1.bin e1f351084e803306c376989b284ca0f9f9f1a3445e59494f8a5ff7a9652ad44c hbox-v5-bringup_0.5.1.bin +035ebeb348461765f099341603a9e99b94512f8477509efb78aa7caf953f4c2f superseded/hbox-tarjetaV3_3.0.4.bin +a8de74b3d7768e9d5656ae0bff05475445c0cd2599ecfdc4ab081e517ed3d6ef superseded/hbox-v5-bringup_0.4.0.bin diff --git a/docs/descargas/hbox-tarjetaV4_0.5.1.bin b/docs/descargas/hbox-tarjetaV4_0.5.1.bin new file mode 100755 index 0000000..32eac56 Binary files /dev/null and b/docs/descargas/hbox-tarjetaV4_0.5.1.bin differ diff --git a/docs/descargas/hbox-v5-bringup-README.md b/docs/descargas/hbox-v5-bringup-README.md index a62dd63..57f73df 100644 --- a/docs/descargas/hbox-v5-bringup-README.md +++ b/docs/descargas/hbox-v5-bringup-README.md @@ -20,6 +20,20 @@ arduino-cli compile \ and temperature line would be blank. `SystemClock_Config()` is overridden in the sketch (HSE 25 MHz → 96 MHz, USB 48 MHz) because the generic variant defaults to HSI, which is not accurate enough for USB. + +### EinarBoard v4 (socketed Blackpill) — same sketch, `board_v4.h` +The v4 board is this design on a Blackpill (verified pad-by-pad against `hbox-watchdog-v4.kicad_pcb`); only +`ETH_INT` moves to **PB2**. Build with the Blackpill variant and the board switch: +```bash +arduino-cli compile \ + --fqbn "STMicroelectronics:stm32:GenF4:pnum=BLACKPILL_F411CE,usb=CDCgen,xserial=generic,rtlib=nanofp" \ + --build-property "build.extra_flags=-DHBOX_BOARD_V4" \ + --output-dir out-v4 hbox_v5_bringup +mv out-v4/hbox_v5_bringup.ino.bin release/hbox-tarjetaV4_0.5.1.bin +``` +PB2 is BOOT1 on the F411: enter DFU with **USB only** (W5500 unpowered) so INTn cannot hold BOOT1 high. +The first console line must read `board=EinarBoard v4 (HBOX v4)`. + ## Flash (DFU, J11) Hold **SW2** (BOOT0) → tap **SW1** (RESET) → release SW2 → device `0483:DF11` appears. ```bash diff --git a/docs/descargas/index.md b/docs/descargas/index.md index 63804ba..a9fd677 100644 --- a/docs/descargas/index.md +++ b/docs/descargas/index.md @@ -10,7 +10,7 @@ descargar nada, ubica cuál vas a tocar: | Qué | Qué se le carga | Cómo | Dónde está | |---|---|---|---| -| **Tarjeta HBOX** (Blackpill / EinarBoard) | Firmware `.bin` | DFU por USB | [§ Firmware del HBOX](#firmware-del-hbox-por-generacion-de-tarjeta) | +| **Tarjeta HBOX** (Blackpill / EinarBoard) | Firmware `.bin` | DFU por USB | [§ Firmware del HBOX](#firmware-del-hbox-que-binario-va-en-que-tarjeta) | | **Módem 4G NTRIP Master** | Archivo de **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) | @@ -23,29 +23,47 @@ Cada carga se registra en el **[acta de reflasheo](../formularios/reflasheo.html ## Firmware del HBOX — qué binario va en qué tarjeta -**La versión del firmware no dice nada de la tarjeta.** `0.3.0` no es "para V3" ni `0.4.0` "para V4": -son versiones viejas del firmware de **V5**. El binario lleva la tarjeta en el nombre y eso es lo que manda. +**Regla: un binario por tarjeta.** La versión del firmware no dice nada de la tarjeta (`0.4.0` no es +"para V4": es una versión vieja del firmware de V5). El binario lleva la tarjeta en el nombre y eso es lo que manda. -| Tarjeta | MCU | Firmware (código) | Binario vigente | -|---|---|---|---| -| **V3** — EinarBoard 1.0, las 3 unidades en campo | Blackpill en zócalo (F411CE) | `blackpillrtkcode_v3` · `_v4` | [`hbox-tarjetaV3_3.0.4.bin`](hbox-tarjetaV3_3.0.4.bin) ⚠ sin prueba de banco | -| **V3** con telemetría en banda | Blackpill en zócalo | `blackpillrtkcode_v4` (4.0.0) | [`hbox-tarjetaV3_4.0.0.bin`](hbox-tarjetaV3_4.0.0.bin) ⚠ sin prueba de banco | -| **V4** — `hbox-watchdog-v4` | Blackpill en zócalo + PCF8574 · W5500 · SC16IS752 | **ninguno** | — | -| **V5** — `hbox-watchdog-v5`, lote de 15 | STM32F411RET6 soldado | `hbox_v5_bringup` | [`hbox-v5-bringup_0.5.1.bin`](hbox-v5-bringup_0.5.1.bin) ✅ **en despliegue** | +| Tarjeta | MCU | Código fuente | **Binario vigente** | Estado | +|---|---|---|---|---| +| **V3** — EinarBoard 1.0, las 3 unidades en campo | Blackpill en zócalo (F411CE) | `blackpillrtkcode_v4` (4.0.0) | [`hbox-tarjetaV3_4.0.0.bin`](hbox-tarjetaV3_4.0.0.bin) | ⚠ compilado, **sin prueba de banco** | +| **V4** — `hbox-watchdog-v4` | Blackpill en zócalo + PCF8574 · W5500 · SC16IS752 | `hbox_v5_bringup` + `board_v4.h` | [`hbox-tarjetaV4_0.5.1.bin`](hbox-tarjetaV4_0.5.1.bin) | ⚠ compilado 22-sep, **sin prueba de banco** | +| **V5** — `hbox-watchdog-v5`, lote de 15 | STM32F411RET6 soldado | `hbox_v5_bringup` (0.5.1) | [`hbox-v5-bringup_0.5.1.bin`](hbox-v5-bringup_0.5.1.bin) | ✅ **en despliegue** | + +Los tres reportan al servidor **la misma trama**: `$PHLG` de 29 campos cada 30 s y un `$PHEV` por cada +cambio de estado, en banda por el módem (Modo B). Es exactamente lo que el monitor desplegado parsea hoy +(`retranslator.py`: 20 campos base + 4 de v3 + 5 de 0.5.1, y `$PHEV`), así que las tres tarjetas se ven +igual en la columna *Salud*. + +!!! note "V4 = la V5 en un Blackpill" + Cotejada pad por pad en `hbox-watchdog-v4.kicad_pcb` contra `board_v5.h`: mismas redes, mismos pines + del MCU, mismas direcciones I2C (PCF8574 `0x20`, SHT40 `0x44`, TMP102 `0x48`, SC16IS752 `0x4D`), mismo + W5500 en SPI2 y misma K1 en `PB5`. **Una sola diferencia:** `ETH_INT` es `PB2` (J1.16) en vez de `PC0`. + Por eso la V4 no necesita firmware propio: es `hbox_v5_bringup` compilado para Blackpill con + `board_v4.h`. Como `PB2` es `BOOT1` en el F411, la V4 **se flashea por DFU solo con USB** (sin 24 V), + para que el W5500 apagado no pueda sostener `BOOT1` en alto. !!! danger "Lo que NO se puede cruzar" - - Un binario de **V5** en una **V3 o V4**: es otro MCU (soldado vs Blackpill), otro reloj y otro mapa - de pines. Lo más probable es que ni enumere por USB. - - `blackpillrtkcode` en una **V4**: maneja los LEDs de carga en PB12–PB15, que en la V4 son el SPI - del W5500. La V4 **no tiene firmware todavía**; hasta que lo tenga, no se flashea con nada. - - `hbox-v5-bringup_0.4.0` (o 0.3.0) en cualquier tarjeta: son versiones **superadas** de V5, sin - watchdog, ventilador ni recuperación de enlace. Solo se conservan por trazabilidad. + - `hbox-v5-bringup_0.5.1.bin` (compilado para el F411RE soldado) en una **V3 o V4**: otro MCU y otro + mapa de pines. La V4 usa **su propio binario** `hbox-tarjetaV4_…`, compilado para Blackpill. + - `hbox-tarjetaV3_…` en una **V4**: maneja los LEDs de carga en PB12–PB15, que en la V4 son el SPI del W5500. + - Cualquier binario de la carpeta `superseded/`: se conservan solo por trazabilidad. + +### Versiones superadas + +No se flashean. Están para identificar lo que una tarjeta vieja pueda traer y 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) | Misma lógica que las unidades en campo (3.0.3) pero **sin telemetría en banda**: el monitor no ve nada en *Salud*. Sustituida por 4.0.0. | +| [`superseded/hbox-v5-bringup_0.4.0.bin`](superseded/hbox-v5-bringup_0.4.0.bin) | Versión de V5 sin `$PHLG` en banda. Sustituida por 0.5.1. | ### Firmware de bring-up — EinarBoard v5 | Archivo | Versión | SHA-256 | Uso | |---|---|---|---| -| [`hbox-v5-bringup_0.4.0.bin`](hbox-v5-bringup_0.4.0.bin) | 0.4.0 (2026-09-17) — **superada**, sin telemetría en banda | `a8de74b3d7768e9d…` ([SHA256SUMS](SHA256SUMS.txt)) | | [**hbox-v5-bringup_0.5.1.bin**](hbox-v5-bringup_0.5.1.bin) | **0.5.1** (2026-09-18) — **campo + Modo B / telemetría — EN PRUEBA** (reportado: etapa RTK no enciende) | `e1f351084e803306…` | Sección 5 del [procedimiento de prueba y flasheo v5](../procedimientos/v5-prueba-y-flasheo.md) y sección 5 del [ensamble](../procedimientos/v5-ensamble.md) (modo de banco `P` / `n`) | Flasheo por DFU en **J11** (mantener **SW2**, pulsar y soltar **SW1**, soltar SW2): @@ -59,7 +77,7 @@ o con **STM32CubeProgrammer** → USB → Connect → Download del `.bin` en `0x !!! success "A/B 0.4.0 vs 0.5.1 — cerrado el 19-sep" El 18-sep por la tarde se reportó que con 0.5.1 la etapa RTK no encendía. **Resuelto:** 0.5.1 ensambla, enciende y reporta telemetría completa en el monitor desplegado. **Se embarca con 0.5.1.** `0.4.0` - sigue descargable solo como referencia de versiones anteriores. + queda en `superseded/` solo como referencia. !!! note "Tarjetas ya flasheadas con cualquier versión anterior" Re-flashear con **0.5.1** por el mismo procedimiento DFU. **La primera línea de la consola tras reset dice la versión** @@ -112,13 +130,13 @@ Notas de compilación y cambios: [README del firmware de bring-up](hbox-v5-bring --output-dir build/v4-sinB blackpillrtkcode_v4 ``` -Es el firmware que gobierna la unidad en la máquina (`blackpillrtkcode_v3` / `v4`), distinto del de -bring-up del v5. Se usa en el [reflasheo en taller](../procedimientos/reflasheo-unidades.md). +Es el firmware que gobierna la unidad en la máquina, distinto del de bring-up del v5. Se usa en el +[reflasheo en taller](../procedimientos/reflasheo-unidades.md). -| Generación | Archivo | Estado | +| Tarjeta | Archivo | Estado | |---|---|---| -| **V3** — flota desplegada | [`hbox-tarjetaV3_3.0.4.bin`](hbox-tarjetaV3_3.0.4.bin) · 62 464 B · `035ebeb3…` | ⚠ compilado 19-sep, falta prueba de banco | -| **V3** con telemetría | [`hbox-tarjetaV3_4.0.0.bin`](hbox-tarjetaV3_4.0.0.bin) · 64 352 B · `a68a87ff…` | ⚠ compilado 19-sep, falta prueba de banco. El «4» es la versión del firmware, **no** la tarjeta | +| **V3** — flota desplegada | [`hbox-tarjetaV3_4.0.0.bin`](hbox-tarjetaV3_4.0.0.bin) · 64 352 B · `a68a87ff…` | ⚠ compilado 19-sep, falta prueba de banco. El «4» es la versión del firmware, **no** la tarjeta | +| **V4** | [`hbox-tarjetaV4_0.5.1.bin`](hbox-tarjetaV4_0.5.1.bin) · 79 452 B · `4528187f9d675bca…` | ⚠ compilado 22-sep, falta prueba de banco. Es 0.5.1 para Blackpill (`-DHBOX_BOARD_V4`), DFU **solo con USB** | !!! danger "Mientras diga «pendiente», no hay binario aprobado" No flashees una unidad V3 o V4 con un archivo que no esté publicado aquí con su SHA-256. Los diff --git a/docs/descargas/hbox-tarjetaV3_3.0.4.bin b/docs/descargas/superseded/hbox-tarjetaV3_3.0.4.bin similarity index 100% rename from docs/descargas/hbox-tarjetaV3_3.0.4.bin rename to docs/descargas/superseded/hbox-tarjetaV3_3.0.4.bin diff --git a/docs/descargas/hbox-v5-bringup_0.4.0.bin b/docs/descargas/superseded/hbox-v5-bringup_0.4.0.bin similarity index 100% rename from docs/descargas/hbox-v5-bringup_0.4.0.bin rename to docs/descargas/superseded/hbox-v5-bringup_0.4.0.bin diff --git a/docs/formularios/envio.html b/docs/formularios/envio.html index 560372e..3184adc 100644 --- a/docs/formularios/envio.html +++ b/docs/formularios/envio.html @@ -45,7 +45,7 @@ Acta.render({ items: [ { tipo:'check', clave:'prueba_final', req:true, txt:'Tiene acta de prueba final aprobada en el sitio (no vale "ya la probé").' }, { tipo:'check', clave:'sin_marca', req:true, txt:'Al elegir la serie arriba no apareció aviso de daño.' }, - { tipo:'texto', clave:'fw', rows:'1', req:true, txt:'Firmware que trae (línea BOOT o banner de consola)', ph:'fw=3.0.4' }, + { tipo:'texto', clave:'fw', rows:'1', req:true, txt:'Firmware que trae (línea BOOT o banner de consola)', ph:'fw=4.0.0' }, { tipo:'texto', clave:'iccid', rows:'1', req:true, txt:'ICCID de la SIM instalada' }, { tipo:'texto', clave:'imei', rows:'1', txt:'IMEI del módem' }, { tipo:'texto', clave:'id_estacion', rows:'1', txt:'ID de estación del módem (AS+K)' }, diff --git a/docs/formularios/recepcion.html b/docs/formularios/recepcion.html index 831a8f3..3f2e5b5 100644 --- a/docs/formularios/recepcion.html +++ b/docs/formularios/recepcion.html @@ -65,7 +65,7 @@ Acta.render({ items: [ { tipo:'radio', clave:'enciende', req:true, txt:'¿Enciende y el LED parpadea?', opciones:['Sí','No — LED apagado','Enciende pero se apaga'] }, - { tipo:'texto', clave:'fw', rows:'1', si:enciende, req:true, txt:'Firmware que reporta (línea BOOT)', ph:'fw=3.0.4' }, + { tipo:'texto', clave:'fw', rows:'1', si:enciende, req:true, txt:'Firmware que reporta (línea BOOT)', ph:'fw=4.0.0' }, { tipo:'check', clave:'fw_coincide', si:enciende, txt:'El firmware coincide con el del acta de envío.' }, { tipo:'radio', clave:'modem', si:enciende, txt:'LED de red del módem 4G tras 3 minutos', opciones:['Lento o fijo (registró)','Rápido (no registra)','Apagado'] }, diff --git a/docs/procedimientos/reflasheo-unidades.md b/docs/procedimientos/reflasheo-unidades.md index f0a3968..277728d 100644 --- a/docs/procedimientos/reflasheo-unidades.md +++ b/docs/procedimientos/reflasheo-unidades.md @@ -37,8 +37,8 @@ cuando debería estar cortada. | Generación de tarjeta | Binario | Estado | |---|---|---| -| **V3** — EinarBoard 1.0 (RTK-003, RTK-006, RTK-014), Blackpill | `hbox-tarjetaV3_3.0.4.bin` · `hbox-tarjetaV3_4.0.0.bin` (telemetría) | ⚠ publicados, sin prueba de banco | -| **V4** — Blackpill + PCF8574/W5500/SC16IS752 | **ninguno** | ⛔ sin firmware: `blackpillrtkcode` choca en PB12–15 con el W5500 | +| **V3** — EinarBoard 1.0 (RTK-003, RTK-006, RTK-014), Blackpill | `hbox-tarjetaV3_4.0.0.bin` | ⚠ publicado, sin prueba de banco | +| **V4** — Blackpill + PCF8574/W5500/SC16IS752 | `hbox-tarjetaV4_0.5.1.bin` | ⚠ publicado, sin prueba de banco (mismo código que V5 + `board_v4.h`) | | **V5** — MCU soldado, lote de 15 | `hbox-v5-bringup_0.5.1.bin` | ✅ en despliegue | Si el renglón dice *pendiente*, **no hay binario aprobado todavía**: el flasheo de esa generación @@ -112,10 +112,10 @@ Hoy el repositorio **no contiene binarios compilados de V3 ni de V4**. Los `.bin | Generación | Código fuente | Qué falta | |---|---|---| -| **V3** | ✅ Existe: `04-Source-Code/firmware/blackpillrtkcode_v3/` (v3.0.4) | Compilarlo y probarlo en banco | -| **V4** | ✅ Existe: `blackpillrtkcode_v4/` (v4.0.0, 1536 líneas) — deriva de v3 y agrega la telemetría en banda | Compilarlo y probarlo en banco | +| **V3** | ✅ `04-Source-Code/firmware/blackpillrtkcode_v4/` (4.0.0): la lógica de v3.0.3 + telemetría en banda | Probarlo en banco (RTK-003 / RTK-006) | +| **V4** | ✅ `hbox_v5_bringup/` (0.5.1) + `board_v4.h` — la V4 es la V5 en un Blackpill | Compilar para Blackpill y probarlo en banco | -Las dos se compilan igual. La diferencia práctica: **V3 deja la unidad como está hoy**; **V4 además hace que la unidad reporte su salud al servidor por el módem**, sin cables nuevos (K1 y `BYP_CTRL` ya están en la EinarBoard 1.0). +Un binario por tarjeta. `blackpillrtkcode_v3` (3.0.4) queda solo como referencia: es la lógica que corre hoy en campo pero sin telemetría en banda, así que el monitor no la ve. El buen dato es que V3 no depende de ninguna librería externa — solo `` y `` — así que basta el core de STM32. @@ -140,11 +140,19 @@ cd ~/Documents/Claude/Projects/Drogheda/04-Source-Code/firmware arduino-cli compile \ --fqbn "STMicroelectronics:stm32:GenF4:pnum=BLACKPILL_F411CE,usb=CDCgen,xserial=generic,rtlib=nanofp" \ --output-dir release/ \ - blackpillrtkcode_v3/ # o blackpillrtkcode_v4/ para la version con telemetria + blackpillrtkcode_v4/ -# 4. nómbralo por su versión y saca su huella -mv release/blackpillrtkcode_v3.ino.bin release/hbox-tarjetaV3_3.0.4.bin -shasum -a 256 release/hbox-tarjetaV3_3.0.4.bin | tee -a release/SHA256SUMS +# 4. nómbralo por tarjeta + versión y saca su huella +mv release/blackpillrtkcode_v4.ino.bin release/hbox-tarjetaV3_4.0.0.bin +shasum -a 256 release/hbox-tarjetaV3_4.0.0.bin | tee -a release/SHA256SUMS + +# 5. V4: mismo codigo que V5, compilado para Blackpill con board_v4.h +arduino-cli compile \ + --fqbn "STMicroelectronics:stm32:GenF4:pnum=BLACKPILL_F411CE,usb=CDCgen,xserial=generic,rtlib=nanofp" \ + --build-property "build.extra_flags=-DHBOX_BOARD_V4" \ + --output-dir release/ hbox_v5_bringup/ +mv release/hbox_v5_bringup.ino.bin release/hbox-tarjetaV4_0.5.1.bin +shasum -a 256 release/hbox-tarjetaV4_0.5.1.bin | tee -a release/SHA256SUMS ``` **El destino de tarjeta ya viene bien por omisión:** el propio `.ino` trae `TARGET_EINARBOARD 1` y diff --git a/scripts/sync-docs.sh b/scripts/sync-docs.sh index 8ec77c3..85afae3 100644 --- a/scripts/sync-docs.sh +++ b/scripts/sync-docs.sh @@ -23,9 +23,10 @@ declare -a MAP=( "03-Architecture-Hardware/kicad/docs/GIT-GUIDE_External-Collaborators_EN.md|docs/git/git-guide-en.md" # Descargas para técnicos (firmware de bring-up v5) "04-Source-Code/firmware/hbox_v5_bringup/release/hbox-v5-bringup_0.5.1.bin|docs/descargas/hbox-v5-bringup_0.5.1.bin" - "04-Source-Code/firmware/hbox_v5_bringup/release/superseded/hbox-v5-bringup_0.4.0.bin|docs/descargas/hbox-v5-bringup_0.4.0.bin" - "04-Source-Code/firmware/release/hbox-tarjetaV3_3.0.4.bin|docs/descargas/hbox-tarjetaV3_3.0.4.bin" + "04-Source-Code/firmware/hbox_v5_bringup/release/superseded/hbox-v5-bringup_0.4.0.bin|docs/descargas/superseded/hbox-v5-bringup_0.4.0.bin" + "04-Source-Code/firmware/release/hbox-tarjetaV3_3.0.4.bin|docs/descargas/superseded/hbox-tarjetaV3_3.0.4.bin" "04-Source-Code/firmware/release/hbox-tarjetaV3_4.0.0.bin|docs/descargas/hbox-tarjetaV3_4.0.0.bin" + "04-Source-Code/firmware/release/hbox-tarjetaV4_0.5.1.bin|docs/descargas/hbox-tarjetaV4_0.5.1.bin" "04-Source-Code/firmware/hbox_v5_bringup/README.md|docs/descargas/hbox-v5-bringup-README.md" ) @@ -39,7 +40,7 @@ for entry in "${MAP[@]}"; do done # SHA256SUMS se GENERA de los .bin que de verdad se publican (antes se copiaba el del v5 y # borraba las lineas de los demas firmwares). Asi la lista nunca miente sobre la carpeta. -( cd docs/descargas && shasum -a 256 *.bin > SHA256SUMS.txt ) +( cd docs/descargas && shasum -a 256 *.bin superseded/*.bin > SHA256SUMS.txt ) echo "SHA256SUMS.txt regenerado: $(wc -l < docs/descargas/SHA256SUMS.txt) binarios" echo "sincronizados $n archivos desde $SRC" echo "Revisa 'git status' y haz commit de los cambios que quieras publicar."