diff --git a/04-Source-Code/firmware b/04-Source-Code/firmware index 6c59791..a82ca4a 160000 --- a/04-Source-Code/firmware +++ b/04-Source-Code/firmware @@ -1 +1 @@ -Subproject commit 6c59791d72eab814fed9e023d5263a00f84c3b97 +Subproject commit a82ca4ace53106dd7f1d18ffb1fb92a1f4b0c65d diff --git a/06-Testing-Validation/2026-09-15_Drogheda_EinarBoard-v5_Procedimiento-Prueba-y-Flasheo_ES_v1.0.md b/06-Testing-Validation/2026-09-15_Drogheda_EinarBoard-v5_Procedimiento-Prueba-y-Flasheo_ES_v1.0.md index 4ee63dd..4c4b8e1 100644 --- a/06-Testing-Validation/2026-09-15_Drogheda_EinarBoard-v5_Procedimiento-Prueba-y-Flasheo_ES_v1.0.md +++ b/06-Testing-Validation/2026-09-15_Drogheda_EinarBoard-v5_Procedimiento-Prueba-y-Flasheo_ES_v1.0.md @@ -37,7 +37,7 @@ y dejarla flasheada con el firmware de arranque entregado por ingeniería. | 1 | Fuente de banco 0–30 V con límite de corriente ajustable | | 1 | Cable USB-C ↔ USB-C (o USB-A ↔ USB-C) **con datos** (no solo carga) | | 1 | Laptop con **STM32CubeProgrammer** instalado (o `dfu-util` en terminal) | -| 1 | Archivo de firmware: **`hbox-v5-bringup_0.2.1.bin`** — descarga: **https://drogheda.helgen.online/descargas/** (repo: `04-Source-Code/firmware/hbox_v5_bringup/release/`, SHA-256 inicia `78b34f46`) | +| 1 | Archivo de firmware: **`hbox-v5-bringup_0.5.0.bin`** — descarga: **https://drogheda.helgen.online/descargas/** (repo: `04-Source-Code/firmware/hbox_v5_bringup/release/`, SHA-256 inicia `98656ddc`) | | 1 | Jumper 2.54 mm para P11 (interruptor de corte) | | 1 | Lupa o lámpara con aumento | | — | Hoja de registro (sección 7) | @@ -183,7 +183,7 @@ Solo para tarjetas que pasaron las secciones 1 a 4. 2. Arriba a la derecha, en el selector de conexión elegir **USB**. Pulsar el botón de refrescar; debe aparecer `USB1`. Pulsar **Connect**. 3. Ir a la pestaña **Erasing & Programming** (icono de flecha hacia abajo, lado izquierdo). -4. **File path** → seleccionar `hbox-v5-bringup_0.2.1.bin`. +4. **File path** → seleccionar `hbox-v5-bringup_0.5.0.bin`. 5. **Start address** = `0x08000000`. Marcar **Verify programming** y **Run after programming**. 6. Pulsar **Start Programming**. Esperar "File download complete" y "Verify… successful". 7. Pulsar **Disconnect**. @@ -192,7 +192,7 @@ Solo para tarjetas que pasaron las secciones 1 a 4. ```bash dfu-util -l # debe listar [0483:df11] -dfu-util -a 0 -s 0x08000000:leave -D hbox-v5-bringup_0.2.1.bin +dfu-util -a 0 -s 0x08000000:leave -D hbox-v5-bringup_0.5.0.bin ``` ### 5d. Verificación después del flasheo @@ -206,7 +206,7 @@ dfu-util -a 0 -s 0x08000000:leave -D hbox-v5-bringup_0.2.1.bin | **D17** (LED azul) + LED de panel en P8 (si hay) | **Parpadean** a 1 Hz (MCU ejecutando el firmware) | | **DB1 → DB4** (LEDs del indicador de batería) | Se encienden **en secuencia** una vez, luego se apagan; después R, G, B en P14 si hay LED RGB conectado | | Laptop | Aparece un **puerto serie** nuevo ("STMicroelectronics Virtual COM Port" / `usbmodem…`) | -| Terminal serie a **115200 baud** | Encabezado `hbox-v5-bringup 0.2.1` (si dice 0.1.1 o 0.2.0, re-flashear), luego líneas `[PASS]` / `[FAIL]`, y al final **`>>> BOARD OK`** | +| Terminal serie a **115200 baud** | Encabezado `hbox-v5-bringup 0.5.0` (cualquier otra version: re-flashear), luego líneas `[PASS]` / `[FAIL]`, y al final **`>>> BOARD OK`** | 3. Si el terminal se abrió tarde y no se vio el reporte: teclear **`r`** en el terminal → repite todas las pruebas (y vuelve a encender los LEDs en secuencia). diff --git a/06-Testing-Validation/2026-09-17_Drogheda_HALT-Rig_BOM_v1.0.xlsx b/06-Testing-Validation/2026-09-17_Drogheda_HALT-Rig_BOM_v1.0.xlsx new file mode 100644 index 0000000..f51fac6 Binary files /dev/null and b/06-Testing-Validation/2026-09-17_Drogheda_HALT-Rig_BOM_v1.0.xlsx differ diff --git a/06-Testing-Validation/2026-09-17_Drogheda_HALT-Rig_Lista-Compras_ES_v1.0.md b/06-Testing-Validation/2026-09-17_Drogheda_HALT-Rig_Lista-Compras_ES_v1.0.md index d50364e..2a3e13d 100644 --- a/06-Testing-Validation/2026-09-17_Drogheda_HALT-Rig_Lista-Compras_ES_v1.0.md +++ b/06-Testing-Validation/2026-09-17_Drogheda_HALT-Rig_Lista-Compras_ES_v1.0.md @@ -21,7 +21,7 @@ accionamiento de vibración **completo** (motovibrador + variador). --- -## OLEADA 1 — Etapa térmica (≈ $9,400 MXN) +## OLEADA 1 — Etapa térmica (≈ $9,800 MXN + $1,100 de seguridad) Pedir esta semana. Todo se consigue en MercadoLibre / Amazon MX / Steren / ferretería industrial local. @@ -44,15 +44,18 @@ ferretería industrial local. | 1.14 | 🔴 **Fuelle/bota de silicón, barreno 50 mm** + brida de piso | Paso de la varilla motriz. Silicón 200 °C | 1 | 450 | | 1.15 | Entrada IEC, indicadores, **paro de emergencia** | | — | 400 | | 1.16 | Consumibles: remaches, ángulo, tornillería, sellador de silicón alta temp | | — | 480 | -| | | | **Subtotal** | **9,400** | +| | | | **Subtotal** | **9,800** | ### Seguridad — comprar junto con la Oleada 1, no después | # | Artículo | Por qué | |---|---|---| -| S.1 | **Extintor Clase D** (o cubeta de arena seca) | Pack de litio en la cámara. **CO₂ no sirve** para litio | -| S.2 | Manta ignífuga (welding blanket) | | -| S.3 | Guantes térmicos | Superficies a 75 °C | +| S.1 | **Cubeta de arena seca 20 kg** — $200 | Pack de litio en la cámara. **CO₂ no sirve** para litio | +| S.2 | Manta ignífuga (welding blanket) — $600 | | +| S.3 | Guantes térmicos ×2 — $300 | Superficies a 75 °C | +| S.4 | *Opcional:* extintor Clase D — ~$3,500 | La arena + manta cubre el caso realista. En el BOM va con cantidad 0 | + +**Subtotal seguridad: $1,100 MXN** (sin el extintor Clase D). --- @@ -98,13 +101,18 @@ Pedir al pasar la compuerta G1. | Bloque | MXN | |---|---| -| Oleada 1 — térmica | 9,400 | +| Oleada 1 — térmica | 9,800 | +| Oleada 1 — seguridad | 1,100 | | Oleada 2 — vibración | 11,700 | | Oleada 2 — impacto | 2,400 | | Oleada 2 — instrumentación | 2,700 | -| **Subtotal** | **26,200** | -| Contingencia 15 % | 3,900 | -| **TOTAL** | **≈ 30,100** | +| **Subtotal** | **27,700** | +| Contingencia 15 % | 4,155 | +| **TOTAL** | **≈ 31,855** | + +> 🔴 **El archivo de control de compras es el BOM en Excel**, no esta tabla: +> `2026-09-17_Drogheda_HALT-Rig_BOM_v1.0.xlsx`. Ahí se capturan proveedor, +> estado y precio real, y los totales se recalculan solos. --- diff --git a/06-Testing-Validation/2026-09-17_Drogheda_HALT-Rig_Thermal-Vibration-Impact_v1.1.md b/06-Testing-Validation/2026-09-17_Drogheda_HALT-Rig_Thermal-Vibration-Impact_v1.1.md index 38cde9d..9f609d6 100644 --- a/06-Testing-Validation/2026-09-17_Drogheda_HALT-Rig_Thermal-Vibration-Impact_v1.1.md +++ b/06-Testing-Validation/2026-09-17_Drogheda_HALT-Rig_Thermal-Vibration-Impact_v1.1.md @@ -370,7 +370,7 @@ no `cflt` that fails to clear · C/N₀ drift within X dB. | **Silicone oven gasket**, piano hinge, over-centre latches | — | 500 | | **Silicone bellows boot, 50 mm bore** + floor flange | 1 | 450 | | Control enclosure, IEC inlet, indicators, E-stop | — | 800 | -| **Subtotal** | | **9,400** | +| **Subtotal** | | **9,800** | ### Vibration stage (D2 — full) @@ -408,16 +408,20 @@ no `cflt` that fails to clear · C/N₀ drift within X dB. | | MXN | |---|---| -| Thermal | 9,400 | +| Thermal | 9,800 | +| **Safety (was missing a cost line in v1.0 — corrected)** | **1,100** | | Vibration | 11,700 | | Impact | 2,400 | | Instrumentation | 2,700 | -| Subtotal | **26,200** | -| Contingency 15 % | 3,900 | -| **TOTAL** | **≈ 30,100** | +| Subtotal | **27,700** | +| Contingency 15 % | 4,155 | +| **TOTAL** | **≈ 31,855** | -Above the $30k top of the agreed band by ~$100 — i.e. on the line. Two ways to -come back inside if needed: +**Authoritative costing is now the BOM workbook**, not this table: +`2026-09-17_Drogheda_HALT-Rig_BOM_v1.0.xlsx`. The v1.0 draft understated the +thermal stage by $400 (arithmetic) and carried the safety kit at zero. + +**$1,855 above the $30k top of the agreed band.** Three ways to come back inside: - Drop the ADXL1002 and accept clipped shock peaks on the ADXL355 (−700). Not recommended; the shock channel is the one measurement we cannot fake. @@ -517,4 +521,5 @@ State this plainly in any client-facing use of the results. - `03-Architecture-Hardware/2026-08-24_Drogheda_EinarBoard-v6_GNSS-4G-Integration_Design-Brief_v1.0.md` - `06-Testing-Validation/RCA-2026-06-field-failures.md` - `06-Testing-Validation/2026-08-18_Drogheda_FW-v3.0.3_Fan-Policy_Bench-Test_v1.0.md` -- Companion: `2026-09-17_Drogheda_HALT-Rig_Lista-Compras_v1.0.md` (shop purchasing list) +- Companion: `2026-09-17_Drogheda_HALT-Rig_BOM_v1.0.xlsx` (**authoritative BOM** — buy from this) +- Companion: `2026-09-17_Drogheda_HALT-Rig_Lista-Compras_ES_v1.0.md` (narrative purchasing notes) diff --git a/06-Testing-Validation/2026-09-17_Drogheda_HBOX-v5_Procedimiento-Ensamble_ES_v1.0.md b/06-Testing-Validation/2026-09-17_Drogheda_HBOX-v5_Procedimiento-Ensamble_ES_v1.0.md index 5de17e8..6002551 100644 --- a/06-Testing-Validation/2026-09-17_Drogheda_HBOX-v5_Procedimiento-Ensamble_ES_v1.0.md +++ b/06-Testing-Validation/2026-09-17_Drogheda_HBOX-v5_Procedimiento-Ensamble_ES_v1.0.md @@ -53,7 +53,7 @@ si el módulo ya está asignado. | Ítem | Notas | |---|---| | Gabinete HBOX con panel perforado (GX16-5, 3 × SMA, RJ45, prensaestopas) | según el diseño mecánico vigente | -| EinarBoard **V5-NN** aprobada, con firmware de bring-up **0.2.1 o superior** | ver acta de tarjeta | +| EinarBoard **V5-NN** aprobada, con firmware de bring-up **0.5.0 o superior** | ver acta de tarjeta | | simpleRTK2B Pro **ARD-NNN** y módem 4G NTRIP Master **RTK-NNNN** aprobados e integrados | con sus bolsas | | Fuente **Mean Well SD-15B-05** (24 V → 5 V) | va dentro del HBOX | | Pack de batería **1S4P** con NTC (3 hilos → P4) | conectar al final | diff --git a/06-Testing-Validation/2026-09-18_Drogheda_HBOX-v5_Prueba-Final-Unidad-FW-0.4.0_ES_v1.0.md b/06-Testing-Validation/2026-09-18_Drogheda_HBOX-v5_Prueba-Final-Unidad-FW-0.4.0_ES_v1.0.md new file mode 100644 index 0000000..ed10ded --- /dev/null +++ b/06-Testing-Validation/2026-09-18_Drogheda_HBOX-v5_Prueba-Final-Unidad-FW-0.4.0_ES_v1.0.md @@ -0,0 +1,77 @@ +# HBOX v5 — Prueba final de unidad ensamblada con firmware 0.5.0 (field-minimum + telemetría) + +**Alcance:** unidad completa (EinarBoard V5 + ArduSimple + módem 4G + batería + antenas) dentro del HBOX, antes de embarcar. +**Firmware:** `hbox-v5-bringup_0.5.0.bin` (SHA-256 `98656ddc…`) — descarga en . +**Duración:** ~45 min por unidad (P1–P6). Registrar todo en el acta de ensamble (`HBOX5-Exx-Axxx-Rxxxx`). + +!!! warning "Lo que 0.5.0 NO hace" + **No carga la batería** (cargador apagado). El paquete es de un solo uso: sostiene la unidad cuando se va el 5 V del vehículo + hasta 3.40 V y después la unidad solo funciona con alimentación del vehículo. Las unidades regresan a laptop (DFU en J11, 2 min) + cuando salga el firmware de producción. Anotar en el acta: *«fw 0.5.0-fm, cargador OFF»*. + +## 0. Preparación +- Consola: cable USB-C en **J11**, PuTTY/CoolTerm **115200**. Cada línea es `STAT`, `EVT` o `$PHLG`; teclear `l` para la leyenda. +- Fuente: **24 V** en P1 (entrada + ignición) a través del arnés GX16 real; el SD-15B interno da el 5 V. Batería en P4. NTC en P12 si la unidad lo lleva. +- Antenas GNSS y LTE conectadas; SIM instalada; módem en su socket. +- Guardar el log completo de la consola: `HBOX5-Exx-Axxx-Rxxxx_prueba-final.txt` (adjuntarlo al acta). + +## P1 — Arranque autónomo (2 min) +Energizar 24 V (con ignición) y **no tocar la consola**. + +| Esperado | Si falla | +|---|---| +| Banner `hbox-v5-bringup 0.5.0` · `modo=AUTO` · `inputs at boot: v5=5.2–5.4V(ok) ign=ON` | otra versión → re-flashear; `ign=OFF` → arnés pin 3 / divisor 22k-10k | +| `---- RESULT: 12 PASS / 0 FAIL ----` · `>>> BOARD OK` | cualquier `[FAIL]` → tarjeta a revisión, no embarcar | +| `EVT … STACK ON reason=auto` **sin teclear nada** (≈10 s tras el banner) | no enciende → `STAT` muestra `v5=` bajo 4.5 o `modo=MAN` (teclear `A`) | +| `EVT … NMEA primera trama` < 3 s después · `EVT FAN ON (vehiculo: 5V+ign)` | sin NMEA → ArduSimple no arranca: medir SW_5V (MOD1 pin 5) ≈ 5 V | +| LED RGB **azul** (etapa ON sin RTK) o **verde** (RTK); gauge DB1–DB4 según `vbat` | RGB rojo con `stack=ON` → PCF8574 / cableado LEDs | + +## P2 — Riel y módem (10 min) +Dejar la unidad 10 min encendida con el módem registrándose (LEDs del módem / la unidad aparece en el servidor). + +| Esperado | Si falla | +|---|---| +| `STAT … v5=5.2x–5.3x(ok)` **todo el tiempo**; nunca `(BAJO)` ni `EVT V5 BAJO` | `BAJO` → el riel cae con la ráfaga LTE: SD-15B ajustado a ~5.3 V en P2 (memo 24-Jul, PFI LTC4040) | +| `tbat`/`tair`/`tmcu` estables (< 45 °C en banco) · `i2cerr=0` | `i2cerr` subiendo → bus I²C / soldadura U3/U4/U13 | +| `$PHLG,0.5.0-fm,RUN,…` cada 10 s, `rec=0`, sin `LIMP` | `rec` > 0 sin causa → NMEA intermitente: revisar MOD1 / UART1 F9P | +| **Modo B:** ≈10 s tras la primera NMEA, `EVT MODOB ON`; luego `STAT … modoB=ON relay=` (sube cientos/s) `phlg_aire=` (+1 cada 30 s) | `modoB=off` permanente → sin NMEA en PA3 o `B` bloqueado; `relay=0` con `modoB=ON` → K1 / PA10 | +| **Servidor:** en ≤ 2 min la unidad `H00xx` muestra la columna **Salud** (fw `0.5.0-fm`, vbat, temperaturas) y sigue reportando posición 1 Hz | posición sí pero sin Salud → el módem no reenvía la `$PHLG`: revisar `$$$AS+` (modo transparente) | + +## P3 — Respaldo de batería (6 min) — **la prueba que nunca se había hecho en v5** +Con la etapa ON: **desconectar el 24 V** (se va el 5 V del SD-15B). Esperar 5 min. Reconectar. + +| Esperado | Si falla | +|---|---| +| `EVT V5 PERDIDO` → `EVT BACKUP inicio vbat=4.0x` (la etapa **sigue ON**) · RGB **amarillo** | la etapa se apaga / la tarjeta se reinicia (`reset=POR`) → el LTC4040 no sostiene: medir MAIN5V (C32) durante el corte, esperado 4.79 V | +| `STAT … stack=ON backup=Ns nmea=` **sigue contando** 5 min · `fan` según termostato (normalmente OFF) | `nmea` se detiene → SW_BAT/L6 (pista 0.3 mm, auditoría EMC) o paquete flojo en P4 | +| al reconectar: `EVT V5 PRESENTE` → `EVT BACKUP fin dur≈300s nmea_durante=N … SOSTUVO` | — | + +## P4 — Cielo abierto: primer RTK (10 min) +Con antena GNSS con cielo despejado y base activa (`$$$AS+` configurado): + +| Esperado | Si falla | +|---|---| +| `EVT GGA fix … -> RTK FLOAT(5)` y luego `-> RTK FIX(4)`; `STAT … gga=RTK_FIX sats≥10 hdop<1.5` · RGB **verde** | se queda en `GPS(1)`: correcciones no llegan → módem/NTRIP (`$$$AS+`), no el F9P | +| `$PHLG … RUN,OK,4,…` | `link=DEGR` permanente = NMEA sí, RTK no | + +## P5 — Recuperación de enlace (4 min, solo 1 unidad de muestra por lote) +Con la etapa ON y > 90 s de encendida: **retirar el ArduSimple del socket** (o su UART1) y cronometrar. + +| Esperado | Si falla | +|---|---| +| `EVT NMEA PERDIDO >5 s` → a los 60 s `EVT RECOVERY #1 sin NMEA 60s -> ciclo de etapa 5 s` → `STACK OFF reason=no_nmea` → 5 s → `STACK ON reason=recovery` · RGB **magenta** | no cicla → `modo=MAN` o < 90 s de gracia | +| Reinsertar el ArduSimple → `NMEA primera trama`; `STAT … rec=1` | — | + +## P6 — Apagado y acta (2 min) +- Quitar ignición: `EVT IGN OFF`, `EVT FAN OFF (bateria: termostato)`; la etapa sigue ON mientras haya 5 V (el SD-15B sigue con 24 V). +- Quitar 24 V: si la batería está, entra `BACKUP` (P3); dejarla hasta `SLEEP` **no** es necesario — reconectar y apagar con `P`. +- Guardar el log. En el acta: versión (`0.5.0-fm`), `uid=` del banner, resultado P1–P5, `vbat` final, y la nota *cargador OFF*. + +## Lectura rápida del LED RGB (para el técnico de campo) +| Color | Significado | +|---|---| +| **verde** | etapa ON, RTK fix | +| **azul** | etapa ON, NMEA sí, sin RTK (normal bajo techo / al arrancar) | +| **magenta** | etapa ON pero el F9P no habla (revisar ArduSimple) | +| **amarillo** | funcionando desde la batería (sin 5 V del vehículo) | +| **rojo** | etapa OFF (sin 5 V, batería < 3.40 V, > 60 °C, o apagada por operador) | diff --git a/hbox-docs b/hbox-docs index 86af91f..caee07f 160000 --- a/hbox-docs +++ b/hbox-docs @@ -1 +1 @@ -Subproject commit 86af91fe4bc993e536b8b3a060187d1d3f72e40d +Subproject commit caee07fde9ab9c807356806bb2f22a4a169c9678