hbox-docs/docs/procedimientos/v56-v57-prueba-y-flasheo.md
Leopoldo Rodríguez 044900bd7a 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
2026-10-29 11:35:13 -06:00

496 lines
48 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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-29
project: Project Drogheda
author: "Helgen Technologies (redacción: Claude; revisión: Leo, Jesús Romero y Gibran)"
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-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-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.
- **Cuándo:** al recibir cada EinarBoard V5.6 o V5.7 desnuda, antes de ensamblarla. Siguiente paso: [ensamble de la unidad V5.6/V5.7](v56-v57-ensamble.md).
- **Tiempo:** 25–30 min por tarjeta (§1 a §6); 30 min más con el juego de módulos de banco (§7 a §9).
- **Necesitas:**
- multímetro con escala de 200 mV (para R68), lupa y la foto de rayos X de U14 si JLC la mandó;
- 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-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);
- 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-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).
5. **Fuente siempre con límite de corriente.** Si llega al límite o algo se calienta: apaga, marca FALLA con la sección y el valor, y pasa a la siguiente tarjeta.
6. **Módulos y batería solo donde se pide** (§7 y §8), y siempre **sin energía** al insertarlos o conectarlos. Un XBee al revés o un simpleRTK2B corrido un pin se destruye al encender.
## 0. El juego de módulos de banco (faltan ArduSimple)
Hoy no hay simpleRTK2B Pro ni 4G NTRIP Master para darle un juego a cada tarjeta del piloto. Por eso la tarjeta se prueba **sin módulos propios**:
- §1 a §6 no usan módulos.
- §7 a §9 usan **un juego de banco**: un simpleRTK2B Pro y un 4G NTRIP Master **ya aprobados** (con su acta ARD-NNN y RTK-NNNN), con SIM, marcados con una etiqueta «BANCO». El mismo juego pasa de tarjeta en tarjeta; se inserta y se retira siempre sin energía.
- Un juego de banco **no se ensambla** en una unidad mientras dure el piloto. En el acta se anota qué ARD y qué RTK se usaron.
- Para el banco del piloto (§10) hacen falta **dos** juegos a la vez (una V5.6 y una V5.7 en pruebas largas). Las 10 unidades completas del piloto esperan a que lleguen módulos: ver el pendiente «Faltan ArduSimple» en el tablero.
## Referencias en la tarjeta (T43, la serigrafía)
| Ref. | Qué es | Uso aquí |
|---|---|---|
| J7 | USB-C del MCU, borde oeste, junto a SW1 y SW2 | Alimentar el MCU, flashear (DFU) y consola a 115200 |
| SW1 / SW2 | **BOOT0 / RESET** | DFU y reinicio |
| SW3 | RESET del módem (junto al zócalo XBee) | Reinicio manual del módem |
| TP1 / TP2 | GND / 3V3 (borde norte, junto a J1) | Referencia de todas las mediciones y riel de 3.3 V |
| TP3 / TP5 / TP4 | SWDIO / SWCLK / NRST | Solo si ingeniería pide ST-Link |
| TP6 | PFO del LTC4040 (sin pull-up en la tarjeta) | Con 10 kΩ a TP2: alto = 5 V bien; bajo = respaldo |
| TP7 | CLPROG del LTC4040: V(TP7) = 32 × V(R68) | Corriente de entrada y sensado Kelvin (§8) |
| J16 (solo V5.6) | Entrada de 5 V de la Mean Well SD-15B-05: 1 = +5 V, 2 = GND | Todo sale de aquí en la V5.6 |
| J15 | Clema del GX16-5: 1 = + vehículo, 2 y 4 = GND, 3 = ignición, 5 = sin conexión | V5.6: solo ventilador e ignición · V5.7: 9–32 V para toda la tarjeta |
| J2 | Corte externo: 1 = `/MAIN5V`, 2 = `/SYS5V` (JP2 en paralelo, abierto) | En el banco: puente de banco en J2 |
| J3 | Ventilador: 1 = +5 V, 2 = retorno (lo conmuta Q1) | V5.6: 5 V del buck U15 desde J15 · V5.7: `/VEH5V` por JP1 |
| J5 | Paquete LFP 1S4P: 1 = BAT+, 2 = GND, 3 = NTC | §8 |
| J8 / J9 | Zócalo XBee del 4G NTRIP Master (paso 2.00 mm, 3.3 V) | §7 |
| MOD1 | Conectores UNO del simpleRTK2B Pro; pin 5 = `/SW_5V` | §7 |
| J13 | USB-C del módem (servicio) | No se usa aquí |
| D12 / D10 | LED verde PWR (3.3 V) / LED azul de estado (firmware) | |
| D13 | LED del módem (la misma señal llega al MCU por PC2) | §7 |
| D17 → D14 | Medidor de batería (expansor U11) | Autoprueba |
| K1 | Relevador del modo B; suelto = F9P → módem directo | Hace clic cuando el MCU toma el enlace |
| U14 | LTC4040: cargador y respaldo (QFN de 0.5 mm) | Lupa antes de energizar |
| U15 | **V5.6:** MP1584 del ventilador · **V5.7:** TPS54360B, la fuente principal de 5.32 V | La misma referencia es otra pieza en cada tarjeta |
Planos: [mapa de designadores de la V5.6](../hardware/diseno-v56.md#96-mapa-de-designadores-t43) · [de la V5.7](../hardware/diseno-v57.md#96-mapa-de-designadores-t43) · [puntos de prueba](../hardware/diseno-v56.md#10-puntos-de-prueba).
## 1. Recepción e inspección (sin energía, 5 min)
- [ ] **U14 (LTC4040) con lupa:** sin puentes entre pines ni bolitas de soldadura alrededor del QFN. Foto al acta. Si JLC mandó la radiografía de U14, también al acta. **Un U14 dudoso no se energiza:** FALLA con foto.
- [ ] Sin puentes en U3 (MCU), U2 (W5500), U5 (SC16IS752) y U13 (fuente del módem).
- [ ] Polaridad: el «+» de C68, C30, C14, C73 y C1; la banda de D2, D4, D8, D9 y D11. **V5.7:** la banda de D21 (B560C) y el punto de L4.
- [ ] Puentes de soldadura (cobre de fábrica; no se cambian en banco):
| Puente | V5.6 | V5.7 | Qué es |
|---|---|---|---|
| JP3 | cerrado **2-3** | cerrado **2-3** | F2 = 0: química LFP |
| JP5 | cerrado 1-2 | cerrado 1-2 | F1 = 0 |
| JP4 | cerrado 1-2 | cerrado 1-2 | F0 = 1 → flotación 3.50 V |
| JP1 | **abierto** | **cerrado** | V5.7: el ventilador cuelga de `/VEH5V` |
| JP2 | abierto | abierto | Puente de J2 (el banco usa el puente de J2, no JP2) |
| JP6 | abierto | abierto | Terminación de 120 Ω del RS-485 |
- [ ] Cristales: Y2 `25.000` (MCU), Y1 `25.000` (W5500), Y3 `3.6864` o `36.864` (SC16IS752), Y4 el pequeño de 32.768 kHz.
- [ ] SW1, SW2 y SW3 con clic. J7, J8, J9, J15 (y J16 en la V5.6) asentados, sin pines doblados.
- [ ] Sin piezas faltantes ni marcas de quemado.
## 2. Cortos a tierra (sin energía, 3 min)
Multímetro en ohms (no en continuidad), punta negra en **TP1**. Unos cientos de ohms que suben es normal (capacitores cargando); una lectura fija de 0–20 Ω es corto.
| Punto | Riel | Esperado | Si da < 100 Ω fijo |
|---|---|---|---|
| TP2 | `/3V3` | > 1 kΩ | FALLA: corto en 3.3 V |
| **V5.6:** J16 pin 1 · **V5.7:** J3 pin 1 | `/VEH5V` | > 1 kΩ | FALLA: corto en 5 V |
| J2 pin 1 | `/MAIN5V` | > 1 kΩ | FALLA |
| J2 pin 2 | `/SYS5V` | > 1 kΩ | FALLA |
| J15 pin 1 | entrada del vehículo | > 10 kΩ | FALLA: corto en la entrada |
| MOD1 pin 5 | `/SW_5V` (etapa RTK) | > 1 kΩ | FALLA |
| J8 pin 1 | `/3V3_MODEM` | > 1 kΩ | FALLA |
| J5 pin 1 | `/BAT_PLUS` | > 1 kΩ | FALLA: no se conecta paquete |
## 3. Riel de 3.3 V por USB (J7, 2 min)
El USB en J7 energiza solo el MCU y la lógica de 3.3 V (por D8 y U4); los 5 V del sistema, el módem, la etapa RTK y el W5500 quedan apagados.
1. USB-C en J7 a la laptop.
2. Mide:
| Punto | Esperado |
|---|---|
| D12 | Encendido |
| TP2 contra TP1 | 3.23–3.37 V |
| U4 al tacto tras 1 min | Tibio. Si quema: FALLA |
| D10 | Apagado o fijo (MCU virgen) |
3. D12 apagado o TP2 < 3.0 V: FALLA (3V3). Desconecta el USB.
## 4. Rieles de 5 V con fuente (MCU virgen, 5 min)
Con el MCU virgen sus pines quedan en alta impedancia y el hardware debe dejar **todo apagado**: R8 apaga la etapa RTK, R57 apaga el módem, R5 deja el W5500 en reset y K1 queda suelto. Eso es lo que se verifica aquí. Pon el **puente de banco en J2**. Sin USB.
### 4a. V5.6: 5 V en J16
1. Fuente a **5.30 V**, límite **500 mA**, salida apagada. A J16: pin 1 = +5 V, pin 2 = GND.
2. Enciende y mide contra TP1:
| Punto | Esperado |
|---|---|
| Corriente | < 300 mA (típico 100–250 mA, a confirmar) |
| J2 pin 1 (`/MAIN5V`) | 5.20–5.35 V (J16 menos ≈ 20 mV) |
| J2 pin 2 (`/SYS5V`) | igual que J2 pin 1 |
| TP2 (`/3V3`) | 3.23–3.37 V |
| MOD1 pin 5 (`/SW_5V`) | **0 V**. Con 5 V: FALLA (la etapa RTK no arranca apagada) |
| J8 pin 1 (`/3V3_MODEM`) | **0 V**. Con 3.3 V: FALLA (el módem no arranca apagado) |
| TP6 con 10 kΩ a TP2 | Alto (≈ 3.3 V): `/VEH5V` arriba del PFI |
| U14, U9 al tacto | Fríos o tibios |
| K1 | Sin clic |
3. Apaga la fuente.
### 4b. V5.6: 24 V en J15 (buck del ventilador)
En la V5.6 el 24 V del vehículo solo alimenta el buck del ventilador (U15) y la ignición.
1. Fuente a **24.0 V**, límite **200 mA**. A J15: pin 1 = +, pin 2 = GND. Pin 3 (ignición) sin conectar. J16 sin fuente.
2. Mide:
| Punto | Esperado |
|---|---|
| Corriente | < 50 mA (sin ventilador) |
| J3 pin 1 contra TP1 | 4.85–5.15 V. No midas contra J3 pin 2: es el lado conmutado |
| D12 | **Apagado** (sin J16 ni USB la tarjeta no tiene 5 V: correcto) |
| U15 al tacto | Frío o tibio |
3. Apaga la fuente.
### 4a. V5.7: 24 V en J15 (fuente a bordo)
1. Fuente a **24.0 V**, límite **300 mA**, salida apagada. A J15: pin 1 = +, pin 2 = GND. Pin 3 (ignición) sin conectar.
2. Enciende y mide contra TP1:
| Punto | Esperado |
|---|---|
| Corriente a 24 V | < 100 mA (típico 30–60 mA, a confirmar) |
| J3 pin 1 (`/VEH5V` por JP1) | 5.20–5.45 V (nominal 5.32 V) |
| J2 pin 1 (`/MAIN5V`) y J2 pin 2 (`/SYS5V`) | J3 pin 1 menos ≈ 20 mV |
| TP2 (`/3V3`) | 3.23–3.37 V |
| MOD1 pin 5 (`/SW_5V`) | **0 V** (si no: FALLA) |
| J8 pin 1 (`/3V3_MODEM`) | **0 V** (si no: FALLA) |
| TP6 con 10 kΩ a TP2 | Alto |
| U15, D21, L4 al tacto | Fríos o tibios |
| K1 | Sin clic |
3. A **12.0 V**: J3 pin 1 sigue en 5.20–5.45 V. Apaga la fuente.
El barrido completo (9/12/24/32 V con carga, temperatura de U15 y D21, polaridad invertida) es del banco del piloto (§10.2), no de cada tarjeta.
## 5. Flasheo por USB DFU (J7, 5 min)
Solo tarjetas que pasaron §1 a §4. Antes, verifica el SHA-256 del binario contra `SHA256SUMS.txt` de [Descargas](../descargas/index.md).
### 5a. Modo DFU
1. Solo el USB en J7 (nada en J15 ni en J16).
2. **Mantén SW1 (BOOT0).**
3. **Pulsa y suelta SW2 (RESET).**
4. Suelta SW1.
5. La laptop ve `STM32 BOOTLOADER` (ID `0483:DF11`).
Si no aparece: otro cable (muchos son solo de carga) y repite, con SW1 todavía apretado al soltar SW2.
### 5b. Cargar el binario
=== "dfu-util (macOS / Linux)"
```bash
dfu-util -l # debe listar [0483:df11]
dfu-util -a 0 -s 0x08000000:leave -D hbox-tarjetaV56_0.7.0-pre2.bin
```
=== "STM32CubeProgrammer"
1. Conexión: USB → Connect.
2. Erasing & Programming: el `.bin`, dirección de inicio `0x08000000`.
3. Marca *Verify programming* y *Run after programming* → Start Programming.
4. Espera «File download complete» y «Verify… successful». Disconnect.
El piloto trae el **STM32F411RCT6** (256 KB, T47). El binario mide menos de 128 KB y guarda sus ajustes (modo AUTO/MANUAL) en el sector 5 (`0x08020000`), que el flasheo normal no borra; un borrado completo (*mass erase*) los regresa a AUTO.
## 6. Autoprueba (consola en J7, 3 min)
1. Abre el terminal a 115200 (CoolTerm, `screen` o el monitor de Arduino) y pulsa **SW2 (RESET)**. Si lo abriste tarde, teclea `r`.
2. En los primeros 5 s:
| Punto | Esperado |
|---|---|
| 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-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-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 (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=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 vdda=3.300
[PASS] DIN chrg=1 fault=1 ser_irq=1 eth_int=. acc_int1=.
[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:
| Línea | Esperado | Si no |
|---|---|---|
| `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 |
| `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 (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); `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)
1. **Todo apagado.** Inserta el simpleRTK2B de banco en **MOD1** (el pin «5V» del módulo sobre el pin 5 de MOD1, las tiras a fondo) y el 4G NTRIP Master de banco en **J8/J9** (silueta sobre la serigrafía; paso 2.00 mm). Antena GNSS con vista al cielo; 2 antenas LTE en los u.FL del módem **antes** de energizar.
2. Fuente: **V5.6:** 5.30 V en J16, límite **3 A** (o la Mean Well SD-15B-05 ajustada a 5.30 V) · **V5.7:** 24.0 V en J15, límite **1.5 A**. Puente de banco en J2. USB en J7, terminal abierto.
3. Enciende. En modo AUTO (de fábrica) la tarjeta hace sola, en este orden (tiempos del simulador; anota los reales):
| t (s) | Consola | Qué pasa |
|---|---|---|
| 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 |
| + 1 | `EVT … MODEM_RST modem_on: … a GND 500 ms` | Pulso de RESET de rutina (E-13) |
| + 8–60 | `EVT … MODEM VIVO por led` (o `por rtcm`) | El MCU vio 4 flancos del LED del módem en 10 s (D13 parpadeando) o una trama RTCM3 válida. Sin señal de vida en **3 min**, da otro pulso de RESET (hasta 2) y luego un reinicio de alimentación: nunca en lazo rápido |
| + 0.2 | `EVT … MODOB ON: K1 conmutado` | **K1 hace clic**; el MCU manda NMEA + `$PHLG` al módem |
4. Mide contra TP1:
| Punto | Esperado |
|---|---|
| MOD1 pin 5 (`/SW_5V`) | 5.0–5.4 V |
| J8 pin 1 (`/3V3_MODEM`) | 3.25–3.40 V |
| J8 pin 5 (RESET del módem) | ≈ 3.3 V (alto), salvo durante el pulso |
| D13 | Parpadea con el módem vivo |
| 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.** 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 |
|---|---|
| `modem=` | `VIVO` |
| `rtcm=` (después de `modem=`) | Crece: tramas RTCM3 válidas que el módem le entrega al F9P |
| `tipo=` | 1005, 1077, 1087… (mensajes del caster) |
| `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).** 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). 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.
`n` sin tramas: el simpleRTK2B no tiene la configuración Helgen (UART1 a 115200) o MOD1 está corrido un pin. Apaga antes de tocar. `EVT … MODEM sigue apagado: sin NMEA … PA10 en bajo`: el F9P no tiene alimentación (F1, Q4 o el módulo mal asentado en MOD1); el MCU no enciende el módem para que DOUT_4G no lo alimente por RX2. `modem=` se queda en `ARRANQUE` y luego `PWRCYC`/`LIMP`: el módem no da señal de vida; revisa SIM, antenas y su configuración ([módulos §2](v5-modulos-integracion.md)). Para observarlo sin que el MCU lo reinicie, `D` apaga las acciones automáticas (solo vigila).
## 8. Batería y respaldo (10 min)
Con el juego de banco puesto y la fuente de §7.
1. Mide el paquete en vacío: **2.8–3.6 V** (LFP). Fuera de rango: no lo uses.
2. `P` → `STACK OFF`. **Conecta el paquete en J5** (1 = BAT+, 2 = GND, 3 = NTC). `P` + `Y` → `STACK ON`.
3. En `STAT`: `vbat` ≈ el paquete; **`tcel`** ≈ la temperatura del cuarto (es la NTC del paquete; `n/c` con 5 V presente = NTC sin conectar: FALLA del arnés); `tchg` (U12) y `tmdm` (U8).
4. **Carga.** Unos 150 s después de `STACK ON` (`carga=HOLDOFF`, luego `PROVING`), el gobernador la permite: `carga=ON ltc=CARGANDO`.
| Medición | Esperado |
|---|---|
| Corriente del paquete (pinza de CD en el cable de J5.1) | **1.2–1.4 A** si el paquete está abajo de ≈ 3.4 V |
| V(TP7) | 32 × V(R68) |
| 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) 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, `duty=VENTANA <s>` |
| TP6 (con 10 kΩ a TP2) | Bajo |
| D13 | Sigue parpadeando |
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)
La ignición entra por J15 pin 3 y el MCU la lee por ADC con histéresis: **ON a partir de ≈ 6.9 V, OFF abajo de ≈ 4.8 V**. Con 5 V presentes y la ignición en ON, el ventilador gira (política v3.0.3).
1. Ventilador de 5 V en J3. **V5.6:** 24 V en J15 pin 1 para el buck del ventilador, además de J16. **V5.7:** basta J15 pin 1.
2. Segunda fuente (límite 50 mA) entre J15 pin 3 (+) y J15 pin 2/4 (GND):
| J15 pin 3 | `STAT ign=` | Consola | Ventilador |
|---|---|---|---|
| 0 V (o al aire) | `OFF` | — | Detenido (el termostato lo enciende a 48 °C y lo apaga abajo de 45 °C) |
| 12.0 V | `ON(12.0V)` ± 0.5 V | `EVT … IGN ON (PA5 1.38 V = 12.0 V en J15.3 …)` | Gira |
| 24.0 V | `ON(24.0V)` ± 0.8 V | — | Gira |
| 3.0 V | `OFF` | `EVT … IGN OFF` | Se detiene |
3. Regresa J15 pin 3 a 0 V.
## 10. Banco del piloto: los 8 criterios para liberar las 135 y las 365
Las 10 tarjetas del piloto (5 V5.6 + 5 V5.7) pasan §1 a §9. Además, en las tarjetas que dice la tabla, se corren las pruebas largas. **Con los 8 criterios en verde se liberan las 135 V5.6 y las 365 V5.7** ([auditoría final, §7](../hardware/auditoria-final-22oct.md#7-el-pedido-de-hoy-40-min-y-el-camino-a-las-108-322), en la numeración de T43). Se registra en el [acta del banco del piloto](../formularios/piloto.html).
| # | Criterio | En cuántas | Firmware | Hoy |
|---|---|---|---|---|
| 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-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-pre2 { #101-pruebas-largas-con-070-pre }
- **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)
Necesitas carga electrónica de 3 A, osciloscopio con punta de tierra corta (resorte) y cámara térmica o termopar.
1. **Carga:** la carga electrónica entre **J3 pin 1 (+)** y **TP1 o J15 pin 2 (−)**. J3 pin 1 es `/VEH5V` por JP1. No la conectes a J3 pin 2 (es el lado conmutado del ventilador).
2. **Barrido.** A 9, 12, 24 y 32 V, con 0 A, 1.0 A y 2.5 A en la carga (más ≈ 0.3 A de la tarjeta = 2.8 A):
| Medición | Esperado |
|---|---|
| J3 pin 1 | 5.20–5.45 V en todos los puntos |
| Corriente de entrada | Anota (eficiencia) |
| 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. **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-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
| Tarjeta | 1 Visual | 2 Cortos | 3 USB | 4 Rieles | 5 Flash | 6 POST | 7 Módem | 8 Batería | 9 Ign. | OK / FALLA | Técnico | Fecha |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| V56-01 | | | | | | | | | | | | |
| V56-02 | | | | | | | | | | | | |
| V56-03 | | | | | | | | | | | | |
| V56-04 | | | | | | | | | | | | |
| V56-05 | | | | | | | | | | | | |
| V57-01 | | | | | | | | | | | | |
| V57-02 | | | | | | | | | | | | |
| V57-03 | | | | | | | | | | | | |
| V57-04 | | | | | | | | | | | | |
| V57-05 | | | | | | | | | | | | |
## 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-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.
- **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.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
| Versión | Fecha | Cambios |
|---|---|---|
| 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. |