Firmware 0.7.0-pre2 y auditoría del firmware del 29-oct (V5.6/V5.7 y v6)
- Descargas: 0.7.0-pre2 en prueba/ (43aeabcf…, -eth 051af1b2…); 0.7.0-pre a superseded/ (git mv); SHA256SUMS regenerado. - Notas de versión 1.6 (sección 0.7.0-pre2) y Descargas 2.6. - Auditoría: hardware/firmware-auditoria-29oct.md (revisiones A y C en V5.6/V5.7, B en la v6) y su entrada en el menú. - Prueba y flasheo V5.6/V5.7 1.2 y ensamble 1.1: autoprueba 21 PASS por USB / 22 con 5 V, SER_B_LAZO con el tiempo de Y3, STOP solo sin USB, A/B del W5500 con la tecla W; el ancla de §10.1 se conserva. - Actas: prueba V5.6/V5.7 (21 PASS), banco del piloto (21 PASS y el piso con el W5500 en reset), ensamble (22 PASS). - Bitácora, Tarjetas y hardware, Producción, Actas: al día con 0.7.0-pre2. - sync-docs.sh: MAP con pre2 en prueba/, pre en superseded/ y la auditoría. - Lote 2026-10-29_fw-070-pre2-auditoria (t-fw-070, banco del piloto, D-29-1 y D-29-2). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QCy5VHMVLkAmftYM6swWmx
This commit is contained in:
parent
a25b625448
commit
044900bd7a
124
backend/lotes/2026-10-29_fw-070-pre2-auditoria.json
Normal file
124
backend/lotes/2026-10-29_fw-070-pre2-auditoria.json
Normal file
@ -0,0 +1,124 @@
|
||||
{
|
||||
"lote": "2026-10-29_fw-070-pre2-auditoria",
|
||||
"autor": "claude",
|
||||
"motivo": "29-oct (Leo, 08:11 «audit it exhaustively … compatible with boards 5.6 and 5.7 and hopefully V6.0»; 08:19 «continue working on the firmware»): firmware 0.7.0-pre2 con F-2, F-3, F-5 y E-3, tres revisiones independientes (V5.6/V5.7, lo nuevo y la v6; 33 hallazgos corregidos), procedimiento 1.2 y actas al día; la v6 necesita decisiones antes de G1.",
|
||||
"fuente": "/hardware/firmware-auditoria-29oct/",
|
||||
"cambios": [
|
||||
{
|
||||
"id": "t-fw-070",
|
||||
"poner": {
|
||||
"descripcion": "Un solo binario para V5.6 y V5.7 (board_v56.h, -DHBOX_BOARD_V56; las dos tarjetas son iguales pin a pin).\n\nHecho al 29-oct: 0.7.0-pre2 (solo banco) = F-1, F-6, F-7 y F-8 de 0.7.0-pre + F-2 (ciclo de 10 min en batería con STOP + RTC, LSE o LSI; movimiento abre ventana), F-3 (driver del SC16IS752 y prueba serie con S/U), F-5 (LIS2DH12: 1 g y movimiento por INT1) y E-3 (PHY del W5500 en power-down), más la auditoría del 29-oct: tres revisiones independientes (A: 0.7.0-pre en V5.6/V5.7, 17 de 23 corregidos; C: lo nuevo de pre2, 16 de 19; B: la v6). Abiertos: A-02 y la A/B del W5500 (tecla W), que se deciden en el banco. Autoprueba 21 PASS por USB / 22 con 5 V. Simulador 118/118. Builds reproducibles (SOURCE_DATE_EPOCH): base 128 204 B y -eth 129 304 B (sin F-2 ni la prueba serie: no caben con Ethernet en el RCT6). hbox-firmware 82905a6.\n\nFalta para 0.7.0 de campo: F-4 Ethernet de campo configurable (la flash del RCT6 va al 97–98 %: antes, el plan de la auditoría §3.3); A-02 (vida del módem con el caster caído, después de caracterizar el LED en el banco); el banco del piloto (criterios 1–8). FOTA no entra en 0.7.0 (D-22-6).",
|
||||
"enlaces": [
|
||||
{
|
||||
"titulo": "Auditoría del firmware 29-oct (V5.6/V5.7 y v6)",
|
||||
"url": "/hardware/firmware-auditoria-29oct/"
|
||||
},
|
||||
{
|
||||
"titulo": "0.7.0-pre2 en Descargas (prueba)",
|
||||
"url": "/descargas/#firmware-del-hbox-que-binario-va-en-que-tarjeta"
|
||||
},
|
||||
{
|
||||
"titulo": "Notas de versión 0.7.0-pre2",
|
||||
"url": "/descargas/notas-de-version/#070-pre2-en-prueba"
|
||||
},
|
||||
{
|
||||
"titulo": "Prueba y flasheo V5.6/V5.7 (1.2)",
|
||||
"url": "/procedimientos/v56-v57-prueba-y-flasheo/"
|
||||
}
|
||||
]
|
||||
},
|
||||
"nota": "29-oct: 0.7.0-pre2 publicado para el banco (F-2, F-3, F-5, E-3 + auditoría: 33 hallazgos corregidos; A-02 y la A/B del W5500 se deciden en el banco). Queda F-4 Ethernet de campo; la fecha nueva la pone Leo."
|
||||
},
|
||||
{
|
||||
"id": "t-v56-banco-piloto",
|
||||
"poner": {
|
||||
"titulo": "Banco del piloto V5.6: ciclo de 10 min ×20, carga (TP7 ≈ 1.0), Ethernet, RS-232/485 y acelerómetro",
|
||||
"descripcion": "2 días, con el firmware 0.7.0-pre2 (procedimiento de prueba y flasheo V5.6/V5.7 1.2, §10). Ya se pueden correr los 8 criterios: el 3 (20 ciclos de 10 min, piso dormido con PPK2, /SYS5V con osciloscopio) y el 5 (lazo serie con S/U y Ethernet 24 h con el build -eth). Además: caracterizar el LED del módem en cada estado (§7.6, decide A-02) y medir el piso con el W5500 en power-down y en reset (tecla W, §10.1.5). Si pasa, se liberan las V5.6 del volumen. Alta: Claude.",
|
||||
"bloqueada_por": [
|
||||
"t-v56-piloto"
|
||||
]
|
||||
},
|
||||
"nota": "29-oct: 0.7.0-pre2 publicado: ya no lo bloquea t-fw-070 (F-4 no hace falta en el banco). Título: «ciclo de 10 min», no «10 s». Criterios 3 y 5 escritos en el §10.1 del procedimiento 1.2."
|
||||
},
|
||||
{
|
||||
"id": "t-v57-banco-prototipos",
|
||||
"poner": {
|
||||
"bloqueada_por": [
|
||||
"t-v56-piloto"
|
||||
]
|
||||
},
|
||||
"nota": "29-oct: 0.7.0-pre2 publicado (procedimiento 1.2): el banco de la V5.7 ya solo espera las tarjetas del piloto. §10.2 suma caídas de arranque del motor (24→8 V 200 ms, 12→6 V 500 ms; auditoría A-05)."
|
||||
},
|
||||
{
|
||||
"id": "t-banco-revision-hw",
|
||||
"nota": "29-oct: el procedimiento ya va en 1.2 (0.7.0-pre2): criterios 3 y 5 escritos (§10.1), caracterización del LED del módem (§7.6), osciloscopio en J8.1 con Q (§7.8) y modo=AUTO al cerrar (§11). Vale revisarlos también."
|
||||
},
|
||||
{
|
||||
"id": "t-v6-cierre-pedido",
|
||||
"nota": "29-oct (auditoría del firmware, agente B): el 0.7.0 no corre en la v6 (PC3 = RTK_STAT, módem en PC10, F9P de fábrica a 38 400, EFCR 0x10); se reutiliza ≈ 85 % del código y faltan 45–60 KB (A7670, NTRIP, enlace, F9P, aprovisionamiento, FOTA). Decisiones en d-29-2."
|
||||
},
|
||||
{
|
||||
"id": "t-v6-g1-paquete",
|
||||
"nota": "29-oct: antes del paquete, que Leo decida d-29-1 (cambios de hardware de la v6 que encontró la auditoría del firmware: retención de la SIM, 1 kΩ en /GNSS_RTK_STAT, ID en PC4, CLPROG → PB1, DTR por U5, quitar K1)."
|
||||
},
|
||||
{
|
||||
"crear": {
|
||||
"id": "d-29-1-v6-hw-firmware",
|
||||
"titulo": "D-29-1: cambios de hardware de la v6 antes de G1 que pide el firmware — decide Leo",
|
||||
"pista": "ingenieria",
|
||||
"estado": "por-hacer",
|
||||
"responsable": "leo",
|
||||
"campeon": "leo",
|
||||
"sitios": [
|
||||
"qro"
|
||||
],
|
||||
"version_tarjeta": "v6",
|
||||
"fecha_limite": "2026-11-01",
|
||||
"etiquetas": [
|
||||
"decisión",
|
||||
"v6"
|
||||
],
|
||||
"descripcion": "La auditoría del firmware (agente B, 29-oct) encontró cosas que el firmware no puede arreglar en la v6. Propuesta de Claude, en orden:\n1. Retención de la SIM: J11 es push-push y es la única SIM (T48). Cinta, tapa o espuma que la presione (o un portatarjetas con seguro) y una prueba de vibración en el banco.\n2. Protección contra el binario equivocado: 1 kΩ en serie en /GNSS_RTK_STAT junto a U3.11 (PC3, que la V5.x maneja como MODEM_EN) y un divisor de ID en PC4 (2 resistencias 0402).\n3. Casi sin costo: CLPROG → PB1 con 1 MΩ + 100 nF (corriente de entrada visible); DTR del A7670 por el canal 2 de U5 a PB5 con 100 kΩ a GND; 100 kΩ de /DOUT_4G a /3V3 (opcional).\n4. Quitar K1, Q4, D3, R48 y R49 (D-v6-3).\nSí → Michelle los mete antes del paquete de G1. No → se documenta y el firmware vive con el riesgo.",
|
||||
"enlaces": [
|
||||
{
|
||||
"titulo": "Auditoría del firmware §5.7",
|
||||
"url": "/hardware/firmware-auditoria-29oct/#57-cambios-de-hardware-de-la-v6-que-valen-antes-de-g1-2-nov"
|
||||
}
|
||||
]
|
||||
},
|
||||
"si_no_hay": [
|
||||
"D-29-1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"crear": {
|
||||
"id": "d-29-2-v6-firmware-plan",
|
||||
"titulo": "D-29-2: firmware de la v6 — ruta del RTCM, contrato con htracker, ID, secretos, banco de evaluación y G2 — decide Leo",
|
||||
"pista": "ingenieria",
|
||||
"estado": "por-hacer",
|
||||
"responsable": "leo",
|
||||
"campeon": "leo",
|
||||
"sitios": [
|
||||
"qro"
|
||||
],
|
||||
"version_tarjeta": "v6",
|
||||
"fecha_limite": "2026-10-31",
|
||||
"etiquetas": [
|
||||
"decisión",
|
||||
"v6",
|
||||
"firmware"
|
||||
],
|
||||
"descripcion": "La v6 necesita un enlace nuevo en el MCU (A7670, NTRIP, UDP, F9P desnudo, aprovisionamiento, FOTA): ≈ 39–53 días-ingeniero (centro ≈ 46). Decisiones (propuesta de Claude):\n1. RTCM: el MCU lo reenvía al F9P por USART2 con el CRC revisado y se apagan las entradas del UART2 del F9P (el diseño dice hardware y el §13.4 un socket no transparente: se excluyen).\n2. Enlace con htracker (Gibran): UDP, los mismos formatos y una línea de identidad como el $GPTXT H00xx de hoy.\n3. ID de tarjeta: hoy la prueba de PC12; en hardware, divisor en PC4 (D-29-1).\n4. Secretos (APN, usuario NTRIP, estación): registro de configuración por unidad escrito en la fábrica; nunca en el repo ni en una imagen de FOTA.\n5. Banco de evaluación esta semana (≈ US$100–150): NUCLEO-F411RE, A7670SA del mismo sufijo (-LASC), adaptadores 74LVC2T45, nano-SIM de Vectro.\n6. G2: el piloto de la v6 con el MVP en banco a principios de diciembre e imagen de fábrica con FOTA a mediados o finales de diciembre (el 22-nov con firmware de campo no se alcanza).",
|
||||
"enlaces": [
|
||||
{
|
||||
"titulo": "Auditoría del firmware §5 (v6)",
|
||||
"url": "/hardware/firmware-auditoria-29oct/#5-la-v6-que-del-070-sirve-y-que-falta"
|
||||
}
|
||||
]
|
||||
},
|
||||
"si_no_hay": [
|
||||
"D-29-2"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -27,7 +27,7 @@ El acta de ensamble no deja elegir un módulo sin aprobar, sin integración o ya
|
||||
| Acta | Qué registra | Procedimiento |
|
||||
|---|---|---|
|
||||
| [Tarjeta V5](../formularios/v5.html) | Lote de 15 (V5-01 … V5-15; 30 seleccionables) | [Prueba y flasheo](../procedimientos/v5-prueba-y-flasheo.md) |
|
||||
| [Tarjeta V5.6](../formularios/v56.html) · [Tarjeta V5.7](../formularios/v57.html) | Piloto (V56-NN / V57-NN): inspección con U14, rieles, flasheo de 0.7.0-pre, autoprueba, módem con el juego de banco, batería, ignición | [Prueba y flasheo V5.6/V5.7](../procedimientos/v56-v57-prueba-y-flasheo.md) |
|
||||
| [Tarjeta V5.6](../formularios/v56.html) · [Tarjeta V5.7](../formularios/v57.html) | Piloto (V56-NN / V57-NN): inspección con U14, rieles, flasheo de 0.7.0-pre2, autoprueba, módem con el juego de banco, batería, ignición | [Prueba y flasheo V5.6/V5.7](../procedimientos/v56-v57-prueba-y-flasheo.md) |
|
||||
| [Banco del piloto](../formularios/piloto.html) | Una por versión (PILOTO-V5-6, PILOTO-V5-7): los 8 criterios que liberan las 135 V5.6 y las 365 V5.7 | [Prueba y flasheo §10](../procedimientos/v56-v57-prueba-y-flasheo.md#10-banco-del-piloto-los-8-criterios-para-liberar-las-135-y-las-365) |
|
||||
| [Ensamble V5.6](../formularios/ensamble-v56.html) · [Ensamble V5.7](../formularios/ensamble-v57.html) | Tarjeta V5.6/V5.7 + pareja aprobada → unidad `HBOX56-…` / `HBOX57-…` con su prueba | [Ensamble V5.6/V5.7](../procedimientos/v56-v57-ensamble.md) |
|
||||
| [ArduSimple](../formularios/ardusimple.html) | Un receptor ARD-001 … ARD-100: visual, fix, configuración | [Módulos §1](../procedimientos/v5-modulos-integracion.md#1-simplertk2b-pro-acta-ardusimple) |
|
||||
|
||||
@ -22,6 +22,10 @@ Arriba, lo que pasó en el tablero de pendientes y en las actas en los últimos
|
||||
|
||||
### Octubre de 2026
|
||||
|
||||
**29 oct**
|
||||
: **[Auditoría del firmware 0.7.0](hardware/firmware-auditoria-29oct.md) y 0.7.0-pre2 para la V5.6 y la V5.7, en prueba de banco** (Leo, 08:11: «audit it exhaustively … compatible with boards 5.6 and 5.7 and hopefully V6.0»; 08:19: «continue working on the firmware»). Tres revisiones independientes: A (0.7.0-pre en la V5.6/V5.7), B (la v6) y C (lo nuevo de 0.7.0-pre2). Sin bloqueantes para el banco; el único para campo (A-01: a los 24.86 días un módem sano quedaba «oscuro» y se reiniciaba cada 0.6 s) y 32 hallazgos más quedaron corregidos. Con 0.7.0-pre2 se corren **los 8 criterios del piloto**: ciclo de 10 min en batería con el MCU en STOP (criterio 3; sin USB), prueba de los puertos serie con `S`/`U` (criterio 5), acelerómetro y el PHY del W5500 apagado (con la tecla `W` se compara contra el reset en el PPK2). Autoprueba 21 PASS por USB (22 con 5 V); simulador 118/118. `hbox-tarjetaV56_0.7.0-pre2.bin` (`43aeabcf…`) y `-eth` (`051af1b2…`), reproducibles; 0.7.0-pre a `superseded/` ([Descargas](descargas/index.md#firmware-del-hbox-que-binario-va-en-que-tarjeta) · [notas de versión](descargas/notas-de-version.md#070-pre2-en-prueba)). [Prueba y flasheo](procedimientos/v56-v57-prueba-y-flasheo.md) 1.2 y actas al día. Abiertos: A-02 (LED del módem con el caster caído) y la A/B del W5500, que se deciden en el banco. `hbox-firmware` `82905a6`.
|
||||
: **La v6 no puede correr este binario** (PC3 es `RTK_STAT`, el módem enciende con PC10, el F9P de fábrica habla a 38 400 y su EFCR es 0x10): se reutiliza ≈ 85 % del código y falta el enlace propio (A7670, NTRIP, UDP, F9P, aprovisionamiento, FOTA; ≈ 39–53 días-ingeniero). Decisiones para Leo: **D-29-1** (seis cambios de hardware de la v6 antes de G1: retención de la SIM, 1 kΩ en `/GNSS_RTK_STAT`, ID en PC4, CLPROG → PB1, DTR por U5, quitar K1) y **D-29-2** (ruta del RTCM, contrato con htracker, ID, secretos, banco de evaluación y G2) ([§5](hardware/firmware-auditoria-29oct.md#5-la-v6-que-del-070-sirve-y-que-falta)). Lote `2026-10-29_fw-070-pre2-auditoria`.
|
||||
|
||||
**28 oct**
|
||||
: **T42b: la clase HV24 completa en la V5.6 y la V5.7** (`HBox_PCB 8b0a23a`, 14:20; Leo, 12:57: «yes», antes de pedir el piloto). A los patrones de HV24 les faltaba la «/» y solo `/24V_IN` era HV24; ahora entran todas las redes de 24 V y rigen las reglas F-01 de la v6 (0.2 mm entre redes HV24, 0.3 mm en las caras y 0.5 mm adentro). Salieron 14 errores en la V5.6 (y una isla de GND que quedaba sin conectar) y 16 en la V5.7; se arreglaron por script (`tools/t42b_v5.py`). El que más importaba: la línea EN de U15 en la V5.7 (8.4 V máx.) ya va a 0.38 mm o más de `/24V`. DRC igual que antes (los 3 de MOD1), 0 sin conectar y paridad limpia; **BOM, CPL y designadores idénticos**, cambian el cobre y los barrenos. Revisión independiente en dos rondas: la primera encontró una vía de costura que el paquete sacaba con otra red (§4); ya está corregido y la segunda dio GO. Los pasos del pedido no cambian ([T42b](hardware/t42b-hv24-28oct.md) · [instrucciones para Leo](hardware/instrucciones-leo-27oct.md#21-archivos)). Documentos de diseño [V5.6](hardware/diseno-v56.md) y [V5.7](hardware/diseno-v57.md) a la v1.5. Lote `2026-10-28_t42b-hv24`.
|
||||
|
||||
|
||||
@ -2,8 +2,8 @@ a68a87ff1f6b34a8284e9e5e32c95da7bb8d8adc071c5fd64412a3e744e46b28 hbox-tarjetaV3
|
||||
1458470bbdd95b490969976402bf2144a773a991b7650c55e3281687ba77b2e3 hbox-tarjetaV4_0.6.0.bin
|
||||
8a0ee4839763eae8c96e990eb471dae30f0a491bfb9bd81fdfb39ee69436790a hbox-v5-bringup_0.6.0.bin
|
||||
a6c3b4677fa696bb08b99abae70d464c8593aad8be0d3f3883815d3769e0d281 prueba/hbox-tarjetaV4_0.6.3.bin
|
||||
2d0969b08e8670c879a3e0b80f7a0a432d48b117afe3402017940f6550658227 prueba/hbox-tarjetaV56_0.7.0-pre-eth.bin
|
||||
8dd260473e933d17c9e5d75d5cf7c1b3248944fc703f99842026d9354f6ffd57 prueba/hbox-tarjetaV56_0.7.0-pre.bin
|
||||
051af1b2c7596c169069b030123c748ab7c2378a8b2f877453ad85f9ae3bdfca prueba/hbox-tarjetaV56_0.7.0-pre2-eth.bin
|
||||
43aeabcfdb7055c106b7702682f099fdd5b83499f28cfcfab43a2fa41b1ea6a2 prueba/hbox-tarjetaV56_0.7.0-pre2.bin
|
||||
3641159a4c68ef093a0e5ab3402356254a8165b2ce1b77d8ad2362415b0d7edd prueba/hbox-v5-bringup_0.6.3.bin
|
||||
035ebeb348461765f099341603a9e99b94512f8477509efb78aa7caf953f4c2f superseded/hbox-tarjetaV3_3.0.4.bin
|
||||
4528187f9d675bca8114583d44eccf4d2149d847f7e5fc402631d8811ee39282 superseded/hbox-tarjetaV4_0.5.1.bin
|
||||
@ -17,6 +17,8 @@ c96041aea04b1e6500ec45b558bdfcf5db94d102666a71f1b3c9d2364e40572a superseded/hbo
|
||||
582969957a1d67ce80e9e7a603dd66af4fcffeb82930f9e508fd360d6a289f9c superseded/hbox-tarjetaV4_0.5.9.bin
|
||||
ef43a901ae9a875e6346ae8f84cc5f150a2419ff7cd577fe8f69780236840757 superseded/hbox-tarjetaV4_0.6.1.bin
|
||||
ec7425ace7a43d36238ecf9536c82d06b6f9b5304aad49748031ebe35b5167af superseded/hbox-tarjetaV4_0.6.2.bin
|
||||
2d0969b08e8670c879a3e0b80f7a0a432d48b117afe3402017940f6550658227 superseded/hbox-tarjetaV56_0.7.0-pre-eth.bin
|
||||
8dd260473e933d17c9e5d75d5cf7c1b3248944fc703f99842026d9354f6ffd57 superseded/hbox-tarjetaV56_0.7.0-pre.bin
|
||||
a8de74b3d7768e9d5656ae0bff05475445c0cd2599ecfdc4ab081e517ed3d6ef superseded/hbox-v5-bringup_0.4.0.bin
|
||||
e1f351084e803306c376989b284ca0f9f9f1a3445e59494f8a5ff7a9652ad44c superseded/hbox-v5-bringup_0.5.1.bin
|
||||
a9b0d6c1c640ebc9a132236ca465cad04e8eed99962b7dc6024b6ee8b765d2d6 superseded/hbox-v5-bringup_0.5.2.bin
|
||||
|
||||
@ -41,29 +41,42 @@ 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)`.
|
||||
|
||||
### EinarBoard V5.6 / V5.7 (0.7.0-pre, 27-oct) — same sketch, `board_v56.h`
|
||||
### EinarBoard V5.6 / V5.7 (0.7.0-pre2, 29-oct) — same sketch, `board_v56.h` + `flash_guard.c`
|
||||
One binary for both boards (the 64 MCU pins are identical). The pilot carries the **STM32F411RCT6** (256 KB, T47), so the
|
||||
build targets `GENERIC_F411RCTX`, keeps the EEPROM emulation in **sector 5** (`0x08020000`) and caps the image at 128 KB
|
||||
below it. Without the two `FLASH_*` flags the sketch stops with `#error`. The same `.bin` runs on a RET6.
|
||||
below it. Without the two `FLASH_*` flags the sketch stops with `#error`; if they reach only the C++ files (not the core's C,
|
||||
where the EEPROM driver lives) `flash_guard.c` makes the link fail with `undefined reference to hbox_flash_flags_in_c`
|
||||
instead of producing an image that crashes on its first EEPROM read (audit A-07). The same `.bin` runs on a RET6.
|
||||
```bash
|
||||
export SOURCE_DATE_EPOCH=<value from CHANGELOG> # release builds only: __DATE__/__TIME__ fixed = byte-identical rebuild (A-18)
|
||||
arduino-cli compile \
|
||||
--fqbn "STMicroelectronics:stm32:GenF4:pnum=GENERIC_F411RCTX,usb=CDCgen,xserial=generic,rtlib=nanofp" \
|
||||
--build-property "build.extra_flags=-DHSE_VALUE=25000000UL -DHBOX_BOARD_V56 -DFLASH_DATA_SECTOR=5 -DFLASH_BASE_ADDRESS=0x08020000UL" \
|
||||
--build-property "upload.maximum_size=131072" \
|
||||
--output-dir out-v56 hbox_v5_bringup
|
||||
cp out-v56/hbox_v5_bringup.ino.bin release/hbox-tarjetaV56_0.7.0-pre.bin
|
||||
cp out-v56/hbox_v5_bringup.ino.bin release/hbox-tarjetaV56_0.7.0-pre2.bin
|
||||
```
|
||||
The first console lines must read `hbox-v5-bringup 0.7.0-pre` and `board=EinarBoard V5.6/V5.7 (HBOX v5)`; the in-band
|
||||
`$PHLG` version is `0.7.0p`. **Bench only** until the pilot passes. Designators are the T43 ones on the silkscreen:
|
||||
**SW1 = BOOT0, SW2 = RESET** (the opposite of V5.5), USB-C DFU/console = **J7**, modem socket = **J8/J9**, LTC4040 = **U14**.
|
||||
DFU: hold SW1 → tap SW2 → release SW1. Technician procedure (ES):
|
||||
`06-Testing-Validation/2026-10-27_Drogheda_EinarBoard-V5.6-V5.7_Prueba-y-Flasheo_ES_v1.0.md`.
|
||||
The first console lines must read `hbox-v5-bringup 0.7.0-pre2` and `board=EinarBoard V5.6/V5.7 (HBOX v5)`; the in-band
|
||||
`$PHLG` version is `0.7.0p2`. **Bench only** until the pilot passes its 8 criteria. Designators are the T43 ones on the
|
||||
silkscreen: **SW1 = BOOT0, SW2 = RESET** (the opposite of V5.5), USB-C DFU/console = **J7**, modem socket = **J8/J9**,
|
||||
LTC4040 = **U14**. DFU: hold SW1 → tap SW2 → release SW1. Technician procedure (ES), version 1.2:
|
||||
`06-Testing-Validation/2026-10-27_Drogheda_EinarBoard-V5.6-V5.7_Prueba-y-Flasheo_ES_v1.0.md` (site: *Prueba y flasheo V5.6/V5.7*).
|
||||
|
||||
What 0.7.0-pre2 adds over 0.7.0-pre (details in `CHANGELOG.md`): the **10-min battery cycle with STOP + RTC** (F-2;
|
||||
`-DENABLE_DUTY=0` = continuous backup as in 0.7.0-pre), the **SC16IS752 driver and serial test** (F-3), the **LIS2DH12**
|
||||
motion interrupt (F-5), the **W5500 PHY in power-down** outside `-eth` (E-3), robustness (dead Y2 → HSI, stuck I²C bus,
|
||||
no TMP102 → MCU sensor and no thermal re-arm) and every fix from the 29-oct audit (reviews A and C). Self-test: **21 PASS on
|
||||
USB only, 22 with `/SYS5V`** (`W5500_PHY`). New keys: `S` serial test (J12 jumper + a second board in echo on J11), `U` RS-485
|
||||
echo, `Z` STOP allowed/blocked, `W` W5500 in reset vs power-down (floor A/B with the PPK2); `A` now asks for `Y` within 10 s.
|
||||
Operator locks (`B D C E Z U W` and the `P` pause) expire after 2 h without USB. **STOP only happens with the USB cable
|
||||
unplugged** (the device state decides, not DTR, which the core never clears on unplug).
|
||||
|
||||
**Bench Ethernet build** (pilot criterion 5, the Ethernet part): add `-DENABLE_ETH=1` to the flags above (needs
|
||||
`arduino-cli lib install Ethernet`; 2.0.2 on the build Mac) and copy it as `release/hbox-tarjetaV56_0.7.0-pre-eth.bin`. On the
|
||||
RCT6 it uses **129 044 of 131 072 B (98 %)**: F-3 will not fit in the same image, so on the RCT6 pilot boards Ethernet and the
|
||||
serial loop are tested with separate builds (the RET6 has room). On V5.6/V5.7 the W5500 is **U2** (U11 is the PCF8574) and the
|
||||
RJ45 is **J6**. The host simulator runs 27 V5.6/V5.7 scenarios on the build without Ethernet (see
|
||||
`../tools/hostsim_v5/README.md`); the `-eth` path is not simulated.
|
||||
`arduino-cli lib install Ethernet`; 2.0.2 on the build Mac) and copy it as `release/hbox-tarjetaV56_0.7.0-pre2-eth.bin`. On
|
||||
the RCT6 it fills **129 304 of 131 072 B**, so it leaves out the battery cycle (it stays in continuous backup), the serial
|
||||
test keys, the STAT legend, the full help and the Y3 timing of `SER_B_LAZO`; the base build is **128 204 B**. On V5.6/V5.7
|
||||
the W5500 is **U2** (U11 is the PCF8574) and the RJ45 is **J6**. The host simulator runs 64 V5.6/V5.7 scenarios on the
|
||||
build without Ethernet (see `../tools/hostsim_v5/README.md`); the `-eth` path is not simulated.
|
||||
|
||||
### Ethernet de banco (0.6.0-eth) — `-DENABLE_ETH=1`
|
||||
Build separado; el binario de campo 0.5.8 no lo incluye. Necesita la librería `Ethernet` (`arduino-cli lib install Ethernet`).
|
||||
@ -81,13 +94,14 @@ Cable directo al portátil (Auto-MDIX) o cualquier switch. Overrides: `-DETH_IP=
|
||||
|
||||
### Simulador en PC (0.6.1, ampliado en 0.6.2 y 0.6.3) — `../tools/hostsim_v5`
|
||||
Antes de flashear un cambio del gobernador de carga, del riel o del `$PHLG`, correr el simulador: compila este sketch sin
|
||||
cambios contra stubs y un modelo eléctrico de la entrada de 5 V (calibrado con H0027) y revisa 81 escenarios: 54 de V5.5/V4 (ráfagas del
|
||||
cambios contra stubs y un modelo eléctrico de la entrada de 5 V (calibrado con H0027) y revisa 54 escenarios de V5.5/V4 (ráfagas del
|
||||
módem, cable débil, desconexión del 24 V, hiccup, batería mala, pausa NTC, autoprueba `r`, vuelta del `millis()`, VDDA,
|
||||
formato del `$PHLG`/`$PHCG` y largo de las líneas que van al módem, tecla `X`; desde 0.6.3 también respaldo corto con el
|
||||
paquete bajo, motivo del reset en el RTC y espera de carga creciente, `CHG_NOCHG`, SLEEP con la media y la vigilancia del
|
||||
módem con histéresis) y, desde 0.7.0-pre, 27 de V5.6/V5.7 (módem con EN/RESET/LED/RTCM3, escalera, ruido en el LED, 5 V que
|
||||
rebota, caster caído, F9P sin alimentación, LFP, NTC, ignición), más un invariante de seguridad del cargador en cada vuelta
|
||||
del lazo y los de V5.6/V5.7 en cada escritura de PA1/PC3/PB5/PC1/PA9.
|
||||
módem con histéresis) y, desde 0.7.0-pre, 64 de V5.6/V5.7 (módem con EN/RESET/LED/RTCM3, escalera, ruido en el LED, 5 V que
|
||||
rebota, caster caído, F9P sin alimentación, LFP, NTC, ignición; desde 0.7.0-pre2 el ciclo de batería con STOP, la prueba
|
||||
serie, el acelerómetro, el W5500 y los escenarios adversos de la auditoría del 29-oct), más un invariante de seguridad del
|
||||
cargador en cada vuelta del lazo y los de V5.6/V5.7 en cada escritura de PA1/PC3/PB5/PC1/PA9. En total 118 escenarios.
|
||||
```bash
|
||||
bash ../tools/hostsim_v5/run.sh # todo PASS = exit 0
|
||||
bash ../tools/hostsim_v5/run.sh /ruta/a/otra/copia old # mismos escenarios contra otra versión (p. ej. 0.6.0)
|
||||
@ -137,7 +151,7 @@ U13 pin 12 (P7) ──|<── SW4G1 pad 1 (MODEM_RST) diodo Schottky B
|
||||
## Flash (DFU, J11)
|
||||
Hold **SW2** (BOOT0) → tap **SW1** (RESET) → release SW2 → device `0483:DF11` appears.
|
||||
**V5.6 / V5.7 (T43): the opposite** — USB-C **J7**, hold **SW1** (BOOT0) → tap **SW2** (RESET) → release SW1, then
|
||||
`dfu-util -a 0 -s 0x08000000:leave -D release/hbox-tarjetaV56_0.7.0-pre.bin` (bench only).
|
||||
`dfu-util -a 0 -s 0x08000000:leave -D release/hbox-tarjetaV56_0.7.0-pre2.bin` (bench only).
|
||||
```bash
|
||||
dfu-util -a 0 -s 0x08000000:leave -D release/hbox-v5-bringup_0.5.1.bin
|
||||
```
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
---
|
||||
title: "Descargas"
|
||||
tags: [project-drogheda, hbox, descargas, firmware, v3, v4, v5, v5.6, v5.7, modem, zed-f9p]
|
||||
date: 2026-10-27
|
||||
date: 2026-10-29
|
||||
project: Project Drogheda
|
||||
author: Helgen Technologies
|
||||
version: "2.5"
|
||||
version: "2.6"
|
||||
---
|
||||
|
||||
# Descargas
|
||||
@ -38,7 +38,7 @@ Un binario por tarjeta. El nombre lleva la tarjeta y eso manda; el número de ve
|
||||
| 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…` | Vigente otra vez desde el 29-sep: 0.6.1 se retiró ([por qué](notas-de-version.md#por-que-se-retiro-061)). 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) · 89 028 B · `8a0ee4839763eae8…` | Vigente otra vez desde el 29-sep: 0.6.1 se retiró. Uso: [prueba y flasheo §5](../procedimientos/v5-prueba-y-flasheo.md) y [ensamble §5](../procedimientos/v5-ensamble.md) |
|
||||
| V5.6 y V5.7 — piloto de 5 + 5 ([prueba y flasheo](../procedimientos/v56-v57-prueba-y-flasheo.md)) | STM32F411RCT6 soldado (256 KB; el volumen lleva RET6) | `hbox_v5_bringup` + `board_v56.h` (`-DHBOX_BOARD_V56`) | Ninguno vigente: solo [`prueba/hbox-tarjetaV56_0.7.0-pre.bin`](prueba/hbox-tarjetaV56_0.7.0-pre.bin), para el banco (abajo) | Piloto. DFU por **J7** con **SW1 = BOOT0** y **SW2 = RESET** (al revés que la V5.5) |
|
||||
| V5.6 y V5.7 — piloto de 5 + 5 ([prueba y flasheo](../procedimientos/v56-v57-prueba-y-flasheo.md)) | STM32F411RCT6 soldado (256 KB; el volumen lleva RET6) | `hbox_v5_bringup` + `board_v56.h` (`-DHBOX_BOARD_V56`) | Ninguno vigente: solo [`prueba/hbox-tarjetaV56_0.7.0-pre2.bin`](prueba/hbox-tarjetaV56_0.7.0-pre2.bin), para el banco (abajo) | Piloto. DFU por **J7** con **SW1 = BOOT0** y **SW2 = RESET** (al revés que la V5.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](../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. Qué cambió en cada versión y por qué: **[notas de versión](notas-de-version.md)**.
|
||||
|
||||
@ -62,19 +62,20 @@ Un binario por tarjeta. El nombre lleva la tarjeta y eso manda; el número de ve
|
||||
|
||||
Qué probar y qué debe verse: [notas de versión → 0.6.3](notas-de-version.md#063-en-prueba). La prueba de largo de línea (tecla `X`, de 0.6.2) sigue igual: [`prueba/phtst_report.py`](prueba/phtst_report.py) (Python 3). Los binarios de 0.6.2 pasaron a `superseded/`.
|
||||
|
||||
!!! warning "0.7.0-pre EN PRUEBA DE BANCO (27-oct): solo para el banco del piloto V5.6 / V5.7"
|
||||
El primer firmware que enciende el módem de la V5.6 y la V5.7 (pieza F-1). Un solo binario para las dos tarjetas. **No va a campo:** las unidades del piloto no se embarcan hasta que pasen los [8 criterios del banco del piloto](../procedimientos/v56-v57-prueba-y-flasheo.md#10-banco-del-piloto-los-8-criterios-para-liberar-las-135-y-las-365) y salga el firmware de campo (F-2 a F-8).
|
||||
!!! warning "0.7.0-pre2 EN PRUEBA DE BANCO (29-oct): solo para el banco del piloto V5.6 / V5.7"
|
||||
Sustituye a 0.7.0-pre (27-oct), que pasa a `superseded/` sin haber llegado a ninguna tarjeta. Un solo binario para las dos tarjetas. **No va a campo:** las unidades del piloto no se embarcan hasta que pasen los [8 criterios del banco del piloto](../procedimientos/v56-v57-prueba-y-flasheo.md#10-banco-del-piloto-los-8-criterios-para-liberar-las-135-y-las-365) y salga el firmware de campo.
|
||||
|
||||
- **El módem bajo control del MCU:** se enciende después de la etapa, recibe su pulso de RESET de rutina y el MCU lo vigila por su LED y por las correcciones RTCM3 que le entrega al F9P. Si no da señal de vida: pulsos y reinicios de alimentación con 3 min entre cada uno, nunca en lazo rápido.
|
||||
- **Paquete LFP** (SLEEP a 2.95 V, rearme a 3.20 V), NTC de la celda en PC5, ignición por ADC (sirve en vehículos de 12 V) y EFCR = 0x30 lo primero (el RS-485 suelta el bus).
|
||||
- Pasó una revisión independiente (14 hallazgos, todos corregidos) y 27 escenarios nuevos del simulador.
|
||||
- **Todo lo de 0.7.0-pre:** el módem bajo control del MCU (encendido después de la etapa, vigilado por su LED y por las correcciones RTCM3, pulsos y reinicios con 3 min entre cada uno), paquete LFP, NTC de la celda en PC5, ignición por ADC y EFCR = 0x30 lo primero.
|
||||
- **Nuevo:** el ciclo de 10 min en batería con el MCU en STOP (criterio 3), la prueba de los puertos serie con `S` y `U` (criterio 5), el acelerómetro y el PHY del W5500 apagado para el piso dormido.
|
||||
- **Auditoría del 29-oct:** tres revisiones independientes, 33 hallazgos corregidos; el más grave, un reloj que a los 24.86 días dejaba a un módem sano como «oscuro» y lo reiniciaba cada 0.6 s ([detalle](../hardware/firmware-auditoria-29oct.md)).
|
||||
- Autoprueba: **21 PASS por USB** (22 con 5 V). 118 escenarios del simulador en verde.
|
||||
|
||||
| Tarjeta | Binario de prueba | Tamaño | SHA-256 |
|
||||
|---|---|---|---|
|
||||
| V5.6 y V5.7 | [`prueba/hbox-tarjetaV56_0.7.0-pre.bin`](prueba/hbox-tarjetaV56_0.7.0-pre.bin) | 112 456 B | `8dd260473e933d17…` |
|
||||
| V5.6 y V5.7, solo la prueba de Ethernet 24 h del piloto | [`prueba/hbox-tarjetaV56_0.7.0-pre-eth.bin`](prueba/hbox-tarjetaV56_0.7.0-pre-eth.bin) | 129 520 B | `2d0969b08e8670c8…` |
|
||||
| V5.6 y V5.7 | [`prueba/hbox-tarjetaV56_0.7.0-pre2.bin`](prueba/hbox-tarjetaV56_0.7.0-pre2.bin) | 128 204 B | `43aeabcfdb7055c1…` |
|
||||
| V5.6 y V5.7, solo la prueba de Ethernet 24 h del piloto | [`prueba/hbox-tarjetaV56_0.7.0-pre2-eth.bin`](prueba/hbox-tarjetaV56_0.7.0-pre2-eth.bin) | 129 304 B | `051af1b2c7596c16…` |
|
||||
|
||||
El `-eth` lleva además el W5500 (espejo de NMEA y telemetría a un servidor TCP por J6) y se usa solo en la prueba de 24 h del criterio 5; al terminar, la tarjeta vuelve al binario de arriba. Cómo se prueba: [prueba y flasheo V5.6/V5.7](../procedimientos/v56-v57-prueba-y-flasheo.md), con el [acta de la V5.6](../formularios/v56.html) o la [de la V5.7](../formularios/v57.html). Qué cambió: [notas de versión → 0.7.0-pre](notas-de-version.md#070-pre-en-prueba).
|
||||
El `-eth` lleva además el W5500 (espejo de NMEA y telemetría a un servidor TCP por J6) y se usa solo en la prueba de 24 h del criterio 5; no trae el ciclo de batería ni la prueba serie (no caben juntos en el RCT6). Al terminar, la tarjeta vuelve al binario de arriba. Cómo se prueba: [prueba y flasheo V5.6/V5.7](../procedimientos/v56-v57-prueba-y-flasheo.md) (versión 1.2), con el [acta de la V5.6](../formularios/v56.html) o la [de la V5.7](../formularios/v57.html) y el [acta del banco del piloto](../formularios/piloto.html). Qué cambió: [notas de versión → 0.7.0-pre2](notas-de-version.md#070-pre2-en-prueba).
|
||||
|
||||
!!! 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_…`.
|
||||
@ -128,6 +129,7 @@ No se flashean. Sirven para identificar lo que trae una tarjeta vieja o para vol
|
||||
|
||||
| Archivo | Por qué se retiró |
|
||||
|---|---|
|
||||
| [`superseded/hbox-tarjetaV56_0.7.0-pre.bin`](superseded/hbox-tarjetaV56_0.7.0-pre.bin) · [`superseded/hbox-tarjetaV56_0.7.0-pre-eth.bin`](superseded/hbox-tarjetaV56_0.7.0-pre-eth.bin) | V5.6 y V5.7. Prueba de banco del 27-oct, sustituida el 29-oct por 0.7.0-pre2 sin haber llegado a ninguna tarjeta: no trae el ciclo de batería ni la prueba serie, y a los 24.86 días un módem sano podía quedar como «oscuro» (A-01). |
|
||||
| [`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.6.2.bin`](superseded/hbox-v5-bringup_0.6.2.bin) · [`superseded/hbox-tarjetaV4_0.6.2.bin`](superseded/hbox-tarjetaV4_0.6.2.bin) | Prueba de banco del 30-sep, sustituida el 1-oct por 0.6.3 (misma telemetría y mismo gobernador). Tras un respaldo corto con el paquete bajo el módem podía quedar oscuro hasta un reset. |
|
||||
| [`superseded/hbox-v5-bringup_0.6.1.bin`](superseded/hbox-v5-bringup_0.6.1.bin) · [`superseded/hbox-tarjetaV4_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](notas-de-version.md#por-que-se-retiro-061)). |
|
||||
@ -210,5 +212,7 @@ Lista y comandos: [reflasheo §5](../procedimientos/reflasheo-unidades.md#5-para
|
||||
| 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. |
|
||||
| 2.3 | 2026-10-01 | 0.6.3 en prueba de banco, en `prueba/` (V4 `a6c3b467…`, V5 `3641159a…`); 0.6.2 a `superseded/`; 0.6.0 sigue vigente. |
|
||||
| 2.4 | 2026-10-22 | Designadores T43 (22-oct): la V5.6 ya se nombra con `R68` y `R58` (antes `RS1` y `R50`). |
|
||||
| 2.5 | 2026-10-27 | 0.7.0-pre en prueba de banco para la V5.6 y la V5.7 (`8dd26047…`), con el build `-eth` para la prueba de Ethernet (`2d0969b0…`). |
|
||||
| 2.6 | 2026-10-29 | 0.7.0-pre2 en prueba de banco (`43aeabcf…`, `-eth` `051af1b2…`); 0.7.0-pre a `superseded/`. |
|
||||
|
||||
Versiones anteriores en git.
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
---
|
||||
title: "Notas de versión — firmware V4 / V5"
|
||||
tags: [project-drogheda, hbox, firmware, notas-de-version, v4, v5, v5.6, v5.7, cargador, ltc4040, modem, descargas]
|
||||
date: 2026-10-27
|
||||
date: 2026-10-29
|
||||
project: Project Drogheda
|
||||
author: Helgen Technologies
|
||||
version: "1.5"
|
||||
version: "1.6"
|
||||
---
|
||||
|
||||
# Notas de versión — firmware V4 / V5
|
||||
@ -17,13 +17,15 @@ Un solo código fuente (`hbox_v5_bringup`) para las tarjetas: la V5 usa `hbox-v5
|
||||
- **0.6.1** (retirada al día siguiente): el gobernador distingue una ráfaga del módem de una fuente que no aguanta. Pero su `$PHLG` era demasiado largo para el módem y el monitor se quedó sin Salud ni Energía.
|
||||
- **0.6.2** (prueba de banco del 30-sep, sustituida por 0.6.3): el gobernador de 0.6.1, con la telemetría en dos líneas cortas que el módem sí deja pasar.
|
||||
- **0.6.3** (en prueba de banco desde el 1-oct): 0.6.2, y además el módem que se apagaba en un respaldo corto con el paquete bajo vuelve solo, el motivo de cada reset llega al servidor y la unidad avisa si el cargador no carga un paquete bajo.
|
||||
- **0.7.0-pre** (en prueba de banco desde el 27-oct, **solo V5.6 y V5.7**): el primer firmware que enciende y vigila el módem de esas tarjetas, con el paquete LFP, la NTC en PC5 y la ignición por ADC. En la V5.5 y la V4 nada cambia.
|
||||
- **0.7.0-pre** (prueba de banco del 27-oct, **solo V5.6 y V5.7**; sustituida el 29-oct sin llegar a ninguna tarjeta): el primer firmware que enciende y vigila el módem de esas tarjetas, con el paquete LFP, la NTC en PC5 y la ignición por ADC. En la V5.5 y la V4 nada cambia.
|
||||
- **0.7.0-pre2** (en prueba de banco desde el 29-oct, **solo V5.6 y V5.7**): 0.7.0-pre más el ciclo de 10 min en batería con el MCU en STOP, la prueba de los puertos serie, el acelerómetro y el W5500 apagado para el piso dormido, con las tres revisiones de la auditoría del 29-oct. Con ella se corren los 8 criterios del piloto.
|
||||
|
||||
## Estado al 27-oct-2026 {#estado-al-1-oct-2026}
|
||||
## Estado al 29-oct-2026 {#estado-al-1-oct-2026}
|
||||
|
||||
| Versión | Fecha | Estado | Binarios |
|
||||
|---|---|---|---|
|
||||
| 0.7.0-pre | 27-oct | **En prueba de banco, solo V5.6 y V5.7** (piloto). No va a campo ([abajo](#070-pre-en-prueba)) | [V5.6 y V5.7](prueba/hbox-tarjetaV56_0.7.0-pre.bin) · [con Ethernet, para la prueba de 24 h](prueba/hbox-tarjetaV56_0.7.0-pre-eth.bin) |
|
||||
| 0.7.0-pre2 | 29-oct | **En prueba de banco, solo V5.6 y V5.7** (piloto). No va a campo ([abajo](#070-pre2-en-prueba)) | [V5.6 y V5.7](prueba/hbox-tarjetaV56_0.7.0-pre2.bin) · [con Ethernet, para la prueba de 24 h](prueba/hbox-tarjetaV56_0.7.0-pre2-eth.bin) |
|
||||
| 0.7.0-pre | 27-oct | Prueba de banco del 27-oct; sustituida por 0.7.0-pre2 el 29-oct sin haber llegado a ninguna tarjeta ([abajo](#070-pre-en-prueba)) | [V5.6 y V5.7](superseded/hbox-tarjetaV56_0.7.0-pre.bin) · [con Ethernet](superseded/hbox-tarjetaV56_0.7.0-pre-eth.bin) |
|
||||
| 0.6.3 | 1-oct | **En prueba de banco** desde el 1-oct. No flashear en campo hasta que pase ([abajo](#063-en-prueba)) | [V5](prueba/hbox-v5-bringup_0.6.3.bin) · [V4](prueba/hbox-tarjetaV4_0.6.3.bin) |
|
||||
| 0.6.2 | 29-sep | Prueba de banco del 30-sep; sustituida por 0.6.3 el 1-oct ([abajo](#062-en-prueba)) | [V5](superseded/hbox-v5-bringup_0.6.2.bin) · [V4](superseded/hbox-tarjetaV4_0.6.2.bin) |
|
||||
| 0.6.1 | 28-sep | **Retirada el 29-sep: no flashear.** Su telemetría no llega al monitor ([por qué](#por-que-se-retiro-061)) | [V5](superseded/hbox-v5-bringup_0.6.1.bin) · [V4](superseded/hbox-tarjetaV4_0.6.1.bin) |
|
||||
@ -59,8 +61,43 @@ Desde 0.6.2 el firmware manda en banda el `$PHLG` con los campos 1–24 y, en el
|
||||
| Al volver el 24 V tras un respaldo | Reset del MCU tras ≥ 10 s | Igual | Igual. 0.6.3: también tras ≥ 1 s si el paquete bajó de 3.70 V; el motivo sale en `$PHEV BOOT` |
|
||||
| Build de banco con Ethernet | `0.6.0-eth` (sin cargador) | `0.6.0-eth` (con gobernador) | `0.6.1-eth` … `0.6.3-eth` (ya no repite el DHCP cada 5 s) |
|
||||
|
||||
## 0.7.0-pre2 en prueba de banco (29-oct): V5.6 y V5.7 {#070-pre2-en-prueba}
|
||||
|
||||
Publicada el 29-oct **solo para el banco del piloto** ([Descargas](index.md#firmware-del-hbox-que-binario-va-en-que-tarjeta), carpeta `prueba/`). Sustituye a 0.7.0-pre (27-oct), que pasa a `superseded/` sin haber llegado a ninguna tarjeta. Con ella se pueden correr los 8 criterios del piloto. En la V5.5 y la V4 no cambia nada.
|
||||
|
||||
### Qué trae
|
||||
|
||||
| | 0.7.0-pre2 |
|
||||
|---|---|
|
||||
| Batería (F-2) | Al perder el 5 V la ventana en curso sigue y cierra con ≥ 120 s, fix y 2 `$PHLG` después de la primera RTCM (el enlace probado); sin RTCM, a los 180 s. Luego todo apagado en orden y el MCU en **STOP**: despierta cada 5 s y a los 10 min del inicio de la ventana anterior. Un episodio de movimiento en reposo abre una ventana a los 5 min del inicio de la anterior (o ya, si pasaron). Con la USB conectada no hay STOP |
|
||||
| Puertos serie (F-3) | Tecla `S`: RS-232 en lazo con un puente en J12 y RS-485 contra otra tarjeta en eco (`U`). Autoprueba `SER_B_LAZO` (lazo interno, sin cables; mide el cristal Y3 contra el reloj del MCU) |
|
||||
| Acelerómetro (F-5) | LIS2DH12 a 10 Hz con interrupción de movimiento; `$PHEV MOTION` en banda solo sin 5 V o sin ignición. Autoprueba `ACCEL_1G` |
|
||||
| W5500 (E-3) | Con `/SYS5V`, el PHY en *power-down* (para el piso dormido), revisado cada minuto. Tecla `W` para comparar con el reset en el PPK2. Autoprueba `W5500_PHY` |
|
||||
| Robustez | Cristal de 25 MHz muerto: arranca con el oscilador interno en vez de quedarse mudo. Bus I²C colgado: se libera solo. Sin los TMP102: protege con el sensor del MCU y no rearma después de un corte térmico |
|
||||
| Auditoría (29-oct) | 33 hallazgos corregidos (17 de la revisión A y 16 de la C); el más grave, un reloj que a los 24.86 días convertía un módem sano en «oscuro» y lo reiniciaba cada 0.6 s ([abajo](#auditoria-independiente-29-oct)) |
|
||||
| Autoprueba | 21 PASS por USB, 22 con 5 V; `ADC` y `MODEM_APAGADO` ya son veredictos |
|
||||
| Teclas | `S`, `U`, `Z`, `W` nuevas; `A` pide `Y`; los bloqueos del operador vencen a las 2 h sin USB |
|
||||
| En banda | `$PHLG` con la versión `0.7.0p2`; eventos nuevos `DUTY_*`, `MOTION`, `I2C_RECOVER`, `TEMP_SRC`, `TEMP_NOREARM`, `WARM_LOOP`, `OVR_EXPIRE`, `CLOCK` (`hse_fail`, `hse_fail_stop`), `RTC` |
|
||||
|
||||
### Auditoría independiente (29-oct) {#auditoria-independiente-29-oct}
|
||||
|
||||
Tres revisiones, cada una por un agente que no escribió el código: el 0.7.0-pre completo en la V5.6/V5.7, lo nuevo de 0.7.0-pre2 y la v6. Detalle: [auditoría del firmware del 29-oct](../hardware/firmware-auditoria-29oct.md).
|
||||
|
||||
Dos afirmaciones de las notas de 0.7.0-pre quedan corregidas: el «falso oscuro de los 24.8 días» seguía ahí cuando la evidencia era vieja (ya corregido), y «un caster caído ya no castiga a un módem sano» solo era cierto con el LED fijo desde el arranque. Con el caster caído y el LED invisible para el MCU (su salida es de 1.8 V, justo en el umbral de entrada) un módem sano todavía recibe pulsos y reinicios: se decide después de medir el LED en el banco (§7.6 del procedimiento). Mientras, el piloto usa el caster de Helgen y anota `rst=` y `pwrcyc=`.
|
||||
|
||||
### Lo que no cabe en el build `-eth`
|
||||
|
||||
`hbox-tarjetaV56_0.7.0-pre2-eth.bin` es solo para la prueba de Ethernet de 24 h (criterio 5): no trae el ciclo de batería (en batería se queda en respaldo continuo), la prueba serie, la leyenda ni el tiempo de Y3 en `SER_B_LAZO`. En el RCT6 no caben con Ethernet.
|
||||
|
||||
### Cómo probarla
|
||||
|
||||
[Prueba y flasheo V5.6/V5.7](../procedimientos/v56-v57-prueba-y-flasheo.md), versión 1.2, con las actas de tarjeta y del banco del piloto ya al día.
|
||||
|
||||
## 0.7.0-pre en prueba de banco (27-oct): V5.6 y V5.7 {#070-pre-en-prueba}
|
||||
|
||||
!!! note "Sustituida el 29-oct por [0.7.0-pre2](#070-pre2-en-prueba)"
|
||||
Sus binarios pasaron a `superseded/` sin haber llegado a ninguna tarjeta. Lo de abajo sigue valiendo: 0.7.0-pre2 lo trae todo.
|
||||
|
||||
Publicada el 27-oct **solo para el banco del piloto** ([Descargas](index.md#firmware-del-hbox-que-binario-va-en-que-tarjeta), carpeta `prueba/`). Es la pieza F-1 del plan de firmware. Un solo binario para la V5.6 y la V5.7, porque los 64 pines del MCU son iguales. En la V5.5 y la V4 no cambia nada: siguen con 0.6.x.
|
||||
|
||||
### Por qué hacía falta
|
||||
@ -86,9 +123,9 @@ Publicada el 27-oct **solo para el banco del piloto** ([Descargas](index.md#firm
|
||||
|
||||
Antes de publicarla, un agente que no escribió el código revisó el bloque del módem y encontró 14 puntos: un pico de ruido en el LED contaba como vida, un 5 V que rebota reiniciaba el módem en lazo, un caster caído castigaba a un módem sano, a los 24.8 días un módem sano salía «oscuro», el reinicio por software no apagaba en orden, durante el reinicio de alimentación algo seguía sosteniendo el riel del módem, entre otros. Todos quedaron corregidos y cada uno tiene su escenario en el simulador: 27 de V5.6/V5.7, 81 en total, todos en verde.
|
||||
|
||||
### Qué falta (F-2 a F-8)
|
||||
### Qué faltaba (F-2 a F-8)
|
||||
|
||||
Ciclo de 10 min en batería con el piso dormido < 100 mW, driver del SC16IS752 (RS-485 / RS-232), Ethernet de campo, el acelerómetro para despertar y FOTA (D-22-6: el volumen lleva RET6). Con 0.7.0-pre se pueden correr 6 de los 8 criterios del piloto, y la parte Ethernet del criterio 5 con el build de banco `hbox-tarjetaV56_0.7.0-pre-eth.bin` (24 h por J6). Ese build usa el 98 % de la flash del RCT6: F-3 no cabe en la misma imagen, así que en las tarjetas del piloto Ethernet y el lazo serie se prueban por separado (en el RET6 del volumen sí caben).
|
||||
F-2, F-3 y F-5 llegaron en 0.7.0-pre2. Al 27-oct faltaban: ciclo de 10 min en batería con el piso dormido < 100 mW, driver del SC16IS752 (RS-485 / RS-232), Ethernet de campo, el acelerómetro para despertar y FOTA (D-22-6: el volumen lleva RET6). Con 0.7.0-pre se pueden correr 6 de los 8 criterios del piloto, y la parte Ethernet del criterio 5 con el build de banco `hbox-tarjetaV56_0.7.0-pre-eth.bin` (24 h por J6). Ese build usa el 98 % de la flash del RCT6: F-3 no cabe en la misma imagen, así que en las tarjetas del piloto Ethernet y el lazo serie se prueban por separado (en el RET6 del volumen sí caben).
|
||||
|
||||
### Cómo probarla
|
||||
|
||||
@ -327,14 +364,14 @@ Detalle de cada versión anterior: [Descargas → versiones superadas](index.md#
|
||||
## Cómo saber qué versión tiene una unidad
|
||||
|
||||
- Consola USB: al arrancar, bajo una línea de `=====`, sale `hbox-v5-bringup 0.6.1 built …` y en la línea siguiente `board=EinarBoard v5 (HBOX v5)` o `v4`.
|
||||
- `$PHLG`, campo 1: `0.5.9-fm`, `0.6.0`, `0.6.1`, `0.6.2`, `0.6.3` (`-eth` en los builds de banco con Ethernet). Desde 0.6.2 detrás de cada `$PHLG` sale una `$PHCG`. Ojo: `0.6.0-eth` salió de dos códigos, 0.5.9 (sin cargador; el monitor dice «sin cargar») y 0.6.0 (con gobernador).
|
||||
- `$PHLG`, campo 1: `0.5.9-fm`, `0.6.0`, `0.6.1`, `0.6.2`, `0.6.3`; en la V5.6/V5.7, `0.7.0p` y `0.7.0p2` (`-eth` en los builds de banco con Ethernet). Desde 0.6.2 detrás de cada `$PHLG` sale una `$PHCG`. Ojo: `0.6.0-eth` salió de dos códigos, 0.5.9 (sin cargador; el monitor dice «sin cargar») y 0.6.0 (con gobernador).
|
||||
- Monitor: detalle de la unidad, chip **fw**.
|
||||
|
||||
## Pendiente
|
||||
|
||||
- V5.5 / V4: si el módem se apaga en batería no vuelve a arrancar sobre el boost. Es hardware y lo corrige la V5.6; el firmware evita apagarlo y lo recupera con un reset al volver el 24 V (desde 0.6.3 también tras un respaldo corto con el paquete bajo).
|
||||
- La vigilancia del módem todavía no actúa: sus umbrales se fijan con la [prueba en batería §2](../procedimientos/prueba-bateria-modem.md#2-aceptacion-059-y-06x).
|
||||
- Lazo y eco de RS-485 / RS-232: queda para un build posterior. 0.6.1–0.6.3 salieron como arreglos del cargador, la telemetría y la recuperación del módem, y solo comprueban que el SC16IS752 responde.
|
||||
- Lazo y eco de RS-485 / RS-232 en la V5.5 y la V4: queda para un build posterior. 0.6.1–0.6.3 salieron como arreglos del cargador, la telemetría y la recuperación del módem, y solo comprueban que el SC16IS752 responde. En la V5.6 y la V5.7 ya están en 0.7.0-pre2 (teclas `S` y `U`).
|
||||
- El largo máximo de línea que deja pasar el módem: lo mide la tecla `X` (0.6.2 y 0.6.3) en el banco.
|
||||
- El umbral de 3.70 V del paquete (reset tras un respaldo corto) sale de dos puntos del banco; se confirma con cortes de 5 s a varios voltajes del paquete.
|
||||
- V5.6: `R68` 10 mΩ y `R58` 1.5 kΩ (~1.3 A de carga; antes de T43, 22-oct, `RS1` y `R50`). Con eso el gobernador casi nunca tendrá que cortar.
|
||||
@ -348,3 +385,5 @@ Detalle de cada versión anterior: [Descargas → versiones superadas](index.md#
|
||||
| 1.2 | 2026-09-30 | 0.6.2 en prueba de banco: telemetría en `$PHLG` corto + `$PHCG`, tecla `X` y cómo probarla; binarios en `prueba/`. |
|
||||
| 1.3 | 2026-10-01 | 0.6.3 en prueba de banco: reset tras un respaldo corto con el paquete bajo, motivo del reset al servidor, `CHG_NOCHG`, cómo probarla, hallazgos de la V5 del banco; 0.6.2 a `superseded/`; 0.6.x no sirve en la V5.6. |
|
||||
| 1.4 | 2026-10-22 | Designadores T43 (22-oct): la V5.6 ya se nombra con `R68` y `R58` (antes `RS1` y `R50`). |
|
||||
| 1.5 | 2026-10-27 | 0.7.0-pre en prueba de banco, solo V5.6 y V5.7 (F-1: el módem bajo control del MCU), con su build de Ethernet. |
|
||||
| 1.6 | 2026-10-29 | 0.7.0-pre2 en prueba de banco (F-2, F-3, F-5, E-3 y la auditoría del 29-oct); 0.7.0-pre a `superseded/`. |
|
||||
|
||||
BIN
docs/descargas/prueba/hbox-tarjetaV56_0.7.0-pre2-eth.bin
Normal file
BIN
docs/descargas/prueba/hbox-tarjetaV56_0.7.0-pre2-eth.bin
Normal file
Binary file not shown.
BIN
docs/descargas/prueba/hbox-tarjetaV56_0.7.0-pre2.bin
Normal file
BIN
docs/descargas/prueba/hbox-tarjetaV56_0.7.0-pre2.bin
Normal file
Binary file not shown.
@ -1,4 +1,4 @@
|
||||
/* Acta de ensamble — unidad HBOX con EinarBoard V5.6 o V5.7 y firmware 0.7.0-pre (27-oct-2026).
|
||||
/* Acta de ensamble — unidad HBOX con EinarBoard V5.6 o V5.7 y firmware 0.7.0-pre2 (27-oct-2026; 29-oct: 0.7.0-pre2, 22 PASS con 24 V).
|
||||
Tipo 'ensamble' (el mismo que la V5.5: el embudo de producción y la regla «un módulo, una unidad» valen igual).
|
||||
Número de unidad: HBOX56-Exx-Axxx-Rxxxx / HBOX57-Exx-Axxx-Rxxxx. Procedimiento: procedimientos/v56-v57-ensamble.md.
|
||||
Incluye la prueba final de la unidad del piloto (§5 a §7). */
|
||||
@ -33,7 +33,7 @@ window.actaEnsambleV5x = function (ver) {
|
||||
items: [
|
||||
{ tipo: 'fecha', clave: 's01_00_fecha', req: true, guardaEn: 'fecha', txt: 'Fecha' },
|
||||
{ tipo: 'check', clave: 's01_01_banco', req: true, txt: 'Ninguno de los dos módulos es del juego de banco (etiqueta «BANCO»): esos no se ensamblan mientras dure el piloto.' },
|
||||
{ tipo: 'check', clave: 's01_02_fw', req: true, txt: 'La tarjeta trae 0.7.0-pre de su acta de prueba (el encabezado lo dirá en §5).' },
|
||||
{ tipo: 'check', clave: 's01_02_fw', req: true, txt: 'La tarjeta trae 0.7.0-pre2 de su acta de prueba (el encabezado lo dirá en §5).' },
|
||||
] },
|
||||
{ titulo: '2 · Tarjeta (sin energía)',
|
||||
items: [
|
||||
@ -64,7 +64,7 @@ window.actaEnsambleV5x = function (ver) {
|
||||
{ titulo: '5 · Energizado desde 24 V (sin batería) y prueba de la unidad',
|
||||
sub: 'Fuente 24.0 V, límite 1.5 A, al GX16. Interruptor de corte en ON. USB en J7, terminal a 115200. Ignición (GX16 pin 3) a 24 V.',
|
||||
items: [
|
||||
{ tipo: 'check', clave: 's05_00_post', req: true, txt: 'Consola: <code>hbox-v5-bringup 0.7.0-pre</code>, <b>18 PASS</b> y <code>>>> BOARD OK</code>.' },
|
||||
{ tipo: 'check', clave: 's05_00_post', req: true, txt: 'Consola: <code>hbox-v5-bringup 0.7.0-pre2</code>, <b>22 PASS</b> y <code>>>> BOARD OK</code>.' },
|
||||
{ tipo: 'medida', clave: 's05_01_v5', txt: 'STAT v5', esperado: v57 ? '5.20–5.45 V' : '5.20–5.40 V', u: 'V' },
|
||||
{ tipo: 'check', clave: 's05_02_secuencia', req: true, txt: 'Sola, en modo AUTO: <code>STACK ON</code> → <code>NMEA primera trama</code> → <code>MODEM ON</code> → <code>MODEM_RST</code> → <code>MODEM VIVO</code> → <code>MODOB ON</code> (K1 hace clic).' },
|
||||
{ tipo: 'medida', clave: 's05_03_rtcm', txt: 'MODEM ON → primer STAT con rtcm > 0', esperado: '< 60 s', u: 's' },
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
<div id="acta"></div>
|
||||
<script src="acta.js"></script>
|
||||
<script>
|
||||
/* Acta del banco del piloto (27-oct-2026) — tipo 'banco-piloto', una por versión:
|
||||
/* Acta del banco del piloto (27-oct-2026; 29-oct: firmware 0.7.0-pre2 — criterios 3 y 5 ya se pueden) — tipo 'banco-piloto', una por versión:
|
||||
PILOTO-V5-6 (las 5 V5.6) y PILOTO-V5-7 (las 5 V5.7). Registra los 8 criterios que liberan las 135 V5.6 y las
|
||||
365 V5.7 (auditoría final del 22-oct, §7, en la numeración de T43). Se llena en varios días: el borrador queda
|
||||
guardado en este navegador hasta enviarla. Procedimiento: procedimientos/v56-v57-prueba-y-flasheo.md §10. */
|
||||
@ -32,8 +32,7 @@ Acta.render({
|
||||
intro: 'Llénala a lo largo del banco del piloto; el borrador queda en este navegador hasta que la envíes. '
|
||||
+ 'Procedimiento: <a href="../procedimientos/v56-v57-prueba-y-flasheo/#10-banco-del-piloto-los-8-criterios-para-liberar-las-135-y-las-365">'
|
||||
+ 'V5.6 y V5.7 — §10, banco del piloto</a>. Cada tarjeta tiene además su acta de prueba (V56-NN / V57-NN). '
|
||||
+ 'Envía como <b>FALLA</b> si un criterio no pasa por diseño; si solo faltan criterios que esperan firmware (F-2, F-3), '
|
||||
+ 'no la envíes todavía.',
|
||||
+ 'Envía como <b>FALLA</b> si un criterio no pasa por diseño. Con el firmware 0.7.0-pre2 ya se pueden correr los 8 criterios.',
|
||||
secciones: [
|
||||
{ titulo: '0 · Datos',
|
||||
items: [
|
||||
@ -49,7 +48,7 @@ Acta.render({
|
||||
columnas: [ SERIE,
|
||||
{ k: 'lupa', txt: 'U14 con lupa', opciones: ['OK', 'defecto'] },
|
||||
{ k: 'rx', txt: 'Rayos X de JLC', opciones: ['OK', 'no llegó', 'defecto'] },
|
||||
{ k: 'post', txt: 'Autoprueba', opciones: ['18 PASS', 'FAIL'] } ] },
|
||||
{ k: 'post', txt: 'Autoprueba', opciones: ['21 PASS', 'FAIL'] } ] },
|
||||
{ tipo: 'radio', clave: 's01_99_est', req: true, txt: 'Criterio 1', opciones: ESTADO },
|
||||
] },
|
||||
{ titulo: 'Criterio 2 · NMEA, módem, Kelvin y carga (con 5 V del vehículo)',
|
||||
@ -64,12 +63,13 @@ Acta.render({
|
||||
{ tipo: 'radio', clave: 's02_99_est', req: true, txt: 'Criterio 2', opciones: ESTADO },
|
||||
] },
|
||||
{ titulo: 'Criterio 3 · Batería: 20 ciclos de 10 min al 20 % y 45 °C, piso dormido < 100 mW, SYS5V > 4.3 V',
|
||||
sub: 'El ciclo de 10 min y el piso dormido esperan al firmware F-2. Con 0.7.0-pre se registra el respaldo continuo a 45 °C.',
|
||||
sub: 'Con 0.7.0-pre2 (F-2), procedimiento §10.1: un ciclo con la consola, los 20 sin USB (con la USB conectada no hay STOP), SYS5V con osciloscopio en J2 pin 2 y el piso con el PPK2 en serie con J5 pin 1 (interruptor en paralelo cerrado en las ventanas).',
|
||||
items: [
|
||||
{ tipo: 'medida', clave: 's03_00_bkp', txt: '0.7.0-pre: horas de respaldo continuo a 45 °C, paquete lleno, hasta -> SLEEP (2.95 V)', u: 'h', ph: '9.5' },
|
||||
{ tipo: 'medida', clave: 's03_01_v5min', txt: '0.7.0-pre: v5min más bajo durante el respaldo (SYS5V)', esperado: '> 4.3 V', u: 'V' },
|
||||
{ tipo: 'medida', clave: 's03_02_ciclos', txt: 'F-2: ciclos de 10 min completos (al 20 % y 45 °C)', esperado: '20 de 20', ph: '20' },
|
||||
{ tipo: 'medida', clave: 's03_03_piso', txt: 'F-2: piso dormido (PPK2)', esperado: '< 100 mW', u: 'mW' },
|
||||
{ tipo: 'medida', clave: 's03_00_bkp', txt: 'Solo si se corrió con 0.7.0-pre: horas de respaldo continuo a 45 °C hasta -> SLEEP (con 0.7.0-pre2 se deja vacío)', u: 'h', ph: '9.5' },
|
||||
{ tipo: 'medida', clave: 's03_01_v5min', txt: 'SYS5V mínimo en las ráfagas de una ventana (osciloscopio en J2 pin 2; el v5min de STAT no sirve: es VEH5V)', esperado: '> 4.3 V', u: 'V' },
|
||||
{ tipo: 'medida', clave: 's03_02_ciclos', txt: 'Ciclos de 10 min completos al 20 % y 45 °C (STAT ventanas= / omitidas=, o DUTY_SLEEP con phlg ≥ 2 en el monitor)', esperado: '20 de 20', ph: '20' },
|
||||
{ tipo: 'medida', clave: 's03_03_piso', txt: 'Piso dormido: corriente media × voltaje del paquete (PPK2, sin USB, etapa en reposo)', esperado: '< 100 mW', u: 'mW' },
|
||||
{ tipo: 'medida', clave: 's03_04_pisow', txt: 'El mismo piso con el W5500 en reset (tecla W antes de desconectar la USB; A/B de la auditoría del 29-oct, L3)', esperado: 'anotar: el menor decide', u: 'mW' },
|
||||
{ tipo: 'radio', clave: 's03_99_est', req: true, txt: 'Criterio 3', opciones: ESTADO },
|
||||
] },
|
||||
{ titulo: 'Criterio 4 · 20 cortes 24 V ↔ batería sin reinicio',
|
||||
@ -82,11 +82,11 @@ Acta.render({
|
||||
{ tipo: 'radio', clave: 's04_99_est', req: true, txt: 'Criterio 4', opciones: ESTADO },
|
||||
] },
|
||||
{ titulo: 'Criterio 5 · RS-485 y RS-232 en lazo, Ethernet 24 h',
|
||||
sub: 'El lazo serie espera al firmware F-3. Ethernet ya se puede: 24 h por J6 con hbox-tarjetaV56_0.7.0-pre-eth.bin (procedimiento §10.1). Hoy también: presencia del SC16IS752, EFCR = 0x30 y niveles.',
|
||||
sub: 'Con 0.7.0-pre2 (procedimiento §10.1): lazo serie con la tecla S (RS-232 con un puente J12.1–J12.2; RS-485 por J11 contra otra tarjeta en eco, tecla U). Ethernet: 24 h por J6 con hbox-tarjetaV56_0.7.0-pre2-eth.bin.',
|
||||
items: [
|
||||
{ tipo: 'check', clave: 's05_00_pres', txt: 'Presencia y niveles en las 5: SC16IS752 y RS485_EFCR en PASS; J12 pin 1 en −5…−6.5 V en reposo; RS-485 con nivel en A y B.' },
|
||||
{ tipo: 'radio', clave: 's05_01_lazo', txt: 'RS-485 / RS-232 en lazo (F-3)', opciones: ['Pendiente: espera F-3', 'Pasó', 'Falló'] },
|
||||
{ tipo: 'radio', clave: 's05_02_eth', txt: 'Ethernet 24 h por J6 (0.7.0-pre-eth)', opciones: ['Pendiente', 'Pasó', 'Falló'] },
|
||||
{ tipo: 'radio', clave: 's05_01_lazo', txt: 'RS-485 / RS-232 en lazo (tecla S: RS232_LAZO y RS485_ECO en PASS)', opciones: ['Pendiente', 'Pasó', 'Falló'] },
|
||||
{ tipo: 'radio', clave: 's05_02_eth', txt: 'Ethernet 24 h por J6 (0.7.0-pre2-eth)', opciones: ['Pendiente', 'Pasó', 'Falló'] },
|
||||
{ tipo: 'medida', clave: 's05_03_eth_h', txt: 'Horas con el servidor conectado', esperado: '≥ 24 h', u: 'h' },
|
||||
{ tipo: 'medida', clave: 's05_04_eth_err', modo: 'text', txt: 'Desconexiones del servidor y drop= al final (V5.6 / V5.7)', esperado: '0 y 0 (o casi)', ph: '0 · drop=0 / 1 · drop=3' },
|
||||
{ tipo: 'radio', clave: 's05_99_est', req: true, txt: 'Criterio 5', opciones: ESTADO },
|
||||
@ -135,7 +135,7 @@ Acta.render({
|
||||
{ tipo: 'medida', clave: 's09_01_l2', txt: 'Rizo de 3V3_MODEM con L2 de 3.3 µH, módem en ráfagas', u: 'mV p-p' },
|
||||
{ tipo: 'medida', clave: 's09_02_l4', txt: 'V5.7: rizo de VEH5V con L4 de 15 µH a 24 V y 2.5 A', u: 'mV p-p', si: es57 },
|
||||
{ tipo: 'check', clave: 's09_03_e13', txt: 'Con el módem apagado, J8 pin 1 queda en 0 V (no en ≈ 1 V: E-13).' },
|
||||
{ tipo: 'check', clave: 's09_04_acc', txt: 'ACCEL en PASS con WHO_AM_I = 0x33 (LIS2DH12) en las 5.' },
|
||||
{ tipo: 'check', clave: 's09_04_acc', txt: 'ACCEL y ACCEL_1G en PASS con WHO_AM_I = 0x33 (LIS2DH12) en las 5.' },
|
||||
] },
|
||||
{ titulo: 'Veredicto',
|
||||
items: [
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
/* Acta de prueba por tarjeta — EinarBoard V5.6 y V5.7 con firmware 0.7.0-pre (27-oct-2026).
|
||||
/* Acta de prueba por tarjeta — EinarBoard V5.6 y V5.7 con firmware 0.7.0-pre2 (27-oct-2026; 29-oct: 0.7.0-pre2, autoprueba 21 PASS por USB).
|
||||
Tipos 'prueba-v56' (V56-NN) y 'prueba-v57' (V57-NN); una por serie. Las dos tarjetas comparten casi todo:
|
||||
este archivo arma la configuración y v56.html / v57.html solo eligen la versión.
|
||||
Procedimiento: procedimientos/v56-v57-prueba-y-flasheo.md (designadores de T43, los de la serigrafía).
|
||||
@ -53,11 +53,11 @@ window.actaV5x = function (ver) {
|
||||
tecnicoDesdeUsuario: true,
|
||||
nombres: { leo: 'Leo Rodríguez', jesus: 'Jesús Romero', gibranlp: 'Gibran Ortega', daniel: 'Daniel Martínez' },
|
||||
etiquetaSerie: 'Tarjeta ' + V,
|
||||
titulo: 'Acta de prueba — EinarBoard ' + V + ' con firmware 0.7.0-pre',
|
||||
titulo: 'Acta de prueba — EinarBoard ' + V + ' con firmware 0.7.0-pre2',
|
||||
subtitulo: 'Un acta por tarjeta (' + P + '-01 …) · ≈ 1 h con el juego de módulos de banco',
|
||||
textoOK: 'APROBADA',
|
||||
intro: 'Llénala mientras avanzas por el procedimiento '
|
||||
+ '<a href="../procedimientos/v56-v57-prueba-y-flasheo/">' + 'V5.6 y V5.7 — prueba y flasheo (0.7.0-pre)</a>. '
|
||||
+ '<a href="../procedimientos/v56-v57-prueba-y-flasheo/">' + 'V5.6 y V5.7 — prueba y flasheo (0.7.0-pre2)</a>. '
|
||||
+ 'Designadores de T43 (los de la serigrafía): <b>SW1 = BOOT0 y SW2 = RESET</b>, al revés que en la V5.5. '
|
||||
+ 'Si una etapa no pasa, marca «me detengo»: lo que sigue se oculta, llenas el Cierre y envías como <b>FALLA</b>. '
|
||||
+ 'La serie PRUEBA sirve para practicar.',
|
||||
@ -65,7 +65,7 @@ window.actaV5x = function (ver) {
|
||||
{ titulo: '0 · Datos',
|
||||
items: [
|
||||
{ tipo: 'fecha', clave: 's00_00_fecha', req: true, guardaEn: 'fecha', txt: 'Fecha' },
|
||||
{ tipo: 'check', clave: 's00_01_sha', req: true, txt: 'SHA-256 de <code>hbox-tarjetaV56_0.7.0-pre.bin</code> verificado contra <code>SHA256SUMS.txt</code> de Descargas.' },
|
||||
{ tipo: 'check', clave: 's00_01_sha', req: true, txt: 'SHA-256 de <code>hbox-tarjetaV56_0.7.0-pre2.bin</code> verificado contra <code>SHA256SUMS.txt</code> de Descargas.' },
|
||||
{ tipo: 'texto', clave: 's00_02_ard', rows: '1', txt: 'simpleRTK2B de banco (ARD-NNN)', ph: 'ARD-004' },
|
||||
{ tipo: 'texto', clave: 's00_03_rtk', rows: '1', txt: '4G NTRIP Master de banco (RTK-NNNN)', ph: 'RTK-0021' },
|
||||
{ tipo: 'texto', clave: 's00_04_fuente', rows: '1', txt: 'Fuente de banco (marca y modelo)', ph: 'p.ej. Korad KA3005D' },
|
||||
@ -121,14 +121,14 @@ window.actaV5x = function (ver) {
|
||||
{ titulo: '6 · Autoprueba (consola en J7, 115200)', si: hasta(5),
|
||||
sub: 'Abre el terminal y pulsa SW2 (RESET); si llegaste tarde, teclea <code>r</code>.',
|
||||
items: [
|
||||
{ tipo: 'check', clave: 's06_00_enc', req: true, txt: 'Encabezado <code>hbox-v5-bringup 0.7.0-pre</code> y <code>board=EinarBoard V5.6/V5.7</code>.' },
|
||||
{ tipo: 'check', clave: 's06_00_enc', req: true, txt: 'Encabezado <code>hbox-v5-bringup 0.7.0-pre2</code> y <code>board=EinarBoard V5.6/V5.7</code>.' },
|
||||
{ tipo: 'radio', clave: 's06_01_flash', req: true, txt: '<code>flash=</code> en el encabezado', opciones: ['256KB (RCT6, piloto)', '512KB (RET6)'] },
|
||||
{ tipo: 'check', clave: 's06_02_efcr', req: true, txt: '<code>RS-485: EFCR_A de U5 = 0x30 … bus libre</code>.' },
|
||||
{ tipo: 'check', clave: 's06_03_mdm', req: true, txt: '<code>modem apagado: LED PC2=0 RTCM PC7=0</code> (0/0).' },
|
||||
{ tipo: 'check', clave: 's06_03_mdm', req: true, txt: '<code>[PASS] MODEM_APAGADO LED PC2=0 RTCM PC7=0</code> (0/0).' },
|
||||
{ tipo: 'check', clave: 's06_04_leds', req: true, txt: 'D10 y el LED de panel parpadean; <b>D17 → D14</b> encienden en secuencia una vez.' },
|
||||
{ tipo: 'medida', clave: 's06_05_temp', modo: 'text', txt: 'TMP102 U12 / TMP102 U8 / SHT40 (°C)', esperado: 'a menos de 5 °C entre sí', ph: '27.5 / 27.8 / 27.9' },
|
||||
volt('s06_05b_de', 'U7 pin 3 (DE del RS-485) contra TP1, en reposo', '0 V', '≈ 3.3 V: el transmisor sostiene el bus (E-4): FALLA, avisa a ingeniería.'),
|
||||
{ tipo: 'radio', clave: 's06_06_res', req: true, txt: 'Resultado de la autoprueba', opciones: ['>>> BOARD OK (18 PASS / 0 FAIL)', 'BOARD CHECK FAILED'] },
|
||||
{ tipo: 'radio', clave: 's06_06_res', req: true, txt: 'Resultado de la autoprueba', opciones: ['>>> BOARD OK (21 PASS / 0 FAIL)', 'BOARD CHECK FAILED'] },
|
||||
{ tipo: 'texto', clave: 's06_07_fails', req: true, txt: 'Líneas [FAIL] completas', ph: '[FAIL] ACCEL U1 @0x18 WHO_AM_I=0x00 …', si: v => empieza(v, 's06_06_res', 'BOARD CHECK') },
|
||||
{ tipo: 'archivo', clave: 's06_08_cons', etiqueta: 'consola-autoprueba', txt: 'Captura de la consola desde el encabezado (opcional)' },
|
||||
fin(6, 'Pasó — >>> BOARD OK'),
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Acta de prueba — EinarBoard V5.6 (fw 0.7.0-pre)</title>
|
||||
<title>Acta de prueba — EinarBoard V5.6 (fw 0.7.0-pre2)</title>
|
||||
<script src="../js/tema.js"></script>
|
||||
<script src="/js/incidencias.js"></script>
|
||||
<link rel="stylesheet" href="acta.css">
|
||||
@ -13,7 +13,7 @@
|
||||
<script src="acta.js"></script>
|
||||
<script src="prueba-v56v57.js"></script>
|
||||
<script>
|
||||
/* Acta de prueba de la tarjeta V5.6 con 0.7.0-pre — tipo 'prueba-v56', una por serie (V56-01 …).
|
||||
/* Acta de prueba de la tarjeta V5.6 con 0.7.0-pre2 — tipo 'prueba-v56', una por serie (V56-01 …).
|
||||
La configuración vive en prueba-v56v57.js (la comparten la V5.6 y la V5.7).
|
||||
Procedimiento: procedimientos/v56-v57-prueba-y-flasheo.md */
|
||||
Acta.render(actaV5x('5.6'));
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Acta de prueba — EinarBoard V5.7 (fw 0.7.0-pre)</title>
|
||||
<title>Acta de prueba — EinarBoard V5.7 (fw 0.7.0-pre2)</title>
|
||||
<script src="../js/tema.js"></script>
|
||||
<script src="/js/incidencias.js"></script>
|
||||
<link rel="stylesheet" href="acta.css">
|
||||
@ -13,7 +13,7 @@
|
||||
<script src="acta.js"></script>
|
||||
<script src="prueba-v56v57.js"></script>
|
||||
<script>
|
||||
/* Acta de prueba de la tarjeta V5.7 con 0.7.0-pre — tipo 'prueba-v57', una por serie (V57-01 …).
|
||||
/* Acta de prueba de la tarjeta V5.7 con 0.7.0-pre2 — tipo 'prueba-v57', una por serie (V57-01 …).
|
||||
La configuración vive en prueba-v56v57.js (la comparten la V5.6 y la V5.7).
|
||||
Procedimiento: procedimientos/v56-v57-prueba-y-flasheo.md */
|
||||
Acta.render(actaV5x('5.7'));
|
||||
|
||||
258
docs/hardware/firmware-auditoria-29oct.md
Normal file
258
docs/hardware/firmware-auditoria-29oct.md
Normal file
@ -0,0 +1,258 @@
|
||||
---
|
||||
title: "Firmware 0.7.0: auditoría para V5.6/V5.7 y compatibilidad con la v6 (29-oct)"
|
||||
tags: [project-drogheda, firmware, auditoria, v5.6, v5.7, v6, stm32f411, stop, rtc, sc16is752, lis2dh12, w5500, fota]
|
||||
date: 2026-10-29
|
||||
project: Project Drogheda
|
||||
author: "Helgen Technologies (auditoría: tres revisiones independientes de Claude; integración: Claude; para: Leo)"
|
||||
version: 1.0
|
||||
status: "Publicado con 0.7.0-pre2 (solo banco)"
|
||||
audience: ingeniería
|
||||
---
|
||||
|
||||
# Firmware 0.7.0: auditoría para V5.6/V5.7 y compatibilidad con la v6
|
||||
|
||||
!!! abstract "En una línea"
|
||||
**0.7.0-pre2 sirve para el banco del piloto de la V5.6 y la V5.7 (un solo binario).** Las tres revisiones no encontraron bloqueantes para el banco; el único bloqueante para campo (A-01) y 32 hallazgos más quedaron corregidos, y lo que falta se decide con mediciones del banco. **La v6 no puede correr este binario:** reutiliza ≈ 85 % del código pero necesita un enlace nuevo en el MCU (≈ 46 días-ingeniero) y dos decisiones de Leo (D-29-1 y D-29-2).
|
||||
|
||||
## 1. Qué se pidió y cómo se revisó
|
||||
|
||||
Leo (29-oct, 08:11): auditar a fondo el firmware 0.7.0, que debe servir para la V5.6 y la V5.7 y, ojalá, para la v6. Tres revisiones, cada una por un agente que no escribió el código que revisaba:
|
||||
|
||||
| Revisión | Qué | Contra qué |
|
||||
|---|---|---|
|
||||
| **A** | El 0.7.0-pre publicado el 27-oct (`hbox-firmware` `001d3d2`) en la V5.6 y la V5.7, completo | Los netlists de la V5.6 y la V5.7 (pin por pin), las hojas de datos, el *core* de STM32duino 3.0.0, los invariantes del proyecto y escenarios adversos nuevos en el simulador |
|
||||
| **B** | El 0.7.0 en la v6: qué corre, qué falta y cómo llegar a un solo código | El netlist de la v6 del 28-oct (después de T48, T49 y T41) y un `board_v6.h` de borrador compilado en la Mac |
|
||||
| **C** | Lo nuevo de 0.7.0-pre2 (ciclo de batería con STOP + RTC, driver del SC16IS752, acelerómetro, W5500 en *power-down*, robustez), que A no vio | Manual de referencia del STM32F411 (RM0383), HAL, hojas de datos del SC16IS752, LIS2DH12 y W5500, y el simulador |
|
||||
|
||||
Mientras A y B trabajaban, Claude escribió las piezas que faltaban para el banco del piloto (F-2, F-3, F-5, E-3) y una revisión propia de robustez; C revisó ese código.
|
||||
|
||||
## 2. Resultado
|
||||
|
||||
| Pregunta | Respuesta |
|
||||
|---|---|
|
||||
| ¿El 0.7.0 sirve en la V5.6 y la V5.7? | **Sí, el mismo binario en las dos** (los 64 pines del MCU son iguales; solo cambia la entrada de energía). **Banco sí; campo no** hasta que el piloto pase sus 8 criterios y se cierre A-02 |
|
||||
| ¿Hubo bloqueantes? | Uno para campo: **A-01**, un reloj que a los 24.86 días convertía a un módem sano en «oscuro» y lo reiniciaba cada 0.6 s. Corregido. Ninguno para el banco |
|
||||
| ¿Qué se corrigió? | **33 hallazgos:** 17 de los 23 de la revisión A (§3) y 16 de los 19 de la revisión C (§4), entre ellos los dos de severidad alta de la C (el STOP con la USB desconectada y el acelerómetro que no se reconfiguraba) |
|
||||
| ¿Qué queda? | A-02 (vida del módem con el caster caído) y la A/B del W5500 se deciden con mediciones del banco; A-09, A-13/A-14, A-20 y A-21 tienen dueño (§6). La flash del RCT6 va al 97–98 % |
|
||||
| ¿Y la v6? | **El binario de la V5.6 no corre en la v6** (PC3, PC10, F9P a 38 400, EFCR 0x10). Se reutiliza ≈ 85 % del código; faltan 45–60 KB de enlace propio (A7670, NTRIP, UDP, F9P desnudo, aprovisionamiento, FOTA): ≈ 39–53 días-ingeniero. Un solo código, dos binarios (§5) |
|
||||
| ¿Qué tiene que decidir Leo? | **D-29-1** (seis cambios de hardware de la v6 antes de G1) y **D-29-2** (ruta del RTCM, contrato con htracker, ID de tarjeta, secretos, banco de evaluación y la fecha de G2) |
|
||||
|
||||
## 3. La V5.6 y la V5.7 (revisión A, sobre 0.7.0-pre)
|
||||
|
||||
**Veredicto: banco SÍ, con condiciones; campo NO** hasta cerrar la lista de abajo. No hay ningún bloqueante eléctrico para el banco: el arranque seguro es correcto, las reglas de la etapa, el módem y K1 se cumplen en cada escritura de pin, el analizador de RTCM rechaza la basura, el gobernador de carga corta en una vuelta del lazo y ningún camino bloqueante se acerca al watchdog. Los binarios publicados el 27-oct se reconstruyen **byte por byte** en la Mac con el mismo `SOURCE_DATE_EPOCH`. Los 14 arreglos de la revisión del 27-oct están en el código (dos incompletos: A-01 y A-02). **Sin credenciales** en las fuentes ni en los binarios.
|
||||
|
||||
Los 64 pines del MCU son idénticos en la V5.6 y la V5.7 (netlist, pin por pin) y cada red coincide con `board_v56.h`; las direcciones I²C coinciden con los *straps*. Lo único distinto entre las dos tarjetas es la entrada de energía (J16 externo en la V5.6, U15 TPS54360B en la V5.7): el mismo binario sirve.
|
||||
|
||||
### 3.1 Hallazgos y cómo quedaron en 0.7.0-pre2
|
||||
|
||||
| ID | Severidad | Qué pasaba | En 0.7.0-pre2 |
|
||||
|---|---|---|---|
|
||||
| A-01 | **Bloqueante para campo** | A los 24.86 días de encendido, un flanco del LED o una trama RTCM viejos ganaban las comparaciones con signo y contaban como la evidencia más nueva: OSCURO falso, **pulsos de RESET cada 0.6 s, 91 174 `$PHEV` y cero `$PHLG` en 20 min** (simulador). La unidad desaparecía | ✅ La evidencia de más de 1 día se olvida. Los 4 escenarios del volteo pasan |
|
||||
| A-02 | Alta | Con el caster caído, un módem sano sin LED visible (1.8 V contra un VIH de 1.79–2.31 V) o con el LED fijo recibe pulsos y reinicios de alimentación: 20 pulsos y 4 reinicios en 2 h | ⏳ **Abierto.** El banco caracteriza el LED en cada estado (§7.6) y con eso se decide (leer PC2 por ADC, o no escalar cuando solo falta el RTCM). Mientras: caster de Helgen y anotar `rst=`/`pwrcyc=` |
|
||||
| A-03 | Alta | Sin los TMP102 la protección térmica se abría (−99 = «frío»): tras un corte a 78 °C la etapa se rearmaba a ciegas. El SHT40 muerto se quedaba con su último valor; sin recuperación del bus en marcha | ✅ Protección con el sensor del MCU, **sin rearme** si faltan U12 y U8 (`TEMP_NOREARM`), recuperación del bus I²C en marcha, SHT40 en n/c y con CRC |
|
||||
| A-04 | Alta | Un reset (IWDG, BOR, botón) en batería dejaba la unidad muda hasta que volvía el 24 V | ✅ El ciclo de batería vuelve a abrir la ventana; desde el tercer reset seguido espera 10 min (nunca un lazo) |
|
||||
| A-05 | Media | «5 V presente» (4.20/3.80 V) quedaba debajo del PFI del LTC4040 (4.40/4.51 V): entre 3.8 y 4.4 V la tarjeta corría del paquete sin respaldo ni SLEEP | ✅ Presente > 4.60 V, perdido < 4.45 V (en el archivo de la tarjeta) |
|
||||
| A-06 | Media (banco) | `-eth`: tras un corte de 24 V o la tecla `E`, el W5500 se colgaba en SPI hasta el watchdog | ✅ `SPI.begin()` antes de cada init |
|
||||
| A-07 | Media | Con las banderas de flash solo en C++, el binario enlazaba con la EEPROM en 0x0807E000 (no existe en el RCT6): se caía al arrancar | ✅ `flash_guard.c`: así ya no enlaza (probado en la Mac) |
|
||||
| A-08 | Media | Cristal de 25 MHz muerto = `while(1)` antes del watchdog | ✅ Arranca con el HSI a 96 MHz (CSS queda pendiente: con el HSI y el IWDG basta para el banco) |
|
||||
| A-09 | Media | El BOR nunca se programa (de fábrica: apagado) | ℹ️ La autoprueba lo informa; **programarlo en nivel 3 es un paso de fábrica** (pendiente de decidir dónde) |
|
||||
| A-10 | Media | `A` guardaba MANUAL en flash con una tecla (sobrevive un reflasheo); los bloqueos del operador no vencían | ✅ `A` pide `Y`; `modo=MAN` en `$PHEV BOOT`; los bloqueos vencen a las 2 h sin USB; §11 revisa `modo=AUTO` |
|
||||
| A-11 | Baja | `$PHLG` en banda sin tope: 106–107 caracteres en una unidad estresada | ✅ Contadores con tope y segunda pasada si pasa de 105 |
|
||||
| A-12 | Baja | `g` e `i` bloqueaban con K1 puesto (se perdían bytes del F9P al módem) | ✅ Sueltan K1 antes |
|
||||
| A-13 / A-14 | Baja (hardware) | Base de Q3 sin *pull-down* mientras PA1 está en alta impedancia; el cargador queda encendido por defecto si el MCU no corre | 📝 Para la siguiente revisión de la tarjeta |
|
||||
| A-15 | Info | En batería el ventilador no tiene alimentación, pero el log decía «termostato» | ✅ En batería se apaga y lo dice |
|
||||
| A-16 / A-17 | Info / Baja | Orden de lectura de dos bytes sin especificar; CRC del SHT40 ignorado | ✅ Lecturas en orden; CRC revisado |
|
||||
| A-18 | Baja | El binario solo se reproduce con el mismo `SOURCE_DATE_EPOCH` | ✅ Se publica con el valor anotado en el CHANGELOG |
|
||||
| A-19 | Baja | Tres de las «18 PASS» no podían fallar y la prueba del módem apagado no era veredicto | ✅ `ADC` con rangos y `MODEM_APAGADO` son veredictos |
|
||||
| A-20 | Baja | `$PHEV` sin límite por código | ⏳ Se coordina con el servidor (Gibran): el monitor usa pares de eventos |
|
||||
| A-21 | Baja (sin verificar) | El reinicio de 5 s del módem supone que 3V3_MODEM baja al nivel de reset | ⏳ Osciloscopio en J8.1 con `Q` (§7.8) |
|
||||
| A-22 | Info | En SLEEP el MCU seguía a 96 MHz | ✅ Con el ciclo de 0.7.0-pre2, en SLEEP también hay STOP |
|
||||
| A-23 | Info | Comentarios del LSE, de la vida del módem y de PC2 desactualizados | ✅ Al día |
|
||||
|
||||
### 3.2 Condiciones para el banco (ya están en el procedimiento 1.2)
|
||||
|
||||
1. El build `-eth` solo para las 24 h de Ethernet; al final, un corte de 24 V de 30 s debe pasar sin reinicio (confirma A-06 en hardware). El criterio 4 (20 cortes) siempre con el binario sin `-eth`.
|
||||
2. Caster de Helgen, no rtk2go; `rst=` y `pwrcyc=` al final de cada prueba (A-02).
|
||||
3. §7.6: osciloscopio en J9.8 y PC2 en cada estado del módem (decide A-02).
|
||||
4. §7.8: osciloscopio en J8.1 con `Q` (A-21).
|
||||
5. Pruebas térmicas siempre con alguien presente.
|
||||
6. §11: `modo=AUTO` antes de guardar la tarjeta (A-10).
|
||||
|
||||
### 3.3 Espacio en flash
|
||||
|
||||
En el RCT6 el binario no puede pasar de 128 KB (la EEPROM emulada ocupa el sector 5). El Ethernet de campo (F-4) cuesta ≈ 17 KB: con todo lo demás **no cabe en la misma imagen** del RCT6. Para recuperar espacio, en orden: mover la EEPROM emulada a un sector de 16 KB (libera hasta ≈ 240 KB), quitar el `printf` de punto flotante (≈ 10 KB) y dejar la ayuda y la leyenda fuera de los builds de campo (≈ 17 KB de texto). El FOTA A/B no cabe en el RCT6 en ningún arreglo: necesita el RET6 (D-22-6, ya decidido).
|
||||
|
||||
## 4. Lo nuevo de 0.7.0-pre2 (revisión C)
|
||||
|
||||
**Veredicto: sin bloqueantes; apto para un banco supervisado** con los dos arreglos que pidió y que ya están en el código: el STOP con la USB desconectada (H1) y el procedimiento 1.2 (M4). El código nuevo no pone en riesgo el hardware y mantiene al watchdog alimentado: en un modelo donde el SysTick se detiene en STOP, la recarga más espaciada del IWDG es de 5.0 s. La mecánica del STOP con el RTC es correcta: los despertares caen a los 900, 1500 y 2100 s, `millis()` se desvía menos de 0.1 s en unas 400 siestas y el 5 V que vuelve se ve en ≤ 5 s. El enlace del bloque STOP/RTC y del respaldo con HSI se comprobó con el *core* 3.0.0 en la Mac.
|
||||
|
||||
### 4.1 Qué trae 0.7.0-pre2 para el banco del piloto
|
||||
|
||||
| Pieza | Qué hace | Criterio |
|
||||
|---|---|---|
|
||||
| F-2 · ciclo de batería | Al perder el 5 V la ventana en curso sigue y cierra con ≥ 120 s, fix y 2 `$PHLG` después de la primera RTCM (el enlace probado); sin RTCM, a los 180 s. Luego todo apagado en orden y el MCU en STOP: despierta cada 5 s y a los 10 min del inicio de la ventana anterior. Un episodio de movimiento abre una ventana a los 5 min de la anterior (o ya). Con la USB conectada no hay STOP | 3 |
|
||||
| F-3 · puertos serie | Driver del SC16IS752; tecla `S` (RS-232 con un puente en J12 y RS-485 contra otra tarjeta en eco, `U`); autoprueba `SER_B_LAZO` con el tiempo del cristal Y3 | 5 |
|
||||
| F-5 · acelerómetro | LIS2DH12 a 10 Hz, movimiento por INT1, `$PHEV MOTION` en banda sin 5 V o sin ignición; autoprueba `ACCEL_1G` | — |
|
||||
| E-3 · W5500 | Fuera del build `-eth`, el PHY en *power-down*, verificado cada minuto; tecla `W` para comparar con el reset | 3 |
|
||||
| Robustez | Y2 muerto → HSI; bus I²C colgado → se libera solo; sin TMP102 → sensor del MCU y sin rearme térmico; imagen que invade el sector 5 → aviso y `A` no escribe | — |
|
||||
|
||||
### 4.2 Hallazgos y cómo quedaron
|
||||
|
||||
| ID | Severidad | Qué pasaba | En 0.7.0-pre2 |
|
||||
|---|---|---|---|
|
||||
| H1 | **Alta** | El STOP dependía de `CON.dtr()`. En el *core* 3.0.0 solo lo escribe `SET_CONTROL_LINE_STATE` y no hay detección de VBUS: al desconectar el cable se queda en 1. Siguiendo la propia ayuda («el piso se mide sin USB») nunca había STOP y el criterio 3 habría medido un MCU despierto. Con la USB conectada y la terminal cerrada, el STOP tumbaba el USB | ✅ Decide el estado del dispositivo USB: CONFIGURED = sin STOP; desconectado (SUSPENDED) = STOP. Compila y enlaza con el *core* 3.0.0 |
|
||||
| H2 | **Alta** | Si el bus seguía caído en la única recuperación, el LIS2DH12 quedaba sin configurar para siempre; el primer movimiento enclavaba INT1 y bloqueaba el STOP hasta reiniciar | ✅ Reintento cada 5 s; sin driver, `accIrq` nunca se queda arriba |
|
||||
| M1 | Media | Sin U12/U8 (o dañados) «bus caído» se cumplía siempre: una recuperación por minuto para siempre, U5 despertado y el divisor escrito en *sleep*, y `I2C_RECOVER` llenando la cola en banda | ✅ «Bus caído» exige que callen también el PCF8574 y U5; `I2C_RECOVER` en banda máx. 1 por hora; EFCR_A revisado cada minuto |
|
||||
| M2 | Media | U5 solo se dormía al cerrar una ventana: no tras un corte por SLEEP, por temperatura ni al arrancar en batería (justo el caso del paquete bajo) | ✅ Se duerme en todo reposo, con la FIFO de RX vaciada antes |
|
||||
| M3 | Media | Una vez en *power-down*, el W5500 no se volvía a revisar: si `/3V3_ETH` caía y volvía, regresaba en autonegociación (~75 mA) sin que nadie lo notara | ✅ Verificación cada 60 s; si no cuadra, reset y *power-down* otra vez |
|
||||
| M4 | Media | El procedimiento seguía en 0.7.0-pre | ✅ Procedimiento 1.2 y actas |
|
||||
| M5 | Media | `SER_B_LAZO` pasaba con cualquier cristal que oscilara y decía «3.6864 MHz» | ✅ 32 bytes a 9600 medidos contra el reloj del MCU: 33.3 ms (PASS con 30–38 ms) |
|
||||
| L1 | Baja | Un episodio de movimiento que empezaba antes de los 5 min de la ventana anterior se perdía | ✅ Queda pendiente: la ventana abre a los 5 min de la anterior |
|
||||
| L2 / L3 | Baja | Sin una línea que sense `/3V3_ETH`, el firmware le maneja pines a un W5500 sin alimentación al probarlo; y no se sabe si gasta menos en reset o en *power-down* | ⏳ Acotado: tras 3 intentos sin respuesta, uno por hora. La tecla `W` deja a U2 en reset para medir los dos pisos con el PPK2; el menor decide |
|
||||
| L4 | Baja | El divisor se escribía con U5 en *sleep* (la hoja de datos lo prohíbe) | ✅ Primero se despierta |
|
||||
| L5 | Baja | El canal B quedaba a 115 200 tras la autoprueba | ✅ A 9600 |
|
||||
| L6 | Baja | Si Y2 no rearrancaba al salir de un STOP, nadie lo decía | ✅ `$PHEV CLOCK hse_fail_stop` |
|
||||
| L7 | Baja | Con el LSI el texto prometía ±10 %; la hoja de datos da 17–47 kHz | ✅ Texto corregido (siestas de 3.4–9.4 s, ciclo de ~7–19 min). Con el LSE sano no aplica: un Y4 que no arranca es FALLA en la autoprueba |
|
||||
| L8 | Baja | Con el *option byte* nRST_STOP en 0 cada STOP sería un reset | ✅ Sin STOP en ese caso |
|
||||
| L9 | Baja | El eco de banco (`U`) pasaba a la batería con U5 despierto | ✅ Se apaga al entrar en batería |
|
||||
| L10 | Baja | Al cerrar una ventana, MODEM_EN y PA1 bajaban a microsegundos uno del otro | ✅ 20 ms entre los dos, como en el reset por software |
|
||||
| L11 | Baja | El bus se daba por libre con SDA arriba aunque SCL siguiera abajo | ✅ Se revisan los dos |
|
||||
| L12 | Info | La ventana de 180 s es igual al tiempo sin vida del módem: en batería nunca pasa del primer pulso | ℹ️ Por diseño: cada ventana es un arranque en frío del módem. Para la revisión del módem |
|
||||
|
||||
### 4.3 Lo que solo dice el banco
|
||||
|
||||
El simulador no tiene modelo de corriente ni de USB. En el banco se mide: el piso con el PPK2 (W5500 en *power-down* contra reset, U5 con J11 al aire contra terminado, el MCU en STOP), el primer STOP en silicio, qué pasa al conectar la USB en reposo (la consola debe aparecer al terminar la siesta, ≤ 5 s) y un Y3 de valor equivocado. Todo está en el §10.1 del procedimiento 1.2.
|
||||
|
||||
## 5. La v6: qué del 0.7.0 sirve y qué falta
|
||||
|
||||
Revisión independiente (agente B, 29-oct) contra el netlist de la v6 del 28-oct (después de T48, T49 y T41), con los pines leídos del netlist y no de los documentos. Compiló el 0.7.0 y un `board_v6.h` de borrador en la Mac.
|
||||
|
||||
### 5.1 Veredicto
|
||||
|
||||
**El binario de la V5.6/V5.7 no corre en la v6, y la mitad del firmware que hace de la v6 un producto todavía no existe.**
|
||||
|
||||
En una v6, el 0.7.0 de hoy:
|
||||
|
||||
- nunca enciende el módem: en la v6 el enable es **PC10** y el 0.7.0 no lo toca;
|
||||
- maneja **PC3** como MODEM_EN, pero en la v6 PC3 es la salida *push-pull* `RTK_STAT` del F9P: lo sostiene en bajo contra el alto del F9P los primeros 30 s de cada encendido del GNSS y 5 s dos veces por escalera;
|
||||
- abre el F9P a 115 200 cuando un F9P de fábrica habla a 38 400: no ve NMEA, cicla el riel del GNSS 3 veces en ≈ 15 min y queda en LIMP;
|
||||
- escribe EFCR = 0x30 lo primero, y el inversor U11 de la v6 lo convierte en «transmisor RS-485 encendido en reposo»: toma el bus (en la v6 el valor correcto es 0x10).
|
||||
|
||||
Una unidad así nunca reporta y castiga a PC3. **Hay que evitar que un técnico flashee el binario de la V5.6 en una v6** (abajo, cambios de hardware 2).
|
||||
|
||||
### 5.2 Cuánto se reutiliza
|
||||
|
||||
Cerca del **85 % del código** (≈ 57 de ≈ 67 KB): gobernador de carga, umbrales LFP, NTC del paquete, ADC calibrado con VREFINT, política térmica y de respaldo, el analizador de NMEA, `$PHLG`/`$PHCG`/`$PHEV` y su cola, la consola y la autoprueba, los sensores I²C, el código del W5500, el IWDG, el motivo de reset en BKP16–19 y el simulador. Una cuarta parte de eso necesita constantes o pines de la tarjeta. Lo que solo existe en la V5.x (≈ 15 %: el modo B con K1, la inyección en banda, PHTST, la vida por el LED) se queda fuera del build de la v6.
|
||||
|
||||
Lo que trae 0.7.0-pre2 también sirve en la v6, con los valores de su archivo de tarjeta: el driver del SC16IS752 con `SC16IS_EFCR_RS485 = 0x10`, el acelerómetro con `ACC_WHOAMI = 0x11` (SC7A20; el driver de movimiento falta para ese chip) y el STOP + RTC del ciclo de batería.
|
||||
|
||||
### 5.3 Lo que la v6 necesita y no existe
|
||||
|
||||
Todo lo que hoy hacen solos los dos módulos de ArduSimple:
|
||||
|
||||
| Pieza | Qué es |
|
||||
|---|---|
|
||||
| Módem A7670SA | Encendido (PC10, PWRKEY en PC8, STATUS en PC9, RESET en PC11), driver AT, SIM, registro y PDP |
|
||||
| NTRIP | Cliente NTRIP, entrega de RTCM al F9P, GGA al caster |
|
||||
| Enlace al servidor | NMEA y `$PHLG` por UDP a htracker, con la línea de identidad que hoy pone el módem (`$GPTXT … H00xx`) |
|
||||
| F9P desnudo | Configuración y persistencia del ZED-F9P (de fábrica a 38 400) |
|
||||
| Aprovisionamiento | SIM, APN, usuario NTRIP y estación: un registro de configuración por unidad, escrito en la fábrica |
|
||||
| FOTA | Por el módem (D-22-6) |
|
||||
|
||||
Son **45–60 KB de código nuevo** y ninguno existe (documento de diseño de la v6, §13.4). El código que se reutiliza será cerca de la mitad de la imagen final.
|
||||
|
||||
### 5.4 Una sola línea de firmware
|
||||
|
||||
**Un solo código, nunca un solo binario.** Módulos compartidos, archivos de tarjeta con banderas de capacidad y dos «backends» de enlace (ArduSimple/K1 para la V5.x, A7670 para la v6). Salen `hbox-tarjetaV56_x.y.z.bin` y `hbox-tarjetaV6_x.y.z.bin`. Una revisión de la tarjeta al arrancar y el ID de tarjeta en el manifiesto del FOTA impiden que una imagen equivocada maneje los pines.
|
||||
|
||||
### 5.5 Plan y esfuerzo
|
||||
|
||||
| Paquete | Contenido | Días-ingeniero |
|
||||
|---|---|---:|
|
||||
| WP0 | Decisiones (abajo) | 0.5 |
|
||||
| WP1 | Separar el 0.7.0 en módulos + archivos de tarjeta, **sin cambiar el comportamiento en la V5.x** (los escenarios del simulador en verde) | 3–4 |
|
||||
| WP2 | `board_v6.h`, arranque seguro, revisión de la tarjeta, reglas de pines de la v6, autoprueba | 1.5–2 |
|
||||
| WP3 | UART con DMA (USART2/6/1) | 1.5–2 |
|
||||
| WP4 | Motor UBX y configuración del F9P | 3–4 |
|
||||
| WP5 | A7670: encendido, motor AT, SIM/registro/PDP, escalera | 5–6 |
|
||||
| WP6 | Cliente NTRIP, reenvío de RTCM, GGA, estadísticas | 3–4 |
|
||||
| WP7 | Enlace UDP compatible con lo de hoy + identidad (con Gibran en htracker) | 2–3 (+1–2) |
|
||||
| WP8 | Invariantes de la v6: escaleras, guarda contra lazos de arranque, PFO, modo batería, térmicos | 3–4 |
|
||||
| WP9 | Aprovisionamiento y registro de configuración (nunca en la imagen) | 1.5–2 |
|
||||
| WP10 | Simulador de la v6: A7670 por AT, caster, F9P por UBX, servidor UDP, invariantes de la v6, ≈ 35 escenarios | 5–7 |
|
||||
| WP11 | Puertos, sensores y Ethernet de la v6 (EFCR 0x10, SC7A20, PD2) | 2–3 |
|
||||
| WP12 | FOTA de la v6 sobre el cargador compartido (F1) | 2–3 (+ F1 y F4 compartidos, 7–9) |
|
||||
| WP13 | Arranque y banco de la v6 (rieles, aislamiento, desensibilización del GNSS, 24 h de NTRIP, batería, térmico) | 5–7 |
|
||||
| WP14 | u-center y AT por la USB | 1 |
|
||||
| **Total de la v6** | | **≈ 39–53 (centro ≈ 46)** |
|
||||
|
||||
Cerca del 60 % es código (Claude lo comprime); el 40 % es banco (no se comprime).
|
||||
|
||||
| Hito | Fecha | Qué |
|
||||
|---|---|---|
|
||||
| M0 | 6-nov | WP0–WP2, esqueleto del simulador, piezas de banco en mano |
|
||||
| M1 · MVP en banco de evaluación | ≈ 20-nov | F9P de fábrica configurado por el MCU, A7670 en línea, NTRIP → RTK ≥ 4, NMEA + `$PHLG` en htracker con identidad, escalera básica, 24 h |
|
||||
| M2 · arranque de la v6 | desde ≈ 23-nov | Las 20 tarjetas del pedido del 2-nov |
|
||||
| M3 · candidato de campo | mediados a finales de diciembre | Escaleras completas, puertos, Ethernet, aprovisionamiento, FOTA, matriz F4 en la v6 |
|
||||
|
||||
**G2 tal como está escrito (≈ 22-nov, «las 20 pasan el banco») no se alcanza con firmware de campo.** Propuesta: G2 = las tarjetas del piloto corriendo el MVP en banco a principios de diciembre, e imagen de fábrica con FOTA (D-22-6) a mediados o finales de diciembre.
|
||||
|
||||
**Banco de evaluación (≈ US$100–150), para empezar antes de que existan las tarjetas:** NUCLEO-F411RE (el mismo STM32F411RET6 en LQFP64: todos los pines de la v6 existen), una tarjeta de evaluación del A7670SA **del mismo sufijo (-LASC)**, adaptadores 74LVC2T45, una nano-SIM de Vectro, un simpleRTK2B de repuesto como F9P y un punto de montaje de prueba en HelgenSRV.
|
||||
|
||||
### 5.6 Decisiones antes de escribir el enlace (para Leo)
|
||||
|
||||
1. **Ruta del RTCM.** El documento de diseño (§2/§3) lo manda por hardware (módem → U9 → U23 → RXD2 del F9P); el §13.4 y el estudio de FOTA piden un socket no transparente. En la práctica se excluyen. **Recomendación: el MCU reenvía el RTCM con su CRC revisado al F9P por USART2, y las entradas del UART2 del F9P se apagan.**
|
||||
2. **Contrato del enlace con htracker** (con Gibran): UDP, los mismos formatos de línea y una línea de identidad equivalente al `$GPTXT … H00xx …` del módem de hoy.
|
||||
3. **ID de la tarjeta.** Sin cambiar el BOM, la prueba de PC12 distingue V5.x de v6. Para el hardware: un divisor en **PC4** (libre desde T49) que codifique la revisión. El *strap* de PA9 de D-v6-1 también funciona, pero solo dice «v6 sí o no».
|
||||
4. **Secretos por unidad** (APN, usuario NTRIP, estación): en un registro de configuración del MCU escrito en la fábrica; nunca en el repositorio ni en una imagen de FOTA (invariante 6).
|
||||
|
||||
### 5.7 Cambios de hardware de la v6 que valen antes de G1 (2-nov)
|
||||
|
||||
| # | Qué | Por qué el firmware no lo arregla | Cambio propuesto |
|
||||
|---:|---|---|---|
|
||||
| 1 | **La única SIM va en un portatarjetas *push-push*** (J11, JAE SF72S006; T48 quitó la eSIM). Su detector (CSW/DSW) no está conectado | En maquinaria de puerto una SIM que se sale desaparece la unidad; el firmware solo puede notarlo (`AT+CPIN?`) | Retención mecánica (cinta Kapton, tapa o espuma que la presione, o un portatarjetas con bisagra o seguro) y una prueba de vibración en el banco del piloto. Opcional: CSW/DSW a un pin libre |
|
||||
| 2 | **Sin ID de tarjeta, y `/GNSS_RTK_STAT` (salida *push-pull* del F9P) llega directo a PC3**, el pin que los builds de la V5.x manejan como MODEM_EN | El manifiesto del FOTA solo protege lo que llega por aire; el accidente probable es un flasheo DFU en el taller | (a) **1 kΩ en serie en `/GNSS_RTK_STAT` junto a U3.11** (limita el choque a ≈ 3.3 mA). (b) **Divisor de ID en PC4** (dos resistencias 0402) |
|
||||
| 3 | La corriente de entrada y de carga no se ven (CLPROG solo va a TP11) | El gobernador sigue infiriendo por la caída del riel | **CLPROG → PB1 con 1 MΩ + 100 nF** (era la intención original de D-10; faltó pin). CLPROG no tiene buffer interno: hay que aislarlo |
|
||||
| 4 | DTR (U6.3) y RI (U6.4) del A7670 sin conectar | Sin DTR no hay `AT+CSCLK=1` ni despertar por URC | **DTR sin costo de BOM:** el canal 2 de U5 ya traduce MCU → módem; U5.6 a **PB5** (libre al quitar K1) con **100 kΩ a GND** y U5.3 a U6.3. RI es opcional |
|
||||
| 5 | La huella de K1 sigue en la tarjeta (DNP) | Si alguien monta K1 con R8 puesta, su contacto NC une dos salidas *push-pull* | Quitar K1, Q4, D3, R48 y R49 (D-v6-3) |
|
||||
| 6 | `/DOUT_4G` flota con el módem apagado | El *pull-up* interno de PC7 lo cubre | Opcional: 100 kΩ a `/3V3` |
|
||||
|
||||
Revisado y correcto: PWRKEY, RESET y STATUS del módem; los traductores de nivel (U5, U9, U23, con Ioff); el banco de capacitores de VBAT del módem (≈ 507 µF); el límite de corriente de la antena (TPS2552); el arranque seguro por hardware (módem, F9P, W5500 y cargador apagados); RTS/CTS sin conectar no es defecto (el A7670 no soporta control de flujo).
|
||||
|
||||
### 5.8 Errores de documentación encontrados (contra el netlist del 28-oct)
|
||||
|
||||
- **`pinmap-v6.md` (v1.2):** su tabla principal es la del 28-sep. Siguen mal aun con sus notas: PB1 y PC4 como NTC (sin conexión desde T49); PA9 «sin conexión» (es `/USART1_TX` a TP3: el USART1 vuelve a ser dúplex); PC6 y PB5 todavía con el modo B de K1 (K1, Q4, D3, R48 y R49 van DNP y R8 = 0 Ω une PC6 con `/DIN_4G`); PA5 con R17 de 3.3 kΩ (es **2.2 kΩ: razón 0.0833**, 12 V → 1.00 V); «sin TMP102 en la v6» (U19 en 0x48 y U2 en 0x49 están montados); los pines libres son PB1 y PC4; U20 es un TPS7A2033, no un AP2112K. Su `board_v6.h` de borrador queda reemplazado por el del agente B.
|
||||
- **Documento de diseño de la v6 (v1.3):** dice «GSM 900/1800»; el A7670SA es **GSM de cuatro bandas 850/900/1800/1900** + LTE B1/2/3/4/5/7/8/28/66 (el GSM de México va en 850/1900). El cuerpo todavía describe las NTC externas que quitó T49. El §2/§3 y el §13.4 se contradicen sobre la ruta del RTCM (decisión 1). La rampa de VCC del F9P: el símbolo dice «≤ 20 µs/V», las notas del proyecto dicen una ventana de 20–8000 µs/V; **sin verificar** (la hoja de u-blox no se pudo abrir): se mide antes de fabricar.
|
||||
- **Estudio de FOTA:** cuenta los arranques de prueba en BKP12–13, que con VBAT = `/3V3` se borran en un corte completo: una imagen que tumba la tarjeta nunca se contaría. El contador va también en el sector de metadatos.
|
||||
- Con los umbrales de pin de la V5.6, la ignición de la v6 diría ON a 9.6 V y OFF a 6.6 V: los umbrales van en voltios del vehículo en el archivo de cada tarjeta.
|
||||
|
||||
## 6. Lo que queda abierto
|
||||
|
||||
| # | Qué | Quién / cuándo |
|
||||
|---|---|---|
|
||||
| A-02 | Con el caster caído, un módem sano con el LED invisible o fijo todavía recibe pulsos y reinicios | Banco del piloto: §7.6 caracteriza el LED; luego se decide en el firmware de campo. Mientras: caster de Helgen y anotar `rst=`/`pwrcyc=` |
|
||||
| L2/L3 | W5500: reset o *power-down* en el reposo | Banco del piloto: A/B del piso con la tecla `W` (§10.1.5) |
|
||||
| A-21 | Si el reinicio de 5 s baja `/3V3_MODEM` al nivel de reset del módem | Banco: osciloscopio en J8.1 con `Q` (§7.8) |
|
||||
| A-09 | El BOR nunca se programa (de fábrica: apagado) | Decidir dónde se programa en nivel 3 en el volumen (paso de fábrica) |
|
||||
| A-13 / A-14 | Base de Q3 sin *pull-down*; cargador encendido por defecto con el MCU sin correr | Siguiente revisión de la tarjeta |
|
||||
| A-20 | `$PHEV` sin límite por código | Con Gibran: el monitor usa pares de eventos |
|
||||
| L12 | Ventana de 180 s = tiempo sin vida del módem | Revisión del módem |
|
||||
| Flash | El RCT6 va al 97 % (base) y 98 % (`-eth`): F-4 (Ethernet de campo) no cabe junto al ciclo de batería | Antes de F-4: mover la EEPROM emulada a un sector de 16 KB, quitar el `printf` de punto flotante y dejar la ayuda fuera de los builds de campo (§3.3) |
|
||||
| v6 | Decisiones D-29-1 (hardware antes de G1) y D-29-2 (plan del firmware) | Leo, en el tablero |
|
||||
|
||||
## 7. Cómo se verificó
|
||||
|
||||
- **Simulador** (`tools/hostsim_v5`): **118 escenarios en PASS** (54 de V5.5/V4 y 64 de V5.6/V5.7: 42 propios, 11 de la revisión A, 7 de la revisión C y 4 escritos después de la C), 876 comprobaciones. Cuatro abiertos se corren y se muestran sin contar: A-02 ×2 y L2/L3 ×2. Nuevo en el modelo: `micros()`, el cristal de U5, la alimentación del W5500, el estado del USB, el IWDG y un SysTick que se detiene en STOP.
|
||||
- **Compilación en la Mac** (*core* STM32duino 3.0.0, `GENERIC_F411RCTX`, ventana de 128 KB): base **128 204 B** y `-eth` **129 304 B**; con `SOURCE_DATE_EPOCH=1793295000` dos compilaciones limpias dan el mismo SHA-256. Los builds de la V5.5 y la V4 compilan.
|
||||
- **Lo que no se verificó:** nada corrió todavía en una V5.6 o V5.7 real (no han llegado). El banco del piloto es la prueba.
|
||||
|
||||
| Archivo | SHA-256 |
|
||||
|---|---|
|
||||
| `hbox-tarjetaV56_0.7.0-pre2.bin` | `43aeabcfdb7055c106b7702682f099fdd5b83499f28cfcfab43a2fa41b1ea6a2` |
|
||||
| `hbox-tarjetaV56_0.7.0-pre2-eth.bin` | `051af1b2c7596c169069b030123c748ab7c2378a8b2f877453ad85f9ae3bdfca` |
|
||||
|
||||
## Historial de revisiones
|
||||
|
||||
| Versión | Fecha | Cambios |
|
||||
|---|---|---|
|
||||
| 1.0 | 2026-10-29 | Primera versión: revisiones A (0.7.0-pre en V5.6/V5.7), B (v6) y C (lo nuevo de 0.7.0-pre2), y lo que se corrigió en 0.7.0-pre2. |
|
||||
@ -4,7 +4,13 @@ title: "Tarjetas y hardware"
|
||||
|
||||
# Tarjetas y hardware
|
||||
|
||||
Estado de cada versión de la EinarBoard al **28-oct-2026**, con sus documentos vigentes, los históricos y el siguiente paso. ¿No sabes qué tarjeta tienes? [Manuales por tarjeta](../manuales/index.md) te la identifica por serigrafía, conectores y LEDs. Estado vivo (tareas, decisiones, responsables): [Tablero de ingeniería](../tableros/ingenieria.md).
|
||||
Estado de cada versión de la EinarBoard al **29-oct-2026**, con sus documentos vigentes, los históricos y el siguiente paso. ¿No sabes qué tarjeta tienes? [Manuales por tarjeta](../manuales/index.md) te la identifica por serigrafía, conectores y LEDs. Estado vivo (tareas, decisiones, responsables): [Tablero de ingeniería](../tableros/ingenieria.md).
|
||||
|
||||
!!! success "29-oct: firmware 0.7.0-pre2 para el banco del piloto V5.6/V5.7 y auditoría del firmware (V5.6/V5.7 y v6)"
|
||||
- **V5.6 y V5.7:** con [0.7.0-pre2](../descargas/notas-de-version.md#070-pre2-en-prueba) se corren los 8 criterios del piloto: ciclo de 10 min en batería con el MCU en STOP, puertos serie (`S`/`U`), acelerómetro y el W5500 apagado para el piso dormido. Tres revisiones independientes: 33 hallazgos corregidos; A-02 (LED del módem con el caster caído) y la A/B del W5500 se deciden en el banco. [Prueba y flasheo 1.2](../procedimientos/v56-v57-prueba-y-flasheo.md).
|
||||
- **v6:** el binario de la V5.6 no corre en una v6 (PC3, PC10, F9P a 38 400, EFCR 0x10); se reutiliza ≈ 85 % del código y falta el enlace propio (≈ 39–53 días-ingeniero). Decisiones para Leo: **D-29-1** (seis cambios de hardware antes de G1) y **D-29-2** (plan del firmware).
|
||||
|
||||
[**▶ Auditoría del firmware**](firmware-auditoria-29oct.md)
|
||||
|
||||
!!! success "28-oct: T42b en la V5.6 y la V5.7 (la clase HV24 completa) y T45 terminado en la v6"
|
||||
- **V5.6 y V5.7: T42b** (`8b0a23a`, 14:20). A los patrones de HV24 les faltaba la «/» y solo `/24V_IN` era HV24; ahora entran todas las redes de 24 V, con las reglas F-01 de la v6 (0.2 mm entre redes HV24, 0.3 mm en las caras y 0.5 mm en capas internas). Se arreglaron por script los 14 errores de la V5.6 y los 16 de la V5.7; el que más importaba, la línea EN de U15 en la V5.7 (8.4 V máx.), ya va a 0.38 mm o más de `/24V`. DRC igual que antes; **BOM, CPL y designadores idénticos**, cambian el cobre y los barrenos. Revisión independiente en dos rondas: la primera encontró una vía de costura que el paquete sacaba con otra red (§4); ya está corregido y la segunda dio GO. El pedido del piloto (bloqueado por el pago) usa los mismos archivos, ya regenerados: [**▶ T42b**](t42b-hv24-28oct.md).
|
||||
@ -116,10 +122,10 @@ Lleva Mean Well SD-15B-05 externa (igual que V5.5).
|
||||
| Vigentes | [**▶ T42b: clase HV24 completa (28-oct)**](t42b-hv24-28oct.md) · [**▶ Instrucciones para Leo: pedir el piloto (27-oct)**](instrucciones-leo-27oct.md) · [**▶ Revisión independiente del pedido (26-oct)**](revision-pedido-26oct.md) · [**▶ Designadores (T43, 22-oct)**](designadores-t43-22oct.md) · [Victorias rápidas (T42a, 22-oct)](v56-v57-victorias-rapidas-22oct.md) · [Auditoría final (22-oct)](auditoria-final-22oct.md) · [**▶ Auditoría del 21-oct, pasadas 5 y 6**](v56-v57-auditoria-21oct.md) · [Pasada 4 (19-oct)](v56-v57-layout-pasada-4.md) · [Re-auditoría 19-oct](re-auditoria-19oct.md) · [Auditoría de producción 16-oct](auditoria-produccion-16oct.md) (requisitos uno por uno, prueba de RS1) · [ECO V5.6 — requisitos R1–R5](v56-eco.md) · [Cambios al esquemático V5.5 → V5.6](v56-cambios-esquematico.md) · [Reglas de layout esquemático → PCB](v56-layout-instrucciones.md) |
|
||||
| Referencia | [**▶ Documento de diseño V5.6 (23-oct, con PDF)**](diseno-v56.md): la referencia completa de la tarjeta de hoy · [Hoja de datos V5.6](v56-datasheet.md) · [Pinout V5.6](v56-pinout.md) — ya en los designadores de T43, pero su contenido viene de la netlist del 28-sep (todavía listan P12 y no traen el acelerómetro); para lo actual, el documento de diseño |
|
||||
| Históricos | [Layout pasada 3 (16-oct)](v56-v57-layout-pasada-3.md) — cerrada; lo pendiente pasó a la pasada 4 · [Layout pasada 2 (13-oct)](v56-layout-pasada-2.md) y [auditoría del 13-oct (inglés)](v56-auditoria-layout-13oct.md) · [Layout pasada 1 (12-oct)](v56-layout-pasada-1.md) |
|
||||
| Firmware | 0.7.0 con `board_v56.h` (control del módem por MODEM_EN/RST, ciclo de 10 s en batería, Ethernet de campo, SC16IS752/RS-485, acelerómetro, ignición por ADC, paquete LFP-HT). No existe todavía; ningún 0.6.x enciende su módem. |
|
||||
| Firmware | **0.7.0-pre2** (29-oct, solo banco; [Descargas](../descargas/index.md#firmware-del-hbox-que-binario-va-en-que-tarjeta)) con `board_v56.h`: módem por MODEM_EN/RST con vigilancia por LED y RTCM, ciclo de 10 min en batería con STOP, SC16IS752 (RS-485/RS-232), acelerómetro, ignición por ADC y paquete LFP-HT. Falta para campo: Ethernet de campo (F-4) y A-02 ([auditoría del 29-oct](firmware-auditoria-29oct.md)). Ningún 0.6.x enciende su módem. |
|
||||
| Decisiones pendientes (Leo) | **D-19-1, hoy:** portar las correcciones de puertos de la v6 (inversor U32 para el RS-485, TVS D39, R147 en RS-232, J10.8 a GND, LED de actividad); si van, entran al piloto. **D-19-2:** resuelta el 20-oct, Dbk2 fuera (T31). **D-21-1:** C130 de 100 nF en la entrada de U7 ([auditoría §4](v56-v57-auditoria-21oct.md#4-decisiones-para-leo)). [Re-auditoría §7](re-auditoria-19oct.md#7-decisiones-para-leo) · [auditoría 16-oct §10](auditoria-produccion-16oct.md#101-hardware-de-v56-y-v57-iguales-entre-si). |
|
||||
|
||||
**Siguiente paso** (28-oct). Pedir el **piloto de 5**, junto con las 5 V5.7, cuando se resuelva el pago, con los paquetes del repositorio (T46 + T47 + T42b) y la lista de las [instrucciones para Leo](instrucciones-leo-27oct.md) → 0.7.0-pre compilado para el RCT6 → banco con la [compuerta mínima](revision-pedido-26oct.md#8-compuerta-minima-de-banco-5-5-pasa-con-al-menos-4-de-5-por-version-y-con-todas-las-de-seguridad) → las 135.
|
||||
**Siguiente paso** (28-oct). Pedir el **piloto de 5**, junto con las 5 V5.7, cuando se resuelva el pago, con los paquetes del repositorio (T46 + T47 + T42b) y la lista de las [instrucciones para Leo](instrucciones-leo-27oct.md) → 0.7.0-pre2 (ya compilado para el RCT6) → banco con la [compuerta mínima](revision-pedido-26oct.md#8-compuerta-minima-de-banco-5-5-pasa-con-al-menos-4-de-5-por-version-y-con-todas-las-de-seguridad) → las 135.
|
||||
|
||||
## V5.7 — fuente a bordo (9–32 V) → 5 prototipos → pedido de 327 { #v57 }
|
||||
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
---
|
||||
title: "Unidad HBOX V5.6 y V5.7 — Ensamble y prueba de la unidad (0.7.0-pre)"
|
||||
title: "Unidad HBOX V5.6 y V5.7 — Ensamble y prueba de la unidad (0.7.0-pre2)"
|
||||
tags: [project-drogheda, hardware, hbox, v5.6, v5.7, ensamble, piloto, procedimiento]
|
||||
date: 2026-10-27
|
||||
date: 2026-10-29
|
||||
project: Project Drogheda
|
||||
author: "Helgen Technologies (redacción: Claude; revisión: Leo y Jesús Romero)"
|
||||
version: 1.0
|
||||
version: 1.1
|
||||
status: "BORRADOR — para las unidades del piloto; se ajusta con la primera unidad real"
|
||||
audience: técnicos de banco
|
||||
---
|
||||
@ -12,7 +12,7 @@ audience: técnicos de banco
|
||||
# Unidad HBOX V5.6 y V5.7 — Ensamble y prueba de la unidad
|
||||
|
||||
!!! warning "Borrador para el piloto"
|
||||
Es el [ensamble de la V5.5](v5-ensamble.md) llevado a la V5.6 y la V5.7: designadores de T43 (los de la serigrafía), firmware 0.7.0-pre, paquete LFP y, en la V5.7, sin Mean Well. Lo que no cambia (gabinete, antenas, prensaestopas, etiquetas) sigue como en la V5.5. Las unidades del piloto **no se embarcan** hasta que pasen los [8 criterios del banco del piloto](v56-v57-prueba-y-flasheo.md#10-banco-del-piloto-los-8-criterios-para-liberar-las-135-y-las-365) y salga el firmware de campo.
|
||||
Es el [ensamble de la V5.5](v5-ensamble.md) llevado a la V5.6 y la V5.7: designadores de T43 (los de la serigrafía), firmware 0.7.0-pre2, paquete LFP y, en la V5.7, sin Mean Well. Lo que no cambia (gabinete, antenas, prensaestopas, etiquetas) sigue como en la V5.5. Las unidades del piloto **no se embarcan** hasta que pasen los [8 criterios del banco del piloto](v56-v57-prueba-y-flasheo.md#10-banco-del-piloto-los-8-criterios-para-liberar-las-135-y-las-365) y salga el firmware de campo.
|
||||
|
||||
!!! abstract "Para quién · Cuándo · Tiempo · Necesitas"
|
||||
- **Para quién:** técnicos de banco.
|
||||
@ -44,7 +44,7 @@ Va en la etiqueta exterior (junto al GX16) y en la interior (tapa). Un módulo p
|
||||
|
||||
| Ítem | V5.6 | V5.7 |
|
||||
|---|---|---|
|
||||
| EinarBoard aprobada, con 0.7.0-pre | V56-NN | V57-NN |
|
||||
| EinarBoard aprobada, con 0.7.0-pre2 | V56-NN | V57-NN |
|
||||
| simpleRTK2B Pro y 4G NTRIP Master aprobados e integrados | ✔ | ✔ |
|
||||
| Mean Well SD-15B-05 (24 → 5 V) dentro del HBOX | ✔ | **no** |
|
||||
| Paquete **LFP-HT 26650 1S4P** con NTC 10 k B3380 (3 hilos → J5) | ✔ | ✔ |
|
||||
@ -93,7 +93,7 @@ Va en la etiqueta exterior (junto al GX16) y en la interior (tapa). Un módulo p
|
||||
|
||||
| Punto | Esperado |
|
||||
|---|---|
|
||||
| Consola | `hbox-v5-bringup 0.7.0-pre`, 18 PASS, `>>> BOARD OK` |
|
||||
| Consola | `hbox-v5-bringup 0.7.0-pre2`, 22 PASS (con 24 V entra `W5500_PHY`), `>>> BOARD OK` |
|
||||
| `STAT v5` | V5.6: 5.20–5.40 V · V5.7: 5.20–5.45 V |
|
||||
| Secuencia | `STACK ON` → `NMEA primera trama` → `MODEM ON` → `MODEM_RST` → `MODEM VIVO` → `MODOB ON` (K1 hace clic) |
|
||||
| Correcciones | Primer `STAT` con `rtcm` > 0 a menos de 60 s de `MODEM ON` |
|
||||
@ -131,3 +131,4 @@ Siguiente (cuando el piloto pase): [configuración de la unidad](v5-configuracio
|
||||
| Versión | Fecha | Cambios |
|
||||
|---|---|---|
|
||||
| 1.0 | 2026-10-27 | Primera versión (borrador) para las unidades del piloto V5.6/V5.7. |
|
||||
| 1.1 | 2026-10-29 | Firmware 0.7.0-pre2: la autoprueba con 24 V da 22 PASS. |
|
||||
|
||||
@ -1,18 +1,18 @@
|
||||
---
|
||||
title: "EinarBoard V5.6 y V5.7 — Prueba y flasheo por tarjeta (0.7.0-pre)"
|
||||
title: "EinarBoard V5.6 y V5.7 — Prueba y flasheo por tarjeta (0.7.0-pre2)"
|
||||
tags: [project-drogheda, hardware, einarboard, v5.6, v5.7, bringup, testing, flasheo, piloto, procedimiento]
|
||||
date: 2026-10-27
|
||||
date: 2026-10-29
|
||||
project: Project Drogheda
|
||||
author: "Helgen Technologies (redacción: Claude; revisión: Leo, Jesús Romero y Gibran)"
|
||||
version: 1.1
|
||||
version: 1.2
|
||||
status: "BORRADOR — para el piloto de 5 V5.6 + 5 V5.7 (actas aprobadas por Leo el 27-oct); se ajusta con la primera tarjeta real"
|
||||
audience: técnicos de banco e ingeniería
|
||||
---
|
||||
|
||||
# EinarBoard V5.6 y V5.7 — Prueba y flasheo por tarjeta (firmware 0.7.0-pre)
|
||||
# EinarBoard V5.6 y V5.7 — Prueba y flasheo por tarjeta (firmware 0.7.0-pre2)
|
||||
|
||||
!!! warning "Borrador: ninguna V5.6 ni V5.7 ha llegado todavía"
|
||||
Este procedimiento se escribió con los archivos de la tarjeta (designadores de T43, los de la serigrafía), el [documento de diseño de la V5.6](../hardware/diseno-v56.md), el de la [V5.7](../hardware/diseno-v57.md) y el firmware 0.7.0-pre corrido en el simulador. Los valores marcados «a confirmar» se fijan con la primera tarjeta del piloto. Lo revisa Gibran como Hardware Lead antes de que lleguen las tarjetas (pendiente `t-banco-revision-hw`). **Las actas ya están aprobadas** (Leo, 27-oct): lo que se registre en ellas cuenta.
|
||||
Este procedimiento se escribió con los archivos de la tarjeta (designadores de T43, los de la serigrafía), el [documento de diseño de la V5.6](../hardware/diseno-v56.md), el de la [V5.7](../hardware/diseno-v57.md) y el firmware 0.7.0-pre2 corrido en el simulador. Los valores marcados «a confirmar» se fijan con la primera tarjeta del piloto. Lo revisa Gibran como Hardware Lead antes de que lleguen las tarjetas (pendiente `t-banco-revision-hw`). **Las actas ya están aprobadas** (Leo, 27-oct): lo que se registre en ellas cuenta.
|
||||
|
||||
!!! abstract "Para quién · Cuándo · Tiempo · Necesitas"
|
||||
- **Para quién:** técnicos de banco (Jesús Romero) e ingeniería.
|
||||
@ -23,15 +23,16 @@ audience: técnicos de banco e ingeniería
|
||||
- fuente de banco de 0–32 V con límite de corriente y al menos **3 A**;
|
||||
- una segunda fuente (o la misma con un interruptor) de 0–24 V para la ignición (§9);
|
||||
- cable USB-C con datos y laptop con `dfu-util` o STM32CubeProgrammer y un terminal serie a 115200;
|
||||
- el binario `hbox-tarjetaV56_0.7.0-pre.bin` de [Descargas → prueba](../descargas/index.md) y su SHA-256;
|
||||
- el binario `hbox-tarjetaV56_0.7.0-pre2.bin` de [Descargas → prueba](../descargas/index.md) y su SHA-256;
|
||||
- una resistencia de 10 kΩ con caimanes (para leer TP6);
|
||||
- el **puente de banco de J2**: un conector JST-XH de 2 pines con los dos cables unidos;
|
||||
- el **juego de módulos de banco** (abajo), con antena GNSS con vista al cielo y 2 antenas LTE;
|
||||
- un paquete LFP-HT 26650 1S4P con NTC (cable de 3 hilos a J5) y una pinza amperimétrica de CD o un amperímetro en serie de 2 A;
|
||||
- el [acta de tarjeta V5.6](../formularios/v56.html) o el [acta de tarjeta V5.7](../formularios/v57.html).
|
||||
- el [acta de tarjeta V5.6](../formularios/v56.html) o el [acta de tarjeta V5.7](../formularios/v57.html);
|
||||
- solo para el banco del piloto (§10.1): un cable de puente para J12 (pin 1 ↔ pin 2), un cable de 3 hilos J11 ↔ J11 hacia una segunda tarjeta ya probada, un PPK2 (o Joulescope) con un interruptor en paralelo y un osciloscopio.
|
||||
|
||||
!!! danger "Reglas"
|
||||
1. **Solo `hbox-tarjetaV56_0.7.0-pre.bin`** (y `hbox-tarjetaV56_0.7.0-pre-eth.bin` solo para la prueba de Ethernet del §10.1). Sirve para la V5.6 y para la V5.7 (los 64 pines del MCU son iguales). El 0.6.x no enciende el módem (PC3 es nuevo), lee la NTC en el pin equivocado, usa umbrales de Li-ion y lee la ignición como digital. `hbox-v5-bringup_…` es de la V5.5.
|
||||
1. **Solo `hbox-tarjetaV56_0.7.0-pre2.bin`** (y `hbox-tarjetaV56_0.7.0-pre2-eth.bin` solo para la prueba de Ethernet del §10.1). Sirve para la V5.6 y para la V5.7 (los 64 pines del MCU son iguales). El `0.7.0-pre` del 27-oct queda reemplazado (no trae el ciclo de batería ni la prueba serie): una tarjeta que lo tenga se reflashea. El 0.6.x no enciende el módem (PC3 es nuevo), lee la NTC en el pin equivocado, usa umbrales de Li-ion y lee la ignición como digital. `hbox-v5-bringup_…` es de la V5.5.
|
||||
2. **SW1 y SW2 están al revés que en la V5.5:** en la V5.6 y la V5.7, **SW1 = BOOT0** y **SW2 = RESET**.
|
||||
3. **V5.6:** nunca menos de 5.2 V en J16 cuando no hay batería; con menos, el PFI del LTC4040 (4.40 V) queda muy cerca y una ráfaga del módem apaga la tarjeta. **Nunca cierres JP1** en la V5.6: uniría el buck del ventilador con `/VEH5V`. No le pongas más de 28 V a J15 (U15 es un MP1584).
|
||||
4. **V5.7:** nunca más de 32 V en J15. El techo lo pone D18 (33 V).
|
||||
@ -206,7 +207,7 @@ Si no aparece: otro cable (muchos son solo de carga) y repite, con SW1 todavía
|
||||
|
||||
```bash
|
||||
dfu-util -l # debe listar [0483:df11]
|
||||
dfu-util -a 0 -s 0x08000000:leave -D hbox-tarjetaV56_0.7.0-pre.bin
|
||||
dfu-util -a 0 -s 0x08000000:leave -D hbox-tarjetaV56_0.7.0-pre2.bin
|
||||
```
|
||||
|
||||
=== "STM32CubeProgrammer"
|
||||
@ -228,39 +229,46 @@ El piloto trae el **STM32F411RCT6** (256 KB, T47). El binario mide menos de 128
|
||||
| D10 y el LED de panel (J4) | Parpadean |
|
||||
| D17 → D14 | Encienden en secuencia una vez y se apagan; luego R, G, B en J10 si hay LED RGB |
|
||||
| Laptop | Puerto serie nuevo (`usbmodem…` / `STMicroelectronics Virtual COM Port`) |
|
||||
| Terminal | `hbox-v5-bringup 0.7.0-pre` y `board=EinarBoard V5.6/V5.7` |
|
||||
| Terminal | `hbox-v5-bringup 0.7.0-pre2` y `board=EinarBoard V5.6/V5.7` |
|
||||
|
||||
3. El encabezado y el reporte esperados (con solo el USB):
|
||||
|
||||
```
|
||||
hbox-v5-bringup 0.7.0-pre built …
|
||||
hbox-v5-bringup 0.7.0-pre2 built …
|
||||
board=EinarBoard V5.6/V5.7 (HBOX v5) mcu=STM32F411RCT6/RET6 LQFP64
|
||||
reset=PIN uid=… flash=256KB ← RCT6 del piloto
|
||||
safe state: stack OFF, modem OFF (PC3), charge OFF, fan OFF, K1 released, W5500 in reset
|
||||
safe state: stack OFF, modem OFF (PC3), charge OFF, fan OFF, K1 released, W5500 in reset (luego su PHY en power-down, E-3)
|
||||
U3 con 256 KB (RCT6, piloto T47): este binario corre; el FOTA A/B necesita el RET6 (D-22-6)
|
||||
RS-485: EFCR_A de U5 = 0x30 (RTS automatico: DE de U7 bajo salvo al transmitir; bus libre)
|
||||
…
|
||||
[PASS] CLOCK_HSE SYSCLK=96000000 Hz HSE_RDY=1 PLL_SRC=HSE ← Y2
|
||||
[PASS] LSE_Y4 Y4 32.768k LSERDY=1 (hal=0) ← Y4 (E-12)
|
||||
[PASS] RTC_BKP BKP19R escribe y lee
|
||||
BOR (option byte): APAGADO (de fabrica: solo POR/PDR) — para el volumen: nivel 3 (auditoria 29-oct, A-09)
|
||||
[PASS] I2C PCF8574 U11 @0x20 ACK
|
||||
[PASS] I2C SHT40 U6 @0x44 ACK
|
||||
[PASS] I2C TMP102 U12 @0x48 ACK
|
||||
[PASS] I2C TMP102 U8 @0x49 ACK
|
||||
[PASS] I2C SC16IS752 U5 @0x4D ACK
|
||||
[PASS] I2C LIS2DH12 U1 @0x18 ACK
|
||||
i2c scan: 0x18 0x20 0x44 0x48 0x49 0x4D
|
||||
[PASS] TMP102_U12 TMP102 U12 27.50 C ← junto al cargador
|
||||
[PASS] TMP102_U8 TMP102 U8 27.75 C ← junto al módem
|
||||
[PASS] SHT40 SHT40 27.80 C 45.0 %RH
|
||||
[PASS] SC16IS752 0x4D ACK, SPR rd=0xA5 (exp A5), LSR=0x60
|
||||
[PASS] RS485_EFCR EFCR_A=0x30 (exp 30: DE de U7 bajo salvo al transmitir)
|
||||
[PASS] RS485_EFCR EFCR_A=0x32 (bits 5:4 = 0x30: RTS automatico, DE de U7 bajo salvo al transmitir)
|
||||
[PASS] SER_B_LAZO lazo B 115200: 16/16 iguales; 32 B a 9600 en 33.3 ms (33.3 = Y3 3.6864 MHz)
|
||||
W5500 U2: sin /SYS5V (solo USB, sin paquete): no se prueba ni se apaga su PHY
|
||||
[PASS] ACCEL U1 @0x18 WHO_AM_I=0x33 (LIS2DH12 = 33; SC7A20 = 11)
|
||||
[PASS] ACCEL_1G U1 x=0.01 y=-0.02 z=1.00 g, |a|=1.00 g (0.80-1.20) ← tarjeta quieta
|
||||
gauge walk: D17->D14 then R,G,B on J10 (watch the LEDs)
|
||||
[PASS] GAUGE_WALK visual — technician confirms ← confirmas que viste D17→D14
|
||||
[PASS] ADC vbat=0.00 v5=0.00 tcel=n/c ign=0.00V(0.0V) mcu=..C
|
||||
[PASS] ADC vbat=0.00 v5=0.00 tcel=n/c ign=0.00V(0.0V) mcu=..C vdda=3.300
|
||||
[PASS] DIN chrg=1 fault=1 ser_irq=1 eth_int=. acc_int1=.
|
||||
modem apagado: LED PC2=0 RTCM PC7=0 (esperado 0/0; 1 = algo alimenta al modem apagado)
|
||||
---- RESULT: 18 PASS / 0 FAIL ----
|
||||
[PASS] MODEM_APAGADO LED PC2=0 RTCM PC7=0 (esperado 0/0; 1 = algo alimenta al modem apagado, E-13)
|
||||
---- RESULT: 21 PASS / 0 FAIL ----
|
||||
>>> BOARD OK
|
||||
RTC: LSE Y4 32.768 kHz (ciclo de 10 min exacto)
|
||||
```
|
||||
|
||||
4. Revisa también:
|
||||
@ -269,13 +277,19 @@ El piloto trae el **STM32F411RCT6** (256 KB, T47). El binario mide menos de 128
|
||||
|---|---|---|
|
||||
| `flash=` | `256KB` (RCT6) o `512KB` (RET6, las 2 del FOTA) | Anota |
|
||||
| `RS-485: EFCR_A … = 0x30` | `bus libre` | «NO SE PUDO ESCRIBIR»: U5 no responde; FALLA |
|
||||
| `modem apagado: LED PC2=0 RTCM PC7=0` | `0/0` | Un 1: algo alimenta al módem apagado; FALLA (avisa a ingeniería) |
|
||||
| `ADC` | `[PASS]`: cada lectura en su rango o en «no hay» (vbat 0 o 2.40–3.80 V, v5 0 o 4.60–5.60 V, ign 0 o 5–33 V, vdda 3.20–3.40 V) | `FUERA DE RANGO`: un divisor mal soldado o una resistencia equivocada; FALLA con la línea completa |
|
||||
| `MODEM_APAGADO` | `LED PC2=0 RTCM PC7=0` | `[FAIL]` con un 1: algo alimenta al módem apagado (E-13); FALLA (avisa a ingeniería) |
|
||||
| `SER_B_LAZO` | `16/16 iguales` y **30.0–38.0 ms** (33.3 con el Y3 de 3.6864 MHz) | ≈ 3.3 ms: Y3 de 36.864 MHz (pieza equivocada) · otro tiempo: Y3, C del cristal o U5; FALLA (Y3) |
|
||||
| `BOR (option byte)` | `APAGADO` en el piloto (de fábrica) | Solo se anota: el volumen lo programa en nivel 3 (A-09) |
|
||||
| Las dos TMP102 contra el SHT40 | a menos de 5 °C entre sí en reposo | «colgado o dañado»: FALLA |
|
||||
| **U7 pin 3** (DE del RS-485) contra TP1, con el multímetro | **0 V** en reposo (EFCR = 0x30: U5 solo lo sube al transmitir) | ≈ 3.3 V: el transmisor sostiene el bus (E-4); FALLA (avisa a ingeniería) |
|
||||
| **U7 pin 3** (DE del RS-485) contra TP1, con el multímetro | **0 V** en reposo (U5 solo lo sube al transmitir) | ≈ 3.3 V: el transmisor sostiene el bus (E-4); FALLA (avisa a ingeniería) |
|
||||
| `RTC:` (después de `BOARD OK`) | `LSE Y4 32.768 kHz` | `LSI …` (con `LSE_Y4` en FAIL): Y4 no arrancó; FALLA (Y4). `NO arranco`: FALLA (avisa a ingeniería) |
|
||||
|
||||
El encabezado dice `EFCR_A … = 0x30` (la primera escritura a U5, E-4) y la autoprueba `EFCR_A=0x32`: es el mismo modo de RTS automático más el receptor apagado (F-3: sin función de campo todavía). Las dos están bien.
|
||||
|
||||
5. Cualquier `[FAIL]`: anota la línea completa y marca FALLA (POST). D10 sin parpadear: repite §5 una vez; si vuelve a fallar, FALLA (FLASH).
|
||||
|
||||
Después sale una línea `STAT …` cada 5 s. Con solo USB, `v5=0.00` y la etapa no enciende (el modo AUTO espera 5 V). La leyenda de cada campo sale con la tecla `l`; los puntos de medición de la etapa y el módem, con `v`.
|
||||
Después sale una línea `STAT …` cada 5 s. Con solo USB, `v5=0.00` y la etapa no enciende (el modo AUTO espera 5 V); `w55=?` (el W5500 se apaga en cuanto hay `/SYS5V`; con 5 V, `w55=pd`). La leyenda de cada campo sale con la tecla `l`; los puntos de medición de la etapa y el módem, con `v`. Con 5 V presentes (§7) la autoprueba hace además `W5500_PHY` (`U2 VERSIONR=0x04 (exp 04) PHYCFGR=0xF0: PHY en power-down (E-3)`): **22 PASS**.
|
||||
|
||||
## 7. Etapa RTK y módem con el juego de banco (10–15 min)
|
||||
|
||||
@ -285,7 +299,7 @@ Después sale una línea `STAT …` cada 5 s. Con solo USB, `v5=0.00` y la etapa
|
||||
|
||||
| t (s) | Consola | Qué pasa |
|
||||
|---|---|---|
|
||||
| 0 | encabezado y 18 PASS | `inputs at boot: v5=5.2–5.4V(ok)` |
|
||||
| 0 | encabezado y **22 PASS** (con 5 V entra `W5500_PHY`) | `inputs at boot: v5=5.2–5.4V(ok)` |
|
||||
| ≈ 3 | `EVT … STACK ON reason=auto` | PA1 alto: la etapa RTK enciende (MOD1 pin 5 ≈ 5 V) |
|
||||
| < 2 s después | `EVT … NMEA primera trama en PA3` | El F9P habla (**criterio: < 2 s**) |
|
||||
| + 2 | `EVT … MODEM ON (nmea): PC3 alto` | J8 pin 1 sube a 3.33 V |
|
||||
@ -304,7 +318,7 @@ Después sale una línea `STAT …` cada 5 s. Con solo USB, `v5=0.00` y la etapa
|
||||
| Corriente de la fuente | Anota (a confirmar con la primera tarjeta) |
|
||||
| U13 y L2 al tacto tras 5 min | Tibios (L2 de 3.3 µH desde T47: se revisa en el piloto) |
|
||||
|
||||
5. **Correcciones y registro.** En las líneas `STAT` de los primeros 2 min:
|
||||
5. **Correcciones y registro.** Usa el caster de Helgen (no rtk2go): con un caster caído el firmware todavía puede dar pulsos y reinicios de alimentación a un módem sano (auditoría 29-oct, A-02). Al final de cada prueba anota `rst=` y `pwrcyc=` de `STAT`. En las líneas `STAT` de los primeros 2 min:
|
||||
|
||||
| Campo | Esperado |
|
||||
|---|---|
|
||||
@ -314,12 +328,12 @@ Después sale una línea `STAT …` cada 5 s. Con solo USB, `v5=0.00` y la etapa
|
||||
| `edad=` | 0–2 s |
|
||||
| `t_on=` del primer `STAT` con `rtcm` > 0 | **< 60 s** desde `MODEM ON` (criterio de registro del módem) |
|
||||
|
||||
6. **Calibración del LED (solo piloto).** Anota `led=` de tres `STAT` seguidos (el número de flancos de la última ventana de 30 s; se actualiza cada 30 s): al arrancar, registrado y con correcciones. Si `led=0` con `rtcm` creciendo, el MCU no ve el LED de ese módem: la vigilancia se queda solo con las tramas RTCM, y sin RTCM el MCU da **un solo pulso de RESET por hora** (puede ser el caster, no el módem). Anótalo y avisa a ingeniería.
|
||||
6. **Calibración del LED (solo piloto).** Con osciloscopio, mira **J9 pin 8** (la salida del LED del módem) y **PC2** (el lado del MCU de R48) en cada estado del módem: al arrancar, buscando red, registrado, con NTRIP y con el caster caído (desconecta la antena GNSS de la base o detén el *mountpoint* 20 min). Anota si parpadea, si queda fijo o si nunca pasa de ≈ 1.8 V: la salida es de 1.8 V y el MCU la lee como alto a partir de 1.79–2.31 V (A-02). Con eso se decide cómo leerla en el firmware de campo. Anota también `led=` de tres `STAT` seguidos (el número de flancos de la última ventana de 30 s; se actualiza cada 30 s): al arrancar, registrado y con correcciones. Si `led=0` con `rtcm` creciendo, el MCU no ve el LED de ese módem: la vigilancia se queda solo con las tramas RTCM, y sin RTCM el MCU da **un solo pulso de RESET por hora** (puede ser el caster, no el módem). Anótalo y avisa a ingeniería.
|
||||
- **Si D13 parpadea pero `led=0`:** mide PC2 en el lado del MCU de **R48** (10 k), contra TP1, con el LED del módem encendido. La salida del LED del módem es de 1.8 V y el MCU la lee como alto a partir de ≈ 1.8 V: anota el valor (menos de 1.7 V = el MCU no la ve; es un dato para el firmware de campo, no una FALLA de la tarjeta).
|
||||
7. **RTK.** Teclea `n` (monitor NMEA 20 s): `fix=1` al minuto, **`fix=4`** (RTK FIX) en < 10 min con cielo, `sats ≥ 10`. Anota el tiempo.
|
||||
8. **Recuperación del módem:**
|
||||
- `M` → `EVT … MODEM_RST operador`: D13 se apaga y el módem vuelve a `VIVO`, normalmente en < 60 s (el MCU espera hasta 3 min antes del siguiente escalón).
|
||||
- `Q` → reinicio de alimentación: K1 se suelta, `MODEM OFF` y **K1 vuelve a hacer clic durante los 5 s** (con PA9 en bajo sostiene DIN_4G, J8 pin 3, en 0 V para que nada alimente al módem apagado, E-13). En esos 5 s **J8 pin 1 < 0.3 V** (≈ 1 V = algo alimenta al módem: anótalo y avisa a ingeniería). Luego K1 se suelta, `MODEM ON (pwrcyc)`, el módem vuelve a `VIVO` y K1 conmuta otra vez con `MODOB ON`.
|
||||
- `Q` → reinicio de alimentación: K1 se suelta, `MODEM OFF` y **K1 vuelve a hacer clic durante los 5 s** (con PA9 en bajo sostiene DIN_4G, J8 pin 3, en 0 V para que nada alimente al módem apagado, E-13). En esos 5 s **J8 pin 1 < 0.3 V** (≈ 1 V = algo alimenta al módem: anótalo y avisa a ingeniería). En el piloto, con osciloscopio en J8 pin 1: anota cuánto tarda en bajar de 0.3 V (el reinicio de 5 s solo sirve si el riel llega al nivel de reset del módem; A-21). Luego K1 se suelta, `MODEM ON (pwrcyc)`, el módem vuelve a `VIVO` y K1 conmuta otra vez con `MODOB ON`.
|
||||
- `SW3` (el botón): igual que `M`.
|
||||
9. **Apagado ordenado.** `P` → `STACK OFF` (apagar no pide confirmación; en AUTO queda en pausa hasta `P` + `Y`). El orden debe ser: K1 se suelta, `MODEM OFF` (J8 pin 1 a 0 V) y luego la etapa (MOD1 pin 5 a 0 V). `P` + `Y` la vuelve a encender.
|
||||
|
||||
@ -341,16 +355,16 @@ Con el juego de banco puesto y la fuente de §7.
|
||||
| V(R68), en los pads de R68, con la escala de 200 mV | ≈ 10 mV por cada 1 A de entrada |
|
||||
| (V(TP7) / 32) / V(R68), con la carga encendida (V(R68) ≥ 10 mV, es decir ≥ 1 A de entrada) | **1.0–1.1** (sensado Kelvin bien) |
|
||||
|
||||
5. **Respaldo.** Apaga la fuente (V5.6: J16 · V5.7: J15):
|
||||
5. **Respaldo.** Apaga la fuente (V5.6: J16 · V5.7: J15) y regrésala **antes de 60 s** (con 0.7.0-pre2, a partir de los 120 s en batería la ventana puede cerrar y la etapa se apaga: es el ciclo de 10 min del §10.1):
|
||||
|
||||
| Punto | Esperado |
|
||||
|---|---|
|
||||
| Consola | `EVT … V5 PERDIDO` y `BACKUP inicio`; **sin reinicio** (el encabezado no se reimprime) |
|
||||
| `STAT` | `v5=0.00`, `vbat` del paquete, `modem=VIVO`, `nmea=` sigue subiendo |
|
||||
| `STAT` | `v5=0.00`, `vbat` del paquete, `modem=VIVO`, `nmea=` sigue subiendo, `duty=VENTANA <s>` |
|
||||
| TP6 (con 10 kΩ a TP2) | Bajo |
|
||||
| D13 | Sigue parpadeando |
|
||||
|
||||
6. Enciende la fuente: `EVT … V5 PRESENTE` y `5 V de vuelta tras … s de respaldo: sin reset del MCU (V5.6/V5.7); modem con senal de vida`. Sin reinicio.
|
||||
6. Enciende la fuente: `EVT … V5 PRESENTE`, `DUTY fin: 5 V volvio — 0 ventanas, 0 omitidas; operacion continua` y `5 V de vuelta tras … s de respaldo: sin reset del MCU (V5.6/V5.7); modem con senal de vida`. Sin reinicio.
|
||||
7. Repite el corte **3 veces** (20 en las tarjetas del banco del piloto, §10). Anota cualquier reinicio con su `reset=`.
|
||||
|
||||
## 9. Ignición y ventilador (5 min)
|
||||
@ -375,24 +389,45 @@ Las 10 tarjetas del piloto (5 V5.6 + 5 V5.7) pasan §1 a §9. Además, en las ta
|
||||
|
||||
| # | Criterio | En cuántas | Firmware | Hoy |
|
||||
|---|---|---|---|---|
|
||||
| 1 | U14 con lupa (y rayos X) + autoprueba 18 PASS | 10 | 0.7.0-pre | ✅ se puede |
|
||||
| 2 | Con 24 V: NMEA < 2 s · primera RTCM < 60 s · Kelvin (TP7 ÷ 32) / V(R68) = 1.0–1.1 con ≈ 1.0 A · carga 1.2–1.4 A | 10 | 0.7.0-pre | ✅ se puede |
|
||||
| 3 | 20 ciclos de 10 min en batería con el paquete al 20 % y 45 °C · piso dormido < 100 mW (PPK2) · `/SYS5V` > 4.3 V en las ráfagas | 1 V5.6 + 1 V5.7 | **F-2** | ⏳ con 0.7.0-pre solo el respaldo continuo |
|
||||
| 4 | 20 cortes 24 V ↔ batería sin reinicio, con el módem vivo | 10 | 0.7.0-pre | ✅ se puede |
|
||||
| 5 | RS-485 y RS-232 en lazo · Ethernet 24 h | 1 + 1 | Ethernet: `0.7.0-pre-eth` · serie: **F-3** | Ethernet ✅ se puede (§10.1) · serie ⏳ F-3 (hoy: presencia y niveles) |
|
||||
| 1 | U14 con lupa (y rayos X) + autoprueba 21 PASS por USB (22 con 5 V) | 10 | 0.7.0-pre2 | ✅ se puede |
|
||||
| 2 | Con 24 V: NMEA < 2 s · primera RTCM < 60 s · Kelvin (TP7 ÷ 32) / V(R68) = 1.0–1.1 con ≈ 1.0 A · carga 1.2–1.4 A | 10 | 0.7.0-pre2 | ✅ se puede |
|
||||
| 3 | 20 ciclos de 10 min en batería con el paquete al 20 % y 45 °C · piso dormido < 100 mW (PPK2) · `/SYS5V` > 4.3 V en las ráfagas | 1 V5.6 + 1 V5.7 | 0.7.0-pre2 (F-2) | ✅ se puede (§10.1). Primer STOP en silicio: anota todo |
|
||||
| 4 | 20 cortes 24 V ↔ batería sin reinicio, con el módem vivo | 10 | 0.7.0-pre2 | ✅ se puede |
|
||||
| 5 | RS-485 y RS-232 en lazo · Ethernet 24 h | 1 + 1 | serie: 0.7.0-pre2 (tecla `S`) · Ethernet: `0.7.0-pre2-eth` | ✅ se puede (§10.1) |
|
||||
| 6 | V5.7: 9/12/24/32 V con 2.8 A · polaridad invertida · U15 < 110 °C y D21 < 100 °C a 32 V | 2 V5.7 | cualquiera | ✅ se puede (§10.2) |
|
||||
| 7 | Temperatura de U14 y L3 cargando a 1.4 A a 45 °C, y de L2 con el módem | 1 V5.6 + 1 V5.7 | 0.7.0-pre | ✅ se puede |
|
||||
| 7 | Temperatura de U14 y L3 cargando a 1.4 A a 45 °C, y de L2 con el módem | 1 V5.6 + 1 V5.7 | 0.7.0-pre2 | ✅ se puede |
|
||||
| 8 | Arneses (los JST del borde norte se movieron 12–38 mm en la V5.6 y hasta 68 mm en la V5.7), tapa (en la V5.7 el medidor D17–D14 quedó en la orilla derecha) y barrenos MH1/MH3/MH6 en la base del HBOX | 1 de cada una | — | ✅ se puede |
|
||||
|
||||
También se revisan en el piloto los cambios de T47 que nunca se han fabricado: arranque suave de U13 (AP64352Q, C61) y rizo con L2 de 3.3 µH; en la V5.7, rizo de `/VEH5V` con L4 de 15 µH. Y que con el módem apagado J8 pin 1 quede en 0 V, no en ≈ 1 V (E-13): se mide en §4 (MCU virgen) y en los 5 s de la tecla `Q` (§7.8).
|
||||
|
||||
### 10.1 Pruebas largas con 0.7.0-pre
|
||||
### 10.1 Pruebas largas con 0.7.0-pre2 { #101-pruebas-largas-con-070-pre }
|
||||
|
||||
- **20 cortes (criterio 4).** §8.5–6 veinte veces, con al menos 30 s entre corte y regreso. Cuenta los reinicios (debe ser 0) y si el módem volvió `VIVO` cada vez.
|
||||
- **Respaldo continuo a 45 °C (adelanto del criterio 3).** Paquete cargado, cámara a 45 °C, 24 V fuera: anota cuánto dura hasta `-> SLEEP` (2.95 V) y el `v5min` más bajo (`/SYS5V` > 4.3 V). El ciclo de 10 min y el piso dormido esperan a F-2.
|
||||
- **Temperaturas (criterio 7).** Paquete al 20 %, cámara a 45 °C, carga a 1.4 A: termopar o cámara térmica en U14, L3 y L2 cada 10 min por 1 h. Anota también `tchg` (U12) y `tmdm` (U8). El firmware inhibe la carga con la celda a 55 °C o la tarjeta a 70 °C.
|
||||
- **Ethernet 24 h (criterio 5, la parte Ethernet).** En 1 V5.6 y 1 V5.7. Flashea `hbox-tarjetaV56_0.7.0-pre-eth.bin` (§5; solo para esta prueba) y verifica su SHA-256. Cable de **J6** directo a una laptop con IP fija `192.168.7.1/24` (o a un switch con DHCP); en la laptop, `nc -lk 5010 > eth-V56-NN.log`. Con 24 V, en la consola: `ETH W5500 OK en SPI2 … ip_estatica=192.168.7.2`, `ETH enlace ARRIBA` y `ETH conectado a 192.168.7.1:5010`; en J6, LINK (verde) fijo y ACT (amarillo) parpadeando. Déjala **24 h**. Al final: en `STAT`, `eth=CONECTADO` y `drop=` en 0 (o casi); cuenta los `ETH servidor desconectado` de la consola; en el `.log`, NMEA, `$PHLG`/`$PHCG` cada 30 s, los `$PHEV` y un `$PHID` cada 5 min. `ETH W5500 NO responde … revisa 3V3_ETH (U9) y U2`: mide `/3V3_ETH` (3.25–3.40 V) y revisa U2. Al terminar, vuelve a flashear `hbox-tarjetaV56_0.7.0-pre.bin`. El lazo RS-485/RS-232 (J11/J12) espera F-3: en el RCT6 no caben F-3 y Ethernet en la misma imagen (el `-eth` ya usa el 98 %).
|
||||
- **Umbral de SLEEP (opcional).** Fuente de banco en J5 en lugar del paquete (límite 3 A), con 10 kΩ entre J5 pin 3 y GND como NTC y **la carga vetada con `C`** (una fuente no recibe corriente). En respaldo, bájala de 3.30 V a 2.90 V: `-> SLEEP` a 2.95 V (media de 200 ms). Súbela a 3.25 V: `SLEEP fin` arriba de 3.20 V.
|
||||
- **20 cortes (criterio 4).** Con `hbox-tarjetaV56_0.7.0-pre2.bin` (nunca el `-eth`). §8.5–6 veinte veces, con 30–60 s entre corte y regreso (con más de 2 min la ventana de batería cierra y la etapa se apaga: eso es el criterio 3). Cuenta los reinicios (debe ser 0) y si el módem volvió `VIVO` cada vez. En 1 V5.6 y 1 V5.7, además: (a) un conector que «chisporrotea» (5 cortes de 200 ms seguidos): 0 reinicios y a lo sumo un pulso de RESET del módem, nunca dos a menos de 3 min; (b) una rampa lenta de la fuente hasta 4.30 V, 60 s, con el paquete cerca de 3.0 V: con TP6 (10 kΩ a TP2) en bajo, la consola dice `V5 PERDIDO` (desde 0.7.0-pre2 el 5 V se da por perdido abajo de 4.45 V, arriba del PFI del LTC4040) y entra el respaldo; con el paquete bajo, `-> SLEEP` (A-05); (c) con osciloscopio, el orden de `P` (K1 → MODEM_EN → PA1) y la rampa de 20 ms de PA1 al encender la etapa en batería (`/SW_5V` y la caída de VSYS, E-16).
|
||||
- **Ciclo de 10 min en batería (criterio 3).** En 1 V5.6 y 1 V5.7, con el juego de banco (SIM, antenas, cielo). Es la primera vez que el STOP del MCU corre en una tarjeta real: anota todo lo que no cuadre.
|
||||
1. *Un ciclo con la consola, para ver la secuencia (15 min).* Con 24 V y `modem=VIVO`, apaga la fuente. La ventana en curso sigue; en la consola sale `DUTY enlace: primera RTCM a los … s de la ventana` y, a partir de los 120 s con fix y 2 `$PHLG` en banda después de esa RTCM, `DUTY reposo: ventana …s fix=… phlg_aire=… vbat=… -> etapa OFF, despierta en …s`. Sin ninguna RTCM la ventana cierra a los 180 s. El orden: K1 se suelta (clic), `MODEM OFF` y `STACK OFF`. En `STAT`: `duty=REPOSO despierta_en=…s` y **`stop=no`** (con la USB conectada no hay STOP: correcto). A los 10 min del **inicio** de la ventana anterior: `DUTY despertar #1 vbat=… -> etapa ON` y la etapa, el módem y el modo B vuelven solos. Si mueves la tarjeta en reposo: con la ventana anterior empezada hace ≥ 5 min, `DUTY: movimiento en reposo -> ventana ahora`; si no, la ventana abre a los 5 min del inicio de la anterior. Un movimiento cuenta una vez por episodio (moverla otra vez antes de 5 min quieta no abre otra). Regresa la fuente: `DUTY fin: 5 V volvio — 1 ventanas, 0 omitidas; operacion continua`, sin reinicio.
|
||||
2. *Los 20 ciclos (3 h 20 min).* Paquete al 20 % y cámara a 45 °C. Arranca con 24 V y USB, espera `modem=VIVO`, **desconecta el USB** (sin consola sí hay STOP) y apaga la fuente. Las ventanas se cuentan en el monitor del servidor (cada una manda `$PHEV DUTY_WAKE` y `DUTY_SLEEP` con `fix=`, `phlg=` y `vbat=`) o al final: conecta el USB (sin reiniciar) y en `STAT` lee `ventanas=20 omitidas=0`, `naps=` (unas 90 por ciclo) y `dormido=`; `up=` sin reinicio. La consola aparece cuando termina la siesta en curso (≤ 5 s); si la laptop no reconoce el puerto, desconecta y conecta otra vez después del destello del LED azul. Cada `DUTY_SLEEP` con `phlg=` ≥ 2 es una ventana completa.
|
||||
3. *`/SYS5V` en las ráfagas.* Osciloscopio en **J2 pin 2** (`/SYS5V`) contra TP1, disparo por flanco de bajada en 4.5 V, durante una ventana (registro LTE y envío de `$PHLG`): mínimo **> 4.3 V**. El `v5min` de `STAT` no sirve aquí: mide `/VEH5V` (PA4), que en batería está en 0 V.
|
||||
4. *Reset en batería.* Durante el respaldo pulsa SW2 (RESET): `BACKUP tras reset PIN sin 5 V: … ventana en 60 s` y la ventana abre sola (antes de 0.7.0-pre2 la unidad quedaba muda hasta que volvía el 24 V; A-04). Desde el tercer reset seguido en batería la ventana espera los 10 min del ciclo (`$PHEV WARM_LOOP`): nunca un lazo.
|
||||
5. *Piso dormido (PPK2).* PPK2 en modo amperímetro en serie con el cable de **J5 pin 1** (BAT+), con un interruptor en paralelo al PPK2 **cerrado** durante las ventanas (las ráfagas del módem pasan de 1 A, el límite del PPK2). Sin USB. Con la etapa en reposo (K1 suelto, D13 apagado; en la traza del PPK2 un pico cada 5 s: las siestas del STOP), abre el interruptor y registra 60 s: **piso = corriente media × voltaje del paquete < 100 mW**. Ciérralo antes de la siguiente ventana (10 min después del inicio de la anterior). Para comparar: con la consola, `Z` (STOP bloqueado), desconecta la USB y repite la medición; la diferencia es lo que ahorra el STOP. **A/B del W5500 (revisión C, L3):** con la consola, `W` (`W5500 U2 en RESET`, `STAT … w55=rst(W)`), desconecta la USB y repite la medición; anota los dos pisos: el menor decide qué hace el firmware de campo con U2. `W` otra vez lo regresa a *power-down* (y si se queda así, vence solo a las 2 h sin USB, como `Z`).
|
||||
6. *W5500 tras un corte de `/SYS5V` (opcional, revisión C, M3).* Con la etapa apagada (`P`) y la USB conectada, quita el puente de banco de J2 30 s y regrésalo: en ≤ 60 s sale `W5500 U2: VERSIONR=0x00 … -> queda en reset` y, ya con `/SYS5V`, `W5500 U2: PHY en power-down (E-3)`; `STAT … w55=pd`.
|
||||
- **Temperaturas (criterio 7).** Siempre con alguien presente. Paquete al 20 %, cámara a 45 °C, carga a 1.4 A: termopar o cámara térmica en U14, L3 y L2 cada 10 min por 1 h. Anota también `tchg` (U12) y `tmdm` (U8), y compáralos con el termopar. El firmware inhibe la carga con la celda a 55 °C o la tarjeta a 70 °C. En una tarjeta, caliente, une SDA (PB7) con GND 5 s: `TEMP: sin TMP102 … sensor interno del MCU`, una recuperación del bus (`$PHEV I2C_RECOVER`) y, si ya hubo corte, **no hay rearme** sin U12 ni U8 (`TEMP_NOREARM`; A-03); al soltar, el bus vuelve solo y `i2cerr` deja de crecer; mueve la tarjeta: `mov=` sube (el acelerómetro se reconfigura solo, revisión C, H2).
|
||||
- **Ethernet 24 h (criterio 5, la parte Ethernet).** En 1 V5.6 y 1 V5.7. Flashea `hbox-tarjetaV56_0.7.0-pre2-eth.bin` (§5; solo para esta prueba) y verifica su SHA-256. Cable de **J6** directo a una laptop con IP fija `192.168.7.1/24` (o a un switch con DHCP); en la laptop, `nc -lk 5010 > eth-V56-NN.log`. Con 24 V, en la consola: `ETH W5500 OK en SPI2 … ip_estatica=192.168.7.2`, `ETH enlace ARRIBA` y `ETH conectado a 192.168.7.1:5010`; en J6, LINK (verde) fijo y ACT (amarillo) parpadeando. Déjala **24 h**. Al final: en `STAT`, `eth=CONECTADO` y `drop=` en 0 (o casi); cuenta los `ETH servidor desconectado` de la consola; en el `.log`, NMEA, `$PHLG`/`$PHCG` cada 30 s, los `$PHEV` y un `$PHID` cada 5 min. `ETH W5500 NO responde … revisa 3V3_ETH (U9) y U2`: mide `/3V3_ETH` (3.25–3.40 V) y revisa U2. Al final, un corte de 24 V de 30 s y regreso: sin reinicio y `ETH conectado` otra vez (con 0.7.0-pre el W5500 se colgaba al reiniciarse tras un corte y el watchdog reiniciaba la tarjeta; A-06, corregido). Al terminar, vuelve a flashear `hbox-tarjetaV56_0.7.0-pre2.bin`. El build `-eth` no trae el ciclo de batería (F-2) ni la prueba serie (`S`/`U`): en el RCT6 no caben con Ethernet en la misma imagen.
|
||||
- **Puertos serie (criterio 5, la parte serie).** En 1 V5.6 y 1 V5.7 (si hay tiempo, en todas: se anota en observaciones). Basta el USB.
|
||||
1. **Tarjeta de eco:** otra tarjeta ya probada, con 0.7.0-pre2, por USB. Teclea `U`: `ECO RS-485 ENCENDIDO (9600 baud, J11): esta tarjeta devuelve cada $SERT,A como $SERE,A. U otra vez = apagar`.
|
||||
2. Cable de 3 hilos **J11 ↔ J11**: pin 1 (A) con pin 1, pin 2 (B) con pin 2, pin 3 (GND) con pin 3. JP6 abierto en las dos (el cable de banco es corto: sin terminación).
|
||||
3. En la tarjeta bajo prueba, un puente entre **J12 pin 1 (TX) y J12 pin 2 (RX)**.
|
||||
4. Teclea `S` en la tarjeta bajo prueba. Esperado:
|
||||
|
||||
```
|
||||
---- PRUEBA SERIE (F-3) ----
|
||||
[PASS] RS232_LAZO J12 TX->RX: 9600 3/3, 115200 3/3
|
||||
[PASS] RS485_ECO J11 a la otra tarjeta: 9600 baud 5/5
|
||||
EVT … PRUEBA SERIE: RS-232 PASS (3+3/6) · RS-485 PASS (5/5)
|
||||
```
|
||||
|
||||
En la de eco, `STAT … eco485=5`. El bus RS-485 no tiene polarización (el SP3485 no es *fail-safe*): en reposo llega basura y las tramas se buscan con su suma de verificación. Con el modo B activo, `S` suelta K1 unos segundos y lo regresa solo.
|
||||
5. `RS232_LAZO` en FAIL: el puente de J12, U10 (TRS3232E) y sus capacitores. `RS485_ECO` en FAIL: la otra en eco (`U`), A con A y B con B (no A con B), U7 y JP6. Al terminar, `U` en la de eco la apaga. J14 (TTL) solo sirve para transmitir: R1OUT de U10 maneja `/SER_RXB` siempre (la v6 lo corrige con R73); no se prueba aquí.
|
||||
- **Umbral de SLEEP (opcional).** Fuente de banco en J5 en lugar del paquete (límite 3 A), con 10 kΩ entre J5 pin 3 y GND como NTC y **la carga vetada con `C`** (una fuente no recibe corriente). En respaldo y con la ventana abierta (etapa encendida), bájala de 3.30 V a 2.90 V: `-> SLEEP` a 2.95 V (media de 200 ms). Súbela a 3.25 V: `SLEEP fin` arriba de 3.20 V. Con la etapa en reposo, un despertar con el paquete bajo se omite: `DUTY despertar omitido (bateria baja)`.
|
||||
|
||||
### 10.2 V5.7: la fuente a bordo (criterio 6)
|
||||
|
||||
@ -408,17 +443,19 @@ Necesitas carga electrónica de 3 A, osciloscopio con punta de tierra corta (res
|
||||
| Nodo SW de U15 y su VIN, con la punta de tierra corta, al encender y con 2.5 A | Anota el sobretiro y la oscilación (D-21-2) |
|
||||
|
||||
3. **Temperatura.** 32 V y 2.8 A por 10 min: **U15 < 110 °C** y **D21 < 100 °C**. A 9 V y 1.9 A: cámara térmica en las dos vías de entrada (E-10).
|
||||
4. **Polaridad invertida.** Fuente a 24 V con límite de 200 mA, **al revés** en J15 (pin 1 = −, pin 2 = +) por 5 s: corriente < 5 mA y nada se calienta (Q6 bloquea; D18 es bidireccional). Al conectarla bien, J3 pin 1 vuelve a 5.32 V: F2 no se abrió.
|
||||
4. **Arranque del motor.** Caídas de 24 → 8 V por 200 ms y de 12 → 6 V por 500 ms con la etapa encendida: anota `/VEH5V` contra el PFI, los `V5 PERDIDO`/`PRESENTE` y los `IGN` de la consola (A-05).
|
||||
5. **Polaridad invertida.** Fuente a 24 V con límite de 200 mA, **al revés** en J15 (pin 1 = −, pin 2 = +) por 5 s: corriente < 5 mA y nada se calienta (Q6 bloquea; D18 es bidireccional). Al conectarla bien, J3 pin 1 vuelve a 5.32 V: F2 no se abrió.
|
||||
|
||||
## 11. Cierre
|
||||
|
||||
- [ ] Sin energía: retira el paquete, el simpleRTK2B y el 4G NTRIP Master de banco (sin doblar pines) y regrésalos a sus bolsas «BANCO».
|
||||
- [ ] Retira el puente de banco de J2.
|
||||
- [ ] Con la consola abierta, en `STAT`: `modo=AUTO` (o `AUTO(pausa)`). `A` guarda MANUAL en flash (desde 0.7.0-pre2 pide `Y`) y un reflasheo no lo borra; una unidad en MANUAL no enciende sola en campo (A-10).
|
||||
- [ ] Etiqueta la tarjeta con su serie (**V56-NN** o **V57-NN**) y la fecha, cerca de MH3, sin tapar la serigrafía.
|
||||
- [ ] Llena el [acta de tarjeta V5.6](../formularios/v56.html) o el [acta de tarjeta V5.7](../formularios/v57.html), con la ARD y la RTK de banco que usaste.
|
||||
- [ ] Bolsa antiestática. Las FALLA en bolsa aparte, con una nota del punto que falló.
|
||||
|
||||
La tarjeta se queda con 0.7.0-pre: es el firmware del piloto. No se embarca ninguna unidad V5.6/V5.7 hasta que pasen los 8 criterios y salga el firmware de campo.
|
||||
La tarjeta se queda con 0.7.0-pre2: es el firmware del piloto. No se embarca ninguna unidad V5.6/V5.7 hasta que pasen los 8 criterios y salga el firmware de campo.
|
||||
|
||||
## Hoja de respaldo en papel
|
||||
|
||||
@ -437,12 +474,16 @@ La tarjeta se queda con 0.7.0-pre: es el firmware del piloto. No se embarca ning
|
||||
|
||||
## Anexo — notas de ingeniería
|
||||
|
||||
- **Arranque seguro por hardware:** R8 (a `/SYS5V`) apaga la etapa RTK, R57 (a GND) apaga U13, R5 deja el W5500 en reset y R32 deja K1 suelto. 0.7.0-pre lo respeta: PC3, PA1, PB5, PA15, PA6 y PB0 en bajo; PA2 como entrada hasta encender la etapa; PC1 en drenador abierto (nunca alto); lo primero que escribe en U5 es EFCR = 0x30 (E-4).
|
||||
- **Módem (0.7.0-pre, F-1):** etapa ON → NMEA (o 30 s sin NMEA, solo si PA10 está en alto: el F9P tiene alimentación) → 2 s → MODEM_EN (PC3) → 1 s → pulso de RESET (PC1, 500 ms). Vivo = **4 flancos del LED (PC2, con 20 ms de antirrebote)** o una trama RTCM3 con CRC-24Q válido (PC7) en 10 s. Sin vida **180 s**: pulso (máx. 2), luego MODEM_EN abajo 5 s con DIN_4G en 0 V (K1 + PA9 en bajo; máx. 2), luego LIMP (otra escalera cada 30 min). Vivo y luego 3 min sin LED ni RTCM = oscuro → la misma escalera; la quinta en una hora = LIMP. Si el LED nunca se vio (vida solo por RTCM), sin RTCM solo un pulso por hora y sin escalera (puede ser el caster). La escalera se rearma tras 3 min de VIVO seguido. El modo B espera al módem vivo (o 60 s). Al apagar (también con `R`): K1 suelto → MODEM_EN abajo → PA1 abajo (F-8). Revisión independiente del 27-oct + 27 escenarios del simulador.
|
||||
- **Arranque seguro por hardware:** R8 (a `/SYS5V`) apaga la etapa RTK, R57 (a GND) apaga U13, R5 deja el W5500 en reset y R32 deja K1 suelto. 0.7.0-pre2 lo respeta: PC3, PA1, PB5, PA15, PA6 y PB0 en bajo; PA2 como entrada hasta encender la etapa; PC1 en drenador abierto (nunca alto); lo primero que escribe en U5 es EFCR = 0x30 (E-4) y después configura los dos canales (8N1, FIFOs, receptores apagados: EFCR_A = 0x32).
|
||||
- **Módem (F-1, desde 0.7.0-pre):** etapa ON → NMEA (o 30 s sin NMEA, solo si PA10 está en alto: el F9P tiene alimentación) → 2 s → MODEM_EN (PC3) → 1 s → pulso de RESET (PC1, 500 ms). Vivo = **4 flancos del LED (PC2, con 20 ms de antirrebote)** o una trama RTCM3 con CRC-24Q válido (PC7) en 10 s. Sin vida **180 s**: pulso (máx. 2), luego MODEM_EN abajo 5 s con DIN_4G en 0 V (K1 + PA9 en bajo; máx. 2), luego LIMP (otra escalera cada 30 min). Vivo y luego 3 min sin LED ni RTCM = oscuro → la misma escalera; la quinta en una hora = LIMP. Si el LED nunca se vio (vida solo por RTCM), sin RTCM solo un pulso por hora y sin escalera (puede ser el caster). La escalera se rearma tras 3 min de VIVO seguido. El modo B espera al módem vivo (o 60 s). Al apagar (también con `R`): K1 suelto → MODEM_EN abajo → PA1 abajo (F-8). Revisión independiente del 27-oct + 27 escenarios del simulador.
|
||||
- **Batería LFP:** SLEEP en respaldo a 2.95 V (media de 200 ms), rearme a 3.20 V; medidor D17–D14 a 3.00/3.20/3.30/3.40 V; carga inhibida con la celda ≥ 55 °C o la tarjeta ≥ 70 °C; etapa apagada con la celda ≥ 60 °C o la tarjeta ≥ 75 °C (rearme 55/70). `tcel` = NTC del paquete por PC5 (× 0.5455), válida solo con `/VEH5V` presente (E-14); en batería se ve `n/c` y cuidan U12 y U8.
|
||||
- **En respaldo no hay ciclos** (eso es F-2): la etapa y el módem siguen encendidos desde el refuerzo del LTC4040 (4.79 V); al volver los 5 V el MCU no se reinicia y solo pulsa el RESET del módem si no dio señal de vida en el último minuto, si la escalera no lo está atendiendo y si no hubo un pulso en los últimos 3 min (un 5 V que rebota no lo reinicia en lazo).
|
||||
- **Batería (F-2, 0.7.0-pre2):** al perder el 5 V en AUTO la ventana en curso sigue desde el refuerzo del LTC4040 (4.79 V); cierra con ≥ 120 s, fix y 2 `$PHLG` en banda después de la primera RTCM de la ventana (el enlace probado); sin RTCM, a los 180 s. Al probarse el enlace la siguiente `$PHLG` sale en 2 s. Cierre ordenado (K1 → MODEM_EN → PA1, F-8), U5 dormido, el PHY del W5500 en *power-down* y el MCU en STOP: el RTC (LSE de Y4; si no arranca, LSI de 17–47 kHz: siestas de 3.4–9.4 s y ciclo de ~7–19 min, `$PHEV RTC lsi`) lo despierta cada 5 s (IWDG, 5 V que vuelve, destello) y a los 10 min del inicio de la ventana anterior; `millis()` se corrige con el calendario del RTC. Un episodio de movimiento en reposo (INT1 del LIS2DH12) abre una ventana a los 5 min del inicio de la anterior, o en ese momento si ya pasaron (uno por episodio). Con la USB conectada a una computadora no hay STOP (desconectada sí, aunque la terminal haya quedado abierta: revisión C, H1); `Z` lo bloquea. Al volver los 5 V el MCU no se reinicia (`DUTY fin`); solo pulsa el RESET del módem si no dio señal de vida en el último minuto, si la escalera no lo está atendiendo y si no hubo un pulso en los últimos 3 min (un 5 V que rebota no lo reinicia en lazo). `-DENABLE_DUTY=0` vuelve al respaldo continuo de 0.7.0-pre.
|
||||
- **Puertos serie (F-3):** driver del SC16IS752 (cristal Y3 de 3.6864 MHz, divisor = 230 400 / baud), los dos canales en 8N1 a 9600 con FIFOs y receptores apagados hasta que haya función de campo. `S` prueba RS-232 en lazo por J12 y RS-485 contra otra tarjeta en eco (`U`); `SER_B_LAZO` usa el lazo interno del canal B (MCR[4]) sin tocar el bus. U5 duerme (IER[4]) entre ventanas de batería.
|
||||
- **Acelerómetro (F-5):** LIS2DH12 a 10 Hz, ±2 g, pasa-altas en INT1 (PB9), umbral 96 mg, enclavado hasta leer INT1_SRC. Episodio = el primer movimiento tras 5 min quieta: EVT siempre; `$PHEV MOTION` en banda solo sin 5 V o sin ignición. La SC7A20 (antes de T47) da WHO_AM_I = 0x11: sin prueba de 1 g ni movimiento.
|
||||
- **W5500 (E-3):** fuera del build `-eth`, con `/SYS5V` presente, U2 sale del reset y su PHY va a *power-down* (PHYCFGR = 0xF0, 13 mA según la hoja de datos) por SPI de software; VERSIONR = 0x04 lo comprueba antes. Si no responde, queda en reset y se reintenta cada 60 s; tras 3 intentos sin respuesta (sin U2, o sin `/SYS5V`), uno por hora. En *power-down* se verifica cada 60 s (si `/3V3_ETH` cayó y volvió, se reinicia y se apaga otra vez). `W` = U2 en reset para la A/B del piso. `STAT … w55=pd|no|rst(W)`.
|
||||
- **Robustez (auditoría del 29-oct):** Y2 muerto → arranca con HSI a los mismos 96 MHz (`RELOJ: …`, `$PHEV CLOCK hse_fail`, `CLOCK_HSE` en FAIL; antes la tarjeta quedaba muda). Bus I²C colgado → hasta 9 relojes + STOP antes de `Wire.begin()`, y en marcha, si no contestan las dos TMP102, el PCF8574 ni U5 por 3 s, se reinicia el bus y se reescribe lo que vive en los dispositivos (EFCR primero), máx. 1 por minuto (`$PHEV I2C_RECOVER` en banda, máx. 1 por hora). EFCR_A se revisa cada minuto. El acelerómetro que no se pudo configurar se reintenta cada 5 s. Sin TMP102 la protección térmica de la tarjeta usa el sensor interno del MCU (`$PHEV TEMP_SRC mcu`).
|
||||
- **Ignición:** J15.3 → R15 22 k / (R16 22 k ∥ R6 3.3 k) = × 0.1154 → PA5, con D2 BAT54 a 3V3. ON ≥ 0.80 V en el pin (≈ 6.9 V), OFF < 0.55 V (≈ 4.8 V).
|
||||
- **Telemetría:** `$PHLG` en banda de 24 campos (versión `0.7.0p`, para no pasar el largo que deja el módem); campo 17 `tbat` = la celda; campo 21 `tntc` = la más caliente de U12/U8.
|
||||
- **Telemetría:** `$PHLG` en banda de 24 campos (versión `0.7.0p2`, para no pasar el largo que deja el módem); campo 17 `tbat` = la celda; campo 21 `tntc` = la más caliente de U12/U8 (−127 sin TMP102). Eventos nuevos en banda: `DUTY_WAKE`, `DUTY_SLEEP`, `DUTY_SKIP`, `DUTY_END`, `MOTION`, `I2C_RECOVER`, `TEMP_SRC`, `TEMP_NOREARM`, `WARM_LOOP`, `OVR_EXPIRE`, `CLOCK` (`hse_fail`, `hse_fail_stop`), `RTC`.
|
||||
- Compilación: `GENERIC_F411RCTX`, `-DHBOX_BOARD_V56 -DFLASH_DATA_SECTOR=5 -DFLASH_BASE_ADDRESS=0x08020000UL`, `upload.maximum_size=131072` (README del firmware).
|
||||
|
||||
## Historial de revisiones
|
||||
@ -451,3 +492,4 @@ La tarjeta se queda con 0.7.0-pre: es el firmware del piloto. No se embarca ning
|
||||
|---|---|---|
|
||||
| 1.0 | 2026-10-27 | Primera versión (borrador): prueba por tarjeta con 0.7.0-pre en la numeración de T43, juego de módulos de banco, los 8 criterios del piloto y la fuente de la V5.7. Incluye la revisión independiente del firmware (vida = 4 flancos, 180 s entre escalones, DIN_4G en 0 V en el reinicio de alimentación, DE de U7 y R48 en banco). |
|
||||
| 1.1 | 2026-10-27 | Actas aprobadas por Leo. Prueba de Ethernet 24 h por J6 (criterio 5) con el build de banco `0.7.0-pre-eth`. |
|
||||
| 1.2 | 2026-10-29 | Firmware **0.7.0-pre2**: ciclo de 10 min en batería con STOP + RTC (F-2), prueba serie con `S`/`U` (F-3), acelerómetro (F-5) y PHY del W5500 en *power-down* (E-3). Autoprueba: 21 PASS por USB, 22 con 5 V (`SER_B_LAZO` con el tiempo de Y3, `ACCEL_1G`, `W5500_PHY`; `ADC` y `MODEM_APAGADO` son veredictos); línea `RTC:`. Criterios 3 y 5 ya se pueden (§10.1: ciclo, piso dormido con PPK2, `/SYS5V` con osciloscopio, puertos serie). Corrección: `/SYS5V` en las ráfagas se mide con osciloscopio en J2 pin 2 (`v5min` es `/VEH5V`). Auditoría del firmware del 29-oct (revisiones A y C): STOP solo con la USB desconectada, A/B del W5500 con `W`, `A` + `Y`, reset en batería sin lazo. |
|
||||
|
||||
@ -14,7 +14,7 @@ De la tarjeta desnuda a la unidad lista para embarcar. Una unidad a la vez; cada
|
||||
| <span class="badge-v57">V5.7</span> | **365** + 5 del piloto | A bordo (U15, 9–32 V) | `hbox-watchdog-v57` | Igual que la V5.6 |
|
||||
| <span class="badge-v6">v6</span> | **60** | A bordo | `hbox-watchdog-v6` | Piloto de 20 con el paquete G1 |
|
||||
|
||||
Hoy se producen unidades con las **15 tarjetas V5.5** y se prueban las **V4**. La V5.6 y la V5.7 tienen su propio camino mientras dura el piloto (abajo): otros designadores (T43, los de su serigrafía), firmware 0.7.0-pre y paquete LFP-HT. Paquetes de fabricación: [Tarjetas y hardware](../hardware/index.md).
|
||||
Hoy se producen unidades con las **15 tarjetas V5.5** y se prueban las **V4**. La V5.6 y la V5.7 tienen su propio camino mientras dura el piloto (abajo): otros designadores (T43, los de su serigrafía), firmware 0.7.0-pre2 y paquete LFP-HT. Paquetes de fabricación: [Tarjetas y hardware](../hardware/index.md).
|
||||
|
||||
!!! warning "Faltan ArduSimple (27-oct)"
|
||||
No alcanzan los simpleRTK2B Pro ni los 4G NTRIP Master para las 10 unidades del piloto ni para el volumen. Las tarjetas del piloto se prueban con un **juego de módulos de banco** que pasa de tarjeta en tarjeta ([prueba y flasheo §0](../procedimientos/v56-v57-prueba-y-flasheo.md#0-el-juego-de-modulos-de-banco-faltan-ardusimple)); las unidades completas esperan a que lleguen módulos. Seguimiento: el pendiente «Faltan ArduSimple» del [tablero](../tableros/pendientes.md).
|
||||
@ -23,7 +23,7 @@ Hoy se producen unidades con las **15 tarjetas V5.5** y se prueban las **V4**. L
|
||||
|
||||
| Paso | Qué entra → qué sale | Procedimiento | Acta |
|
||||
|---|---|---|---|
|
||||
| P1 | Tarjeta desnuda V56-NN / V57-NN → tarjeta aprobada con 0.7.0-pre | [Prueba y flasheo V5.6/V5.7](../procedimientos/v56-v57-prueba-y-flasheo.md) | [Tarjeta V5.6](../formularios/v56.html) · [Tarjeta V5.7](../formularios/v57.html) |
|
||||
| P1 | Tarjeta desnuda V56-NN / V57-NN → tarjeta aprobada con 0.7.0-pre2 | [Prueba y flasheo V5.6/V5.7](../procedimientos/v56-v57-prueba-y-flasheo.md) | [Tarjeta V5.6](../formularios/v56.html) · [Tarjeta V5.7](../formularios/v57.html) |
|
||||
| P2 | Las 10 tarjetas → los 8 criterios que liberan las 135 y las 365 | [§10, banco del piloto](../procedimientos/v56-v57-prueba-y-flasheo.md#10-banco-del-piloto-los-8-criterios-para-liberar-las-135-y-las-365) | [Banco del piloto](../formularios/piloto.html) |
|
||||
| P3 | Tarjeta + pareja aprobada → unidad `HBOX56-…` / `HBOX57-…` probada | [Ensamble V5.6/V5.7](../procedimientos/v56-v57-ensamble.md) | [Ensamble V5.6](../formularios/ensamble-v56.html) · [Ensamble V5.7](../formularios/ensamble-v57.html) |
|
||||
|
||||
@ -54,5 +54,5 @@ La V4 no entra al pipeline de unidades V5; se prepara y prueba en [Taller](../ta
|
||||
- [Expediente de una unidad](../tableros/unidad.md): la historia completa de una serie.
|
||||
- [Inventario](../inventario/index.md): tarjetas, módulos, gabinetes, cajas, paquetes, fuentes; mínimos y alertas.
|
||||
- [Pendientes](../tableros/pendientes.md): tareas de la pista Producción y Compras.
|
||||
- [Descargas](../descargas/index.md): firmware vigente por tarjeta y SHA-256. Hoy: 0.6.0 CAMPO; 0.6.3 solo banco; 0.7.0-pre (V5.6/V5.7) solo banco.
|
||||
- [Descargas](../descargas/index.md): firmware vigente por tarjeta y SHA-256. Hoy: 0.6.0 CAMPO; 0.6.3 solo banco; 0.7.0-pre2 (V5.6/V5.7) solo banco.
|
||||
- [Índice de actas](../actas/index.md): cómo se llenan y qué registra cada una.
|
||||
|
||||
@ -19,8 +19,8 @@ hide:
|
||||
(function () {
|
||||
const STREAMS = [
|
||||
{ tipo:'prueba-v5', prefijo:'V5', desde:1, n:30, pad:2, titulo:'Tarjetas EinarBoard — V5', form:'/formularios/v5.html' },
|
||||
{ tipo:'prueba-v56', prefijo:'V56', desde:1, n:5, pad:2, titulo:'Tarjetas EinarBoard — V5.6 (piloto, 0.7.0-pre)', form:'/formularios/v56.html' },
|
||||
{ tipo:'prueba-v57', prefijo:'V57', desde:1, n:5, pad:2, titulo:'Tarjetas EinarBoard — V5.7 (piloto, 0.7.0-pre)', form:'/formularios/v57.html' },
|
||||
{ tipo:'prueba-v56', prefijo:'V56', desde:1, n:5, pad:2, titulo:'Tarjetas EinarBoard — V5.6 (piloto, 0.7.0-pre2)', form:'/formularios/v56.html' },
|
||||
{ tipo:'prueba-v57', prefijo:'V57', desde:1, n:5, pad:2, titulo:'Tarjetas EinarBoard — V5.7 (piloto, 0.7.0-pre2)', form:'/formularios/v57.html' },
|
||||
{ tipo:'banco-piloto', prefijo:'PILOTO-V5', desde:6, n:2, pad:1, titulo:'Banco del piloto — PILOTO-V5-6 (V5.6) y PILOTO-V5-7 (V5.7)', form:'/formularios/piloto.html' },
|
||||
{ tipo:'modulo-ard', prefijo:'ARD', desde:1, n:40, pad:3, titulo:'Módulos simpleRTK2B Pro — ARD', form:'/formularios/ardusimple.html', usoClave:'ard' },
|
||||
{ tipo:'modulo-4g', prefijo:'RTK', desde:1, n:40, pad:4, titulo:'Módems 4G NTRIP Master — RTK', form:'/formularios/modem4g.html', usoClave:'modem' },
|
||||
|
||||
@ -177,6 +177,7 @@ nav:
|
||||
- Diseño V5.7: hardware/diseno-v57.md
|
||||
- Diseño v6: hardware/diseno-v6.md
|
||||
- Auditorías y pasadas:
|
||||
- "29 oct · Firmware 0.7.0: auditoría V5.6/V5.7 y v6": hardware/firmware-auditoria-29oct.md
|
||||
- 28 oct · T42b, clase HV24 completa en V5.6/V5.7: hardware/t42b-hv24-28oct.md
|
||||
- 27 oct · Instrucciones para Leo (piloto y decisiones): hardware/instrucciones-leo-27oct.md
|
||||
- 27 oct · Instrucciones para Michelle (v6, semana): hardware/instrucciones-michelle-27oct.md
|
||||
|
||||
10
scripts/sync-docs.sh
Executable file → Normal file
10
scripts/sync-docs.sh
Executable file → Normal file
@ -33,9 +33,11 @@ declare -a MAP=(
|
||||
# docs/descargas/, la vigente anterior a superseded/, y se corrigen estas líneas.
|
||||
"04-Source-Code/firmware/hbox_v5_bringup/release/hbox-v5-bringup_0.6.3.bin|docs/descargas/prueba/hbox-v5-bringup_0.6.3.bin"
|
||||
"04-Source-Code/firmware/release/hbox-tarjetaV4_0.6.3.bin|docs/descargas/prueba/hbox-tarjetaV4_0.6.3.bin"
|
||||
# 2026-10-27: 0.7.0-pre, banco del piloto V5.6/V5.7 (un binario para las dos; solo banco)
|
||||
"04-Source-Code/firmware/release/hbox-tarjetaV56_0.7.0-pre.bin|docs/descargas/prueba/hbox-tarjetaV56_0.7.0-pre.bin"
|
||||
"04-Source-Code/firmware/release/hbox-tarjetaV56_0.7.0-pre-eth.bin|docs/descargas/prueba/hbox-tarjetaV56_0.7.0-pre-eth.bin"
|
||||
# 2026-10-29: 0.7.0-pre2, banco del piloto V5.6/V5.7 (un binario para las dos; solo banco). 0.7.0-pre (27-oct) a superseded/
|
||||
"04-Source-Code/firmware/release/hbox-tarjetaV56_0.7.0-pre2.bin|docs/descargas/prueba/hbox-tarjetaV56_0.7.0-pre2.bin"
|
||||
"04-Source-Code/firmware/release/hbox-tarjetaV56_0.7.0-pre2-eth.bin|docs/descargas/prueba/hbox-tarjetaV56_0.7.0-pre2-eth.bin"
|
||||
"04-Source-Code/firmware/release/hbox-tarjetaV56_0.7.0-pre.bin|docs/descargas/superseded/hbox-tarjetaV56_0.7.0-pre.bin"
|
||||
"04-Source-Code/firmware/release/hbox-tarjetaV56_0.7.0-pre-eth.bin|docs/descargas/superseded/hbox-tarjetaV56_0.7.0-pre-eth.bin"
|
||||
"04-Source-Code/firmware/tools/phtst_report.py|docs/descargas/prueba/phtst_report.py"
|
||||
"04-Source-Code/firmware/hbox_v5_bringup/release/hbox-v5-bringup_0.6.0.bin|docs/descargas/hbox-v5-bringup_0.6.0.bin"
|
||||
"04-Source-Code/firmware/hbox_v5_bringup/release/hbox-v5-bringup_0.6.2.bin|docs/descargas/superseded/hbox-v5-bringup_0.6.2.bin"
|
||||
@ -304,6 +306,8 @@ declare -a MAP=(
|
||||
# arranque el 29-oct solo para HBOX) y la fase 1 del portal (backend/compras.py + página Compras)
|
||||
"02-Architecture-Software/2026-10-28_Drogheda_Flujo-Compras-e-Inventario_ES_v1.0.md|docs/inventario/flujo-compras-28oct.md"
|
||||
"02-Architecture-Software/img/2026-10-28_Drogheda_Flujo-Compras-Centro-de-Mando_v1.0.png|docs/inventario/img/2026-10-28_Drogheda_Flujo-Compras-Centro-de-Mando_v1.0.png"
|
||||
# 2026-10-29: auditoría del firmware 0.7.0 (V5.6/V5.7, revisiones A y C; v6, revisión B) con 0.7.0-pre2
|
||||
"02-Architecture-Software/2026-10-29_Drogheda_Auditoria-Firmware-0.7.0_V5.6-V5.7-v6_ES_v1.0.md|docs/hardware/firmware-auditoria-29oct.md"
|
||||
# 2026-10-28: T42b en la V5.6 y la V5.7 (clase HV24 completa y reglas F-01 de la v6), con sus 3 figuras
|
||||
"03-Architecture-Hardware/2026-10-28_Drogheda_T42b-HV24_V5.6-V5.7_ES_v1.0.md|docs/hardware/t42b-hv24-28oct.md"
|
||||
"03-Architecture-Hardware/img/2026-10-28_Drogheda_T42b-V57-EN-U15_v1.0.png|docs/hardware/img/2026-10-28_Drogheda_T42b-V57-EN-U15_v1.0.png"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user