descargas: fw 0.6.1 (V5 6fbbc583, V4 ef43a901), 0.6.0 a superseded, notas de versión 0.5.9→0.6.1; procedimientos, actas y manuales a 0.6.1
This commit is contained in:
parent
7b8fb4f9d1
commit
999010818b
@ -1,6 +1,6 @@
|
||||
a68a87ff1f6b34a8284e9e5e32c95da7bb8d8adc071c5fd64412a3e744e46b28 hbox-tarjetaV3_4.0.0.bin
|
||||
1458470bbdd95b490969976402bf2144a773a991b7650c55e3281687ba77b2e3 hbox-tarjetaV4_0.6.0.bin
|
||||
8a0ee4839763eae8c96e990eb471dae30f0a491bfb9bd81fdfb39ee69436790a hbox-v5-bringup_0.6.0.bin
|
||||
ef43a901ae9a875e6346ae8f84cc5f150a2419ff7cd577fe8f69780236840757 hbox-tarjetaV4_0.6.1.bin
|
||||
6fbbc583ac2415a742ed062c1208d4a807e61085eb2615d76e4c6da400961ad2 hbox-v5-bringup_0.6.1.bin
|
||||
035ebeb348461765f099341603a9e99b94512f8477509efb78aa7caf953f4c2f superseded/hbox-tarjetaV3_3.0.4.bin
|
||||
4528187f9d675bca8114583d44eccf4d2149d847f7e5fc402631d8811ee39282 superseded/hbox-tarjetaV4_0.5.1.bin
|
||||
fa2b7554099b332c70ab18cde24b30a4f0a46ac01987466e491c69b308783a5a superseded/hbox-tarjetaV4_0.5.2.bin
|
||||
@ -11,6 +11,7 @@ c96041aea04b1e6500ec45b558bdfcf5db94d102666a71f1b3c9d2364e40572a superseded/hbo
|
||||
5c8726da662cd047d83740a5afee92974e5e941c5dd294769cd3508d81723217 superseded/hbox-tarjetaV4_0.5.7.bin
|
||||
2e04b65f8ef1636d76f070e49e050c5d7ff6f60620eebaa452ec26baf9e9e7ab superseded/hbox-tarjetaV4_0.5.8.bin
|
||||
582969957a1d67ce80e9e7a603dd66af4fcffeb82930f9e508fd360d6a289f9c superseded/hbox-tarjetaV4_0.5.9.bin
|
||||
1458470bbdd95b490969976402bf2144a773a991b7650c55e3281687ba77b2e3 superseded/hbox-tarjetaV4_0.6.0.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
|
||||
@ -21,3 +22,4 @@ aed644c28fc3a098eedda55c7b4c2108b8ca9afcf0763b9bf85a7a2e1b4dd715 superseded/hbo
|
||||
1acd5f46ddb76f1423d5a0550a2a827b4e04d4a0223b0999cb574302e4e61696 superseded/hbox-v5-bringup_0.5.7.bin
|
||||
5b0cbf271711c72d10a795b4c1f96f97bc520cc50c8a24c2188e95fb33005760 superseded/hbox-v5-bringup_0.5.8.bin
|
||||
98b12de64339ed34c45b59e48139d57304281e1041d11564c741407b960150e0 superseded/hbox-v5-bringup_0.5.9.bin
|
||||
8a0ee4839763eae8c96e990eb471dae30f0a491bfb9bd81fdfb39ee69436790a superseded/hbox-v5-bringup_0.6.0.bin
|
||||
|
||||
BIN
docs/descargas/hbox-tarjetaV4_0.6.1.bin
Normal file
BIN
docs/descargas/hbox-tarjetaV4_0.6.1.bin
Normal file
Binary file not shown.
@ -55,6 +55,18 @@ TCP a `192.168.7.1:5010` (portátil con `nc -lk 5010`), por donde salen en espej
|
||||
Cable directo al portátil (Auto-MDIX) o cualquier switch. Overrides: `-DETH_IP=a,b,c,d -DETH_SERVER_IP=a,b,c,d
|
||||
-DETH_SERVER_PORT=n -DETH_DHCP=0`. Tecla `E` = on/off. Ver CHANGELOG 0.6.0-eth.
|
||||
|
||||
### Simulador en PC (0.6.1) — `../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 21 escenarios (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`) más un invariante de seguridad del cargador en cada vuelta del lazo.
|
||||
```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)
|
||||
```
|
||||
Necesita g++ con `-m32` (Linux: `g++-multilib`); en un Mac con Apple silicon, dentro de Docker `linux/amd64` — ver
|
||||
`tools/hostsim_v5/README.md`. No reemplaza la prueba de banco.
|
||||
|
||||
## Puente 0.5.6 — MODEM_RST desde el MCU (V4 y V5)
|
||||
|
||||
El módem 4G (socket J7/J8) solo tiene su reset (`MODEM_RST`, J7.5) en el botón `SW4G1`. Desde 0.5.6 el firmware
|
||||
|
||||
BIN
docs/descargas/hbox-v5-bringup_0.6.1.bin
Normal file
BIN
docs/descargas/hbox-v5-bringup_0.6.1.bin
Normal file
Binary file not shown.
@ -1,10 +1,10 @@
|
||||
---
|
||||
title: "Descargas"
|
||||
tags: [project-drogheda, hbox, descargas, firmware, v3, v4, v5, modem, zed-f9p]
|
||||
date: 2026-09-27
|
||||
date: 2026-09-29
|
||||
project: Project Drogheda
|
||||
author: Helgen Technologies
|
||||
version: "1.9"
|
||||
version: "2.0"
|
||||
---
|
||||
|
||||
# Descargas
|
||||
@ -36,10 +36,10 @@ Un binario por tarjeta. El nombre lleva la tarjeta y eso manda; el número de ve
|
||||
| Tarjeta | MCU | Código fuente | Binario vigente | Estado |
|
||||
|---|---|---|---|---|
|
||||
| V3 — EinarBoard 1.0, 3 unidades en campo ([manual](../manuales/manual-tarjeta-V3.md)) | Blackpill en zócalo (F411CE) | `blackpillrtkcode_v4` (4.0.0) | [`hbox-tarjetaV3_4.0.0.bin`](hbox-tarjetaV3_4.0.0.bin) · 64 352 B · `a68a87ff…` | Compilado 19-sep, sin prueba de banco |
|
||||
| V4 — `hbox-watchdog-v4` ([manual](../manuales/manual-tarjeta-V4.md)) | Blackpill + PCF8574 · W5500 · SC16IS752 | `hbox_v5_bringup` + `board_v4.h` (`-DHBOX_BOARD_V4`) | [`hbox-tarjetaV4_0.6.0.bin`](hbox-tarjetaV4_0.6.0.bin) · 88 556 B · `1458470bbdd95b49…` | Compilado 27-sep, sin prueba de banco. DFU solo con USB; puente U13-P7 → SW4G1 opcional ([procedimiento V4](../procedimientos/v4-prueba-fw-0.5.6.md)) |
|
||||
| V5 — `hbox-watchdog-v5`, lote de 15 ([manual](../manuales/manual-tarjeta-V5.md)) | STM32F411RET6 soldado | `hbox_v5_bringup` (0.6.0) | [`hbox-v5-bringup_0.6.0.bin`](hbox-v5-bringup_0.6.0.bin) · `8a0ee4839763eae8…` | Vigente desde 27-sep, sin prueba de banco. Uso: [prueba y flasheo §5](../procedimientos/v5-prueba-y-flasheo.md) y [ensamble §5](../procedimientos/v5-ensamble.md) |
|
||||
| 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.1.bin`](hbox-tarjetaV4_0.6.1.bin) · 93 096 B · `ef43a901ae9a875e…` | Compilado 28-sep, sin prueba de banco (primero H0027). 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.1) | [`hbox-v5-bringup_0.6.1.bin`](hbox-v5-bringup_0.6.1.bin) · 93 584 B · `6fbbc583ac2415a7…` | Vigente desde 29-sep, sin prueba de banco (primero H0008). Uso: [prueba y flasheo §5](../procedimientos/v5-prueba-y-flasheo.md) y [ensamble §5](../procedimientos/v5-ensamble.md) |
|
||||
|
||||
0.6.0 CAMPO (V4 y V5): cargador con gobernador (hasta 0.5.9 estaba apagado, paquete de un solo uso); en batería la etapa y el módem siguen encendidos y reportando igual que en 24 V (la V5.5 no arranca el módem en frío sobre el boost, ver [módem en batería](../procedimientos/prueba-bateria-modem.md#3-hallazgos-2527-sep)); ningún ciclo de etapa en batería; corte a 3.40 V; reset del MCU al volver el 5 V tras ≥ 10 s de respaldo; vigilancia del módem solo diagnóstica (`modem=` en `STAT`); teclas `C`/`M`/`R`. 0.5.1 fue la última embarcada antes de 0.6.0.
|
||||
0.6.1 CAMPO (V4 y V5): cargador con gobernador (hasta 0.5.9 estaba apagado, paquete de un solo uso) que desde 0.6.1 ya no corta la carga por las ráfagas del módem; `$PHLG` de 36 campos. 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)**.
|
||||
|
||||
!!! 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_…`.
|
||||
@ -47,7 +47,7 @@ Un binario por tarjeta. El nombre lleva la tarjeta y eso manda; el número de ve
|
||||
- Nada de `superseded/`: se guarda solo por trazabilidad.
|
||||
- Nada que no esté publicado aquí con su SHA-256. Los `.bin` de V3 y V4 no viven en el repositorio; se compilan, se prueban en banco y se publican ([reflasheo §5](../procedimientos/reflasheo-unidades.md#5-para-ingenieria-generar-y-publicar-un-binario)).
|
||||
|
||||
Las tres tarjetas mandan la misma trama: `$PHLG` de 29 campos cada 30 s y un `$PHEV` por cambio de estado, en banda por el módem (Modo B). El monitor la parsea igual (`retranslator.py`: 20 campos base + 4 de v3 + 5 de 0.5.1, y `$PHEV`) y las tres se ven igual en Salud.
|
||||
Las tres tarjetas mandan la misma trama: `$PHLG` cada 30 s y un `$PHEV` por cambio de estado, en banda por el módem (Modo B). V3 4.0.0 y V4/V5 hasta 0.6.0: 29 campos; V4/V5 0.6.1: 36 (los mismos 29 + 7 del gobernador de carga, al final). El monitor los parsea igual (`retranslator.py`: 20 campos base + 4 de v3 + 5 de 0.5.1 + 7 de 0.6.1, y `$PHEV`) y las tres se ven igual en Salud; un servidor sin el parser de 0.6.1 ignora los 7 campos nuevos.
|
||||
|
||||
!!! warning "V3 4.0.0: todavía no en unidades de campo"
|
||||
Compila y pasa el simulador, pero no ha corrido en una EinarBoard 1.0 real. Solo en la mesa de ingeniería hasta que se pruebe en banco (RTK-003 o RTK-006) y se quite este aviso. 4.0.0 activa Modo B por omisión (el MCU queda en línea con el enlace de correcciones), así que la primera prueba es en par: el binario publicado y uno sin Modo B sobre la misma unidad. Si el fix RTK cae al energizar K1, o `v5min` se hunde en ese instante, sospecha de la bobina de K1 llevando el riel al PFI del LTC4040.
|
||||
@ -57,11 +57,11 @@ Las tres tarjetas mandan la misma trama: `$PHLG` de 29 campos cada 30 s y un `$P
|
||||
--output-dir build/v4-sinB blackpillrtkcode_v4
|
||||
```
|
||||
|
||||
### Gobernador de carga (0.6.0)
|
||||
### Gobernador de carga (0.6.x)
|
||||
|
||||
No se podía encender el cargador sin más: en V5.5/V4 `RS1` 8 mΩ → límite de entrada del LTC4040 ≈ 3.1 A (más que los 3 A del SD-15B) y `R50` 825 Ω → 2.4 A de carga; paquete vacío + etapa + ráfaga LTE hunden el riel al PFI 4.60 V y la unidad entra en bucle (incidente de flota 10-ago). H0008 amaneció a 3.50 V tras una noche en batería y seguía "sin cargar" en 24 V.
|
||||
No se podía encender el cargador sin más: en V5.5/V4 `RS1` 8 mΩ → límite de entrada del LTC4040 ≈ 3.1 A (más que los 3 A del SD-15B) y `R50` 825 Ω → 2.4 A de carga; paquete vacío + etapa + ráfaga LTE hunden el riel hasta el PFI del LTC4040 y la unidad entra en bucle (incidente de flota 10-ago). H0008 amaneció a 3.50 V tras una noche en batería y seguía "sin cargar" en 24 V.
|
||||
|
||||
El gobernador carga solo con etapa ON en 24 V; nunca en los primeros 120 s tras boot o STACK ON; arranca tras 30 s de riel ≥ 5.05 V; corta al instante bajo 4.90 V con enfriamiento de 60 s a 30 min; inhibe con celda ≥ 45 °C; rearma el safety timer del LTC4040. En fuente débil carga por ciclos: más lento, pero el módem nunca paga. Eventos `CHG_ON/CHG_SHED/CHG_OFF/CHG_HOT/CHG_COOL/CHG_PULSE`; `STAT` → `carga=FASE … ltc=CARGANDO|no cortes=`; tecla `C` = veto. El monitor muestra 🔌 CARGANDO (columna Energía) solo con `chg=1` en `$PHLG`. `PHLG_FW` = `0.6.0` (sin "-fm"). Prueba de banco: [módem en batería §1](../procedimientos/prueba-bateria-modem.md#1-cargador-060). Si corta sin parar: V5.6 (`RS1` 10 mΩ, `R50` 1.5 kΩ) o fuente de 4 A.
|
||||
El gobernador (0.6.1) carga solo con etapa ON en 24 V; nunca en los primeros 120 s tras boot ni tras cada STACK ON; arranca tras 30 s con la media del riel ≥ 5.05 V; corta si una muestra baja de 4.70 V (DURO) o si la media de 200 ms queda bajo 4.90 V durante 1 s o baja de 4.85 V (SOSTENIDO), con enfriamiento de 60 s a 30 min; quitar el 24 V no cuenta como corte; inhibe con celda ≥ 45 °C; rearma el safety timer del LTC4040 solo entre 3.00 y 3.80 V y nunca con FALLA. En fuente débil carga por ciclos: más lento, pero el módem nunca paga. Eventos `CHG_ON/CHG_SHED/CHG_OFF/CHG_RAIL/CHG_FAULT/CHG_HOT/CHG_COOL/CHG_PULSE`; `STAT` → `carga=FASE … ltc=CARGANDO|no cortes= media= duty= cargado= caida= vdda=`; tecla `C` = veto. En el monitor, columna Energía: la fase del gobernador (espera de arranque, comprobando riel, espera tras corte…), 🔌 CARGANDO, «cargó N %» y «casi lleno». `PHLG_FW` = `0.6.1`. Prueba de banco: [módem en batería §1](../procedimientos/prueba-bateria-modem.md#1-cargador-061). Si corta sin parar: ruta de 5 V débil hasta P2 ([regla](notas-de-version.md#el-limite-de-la-ruta-de-5-v)) o fuente sin margen de corriente (el SD-15B da 3 A; carga + etapa piden ~2.8 A). La V5.6 (`RS1` 10 mΩ, `R50` 1.5 kΩ) pide mucho menos. Qué hacía 0.6.0 y por qué se cambió: [notas de versión](notas-de-version.md).
|
||||
|
||||
### Monitor con builds de ciclo
|
||||
|
||||
@ -76,10 +76,10 @@ Cotejada pad por pad (`hbox-watchdog-v4.kicad_pcb` contra `board_v5.h`): mismas
|
||||
DFU por J11 (mantén SW2, pulsa y suelta SW1, suelta SW2):
|
||||
|
||||
```bash
|
||||
dfu-util -a 0 -s 0x08000000:leave -D hbox-v5-bringup_0.6.0.bin
|
||||
dfu-util -a 0 -s 0x08000000:leave -D hbox-v5-bringup_0.6.1.bin
|
||||
```
|
||||
|
||||
o STM32CubeProgrammer → USB → Connect → Download en `0x08000000`. Tarjetas con cualquier versión anterior se reflashean igual. La primera línea tras reset dice la versión (`hbox-v5-bringup 0.6.0 built …`); si `STAT` no termina en `stack=…`, la tarjeta sigue con 0.1.1.
|
||||
o STM32CubeProgrammer → USB → Connect → Download en `0x08000000`. Tarjetas con cualquier versión anterior se reflashean igual. Al arrancar, la consola imprime la versión (`hbox-v5-bringup 0.6.1 built …`); si `STAT` no trae `stack=`, la tarjeta sigue con 0.1.1.
|
||||
|
||||
Consola: `EVT` en cada cambio (etapa, ignición, 5 V, cargador, NMEA, fix), `STAT` cada 5 s y `$PHLG` cada 10 s. `l` = leyenda, `v` = puntos de medición de la etapa RTK, `P` y luego `Y` = encender la etapa (requiere 5 V en P2).
|
||||
|
||||
@ -92,8 +92,9 @@ No se flashean. Sirven para identificar lo que trae una tarjeta vieja o para vol
|
||||
| Archivo | Por qué se retiró |
|
||||
|---|---|
|
||||
| [`superseded/hbox-tarjetaV3_3.0.4.bin`](superseded/hbox-tarjetaV3_3.0.4.bin) | Lógica de campo (3.0.3) sin telemetría en banda: el monitor no ve Salud. Sustituida por 4.0.0. |
|
||||
| [`superseded/hbox-v5-bringup_0.6.0.bin`](superseded/hbox-v5-bringup_0.6.0.bin) · [`superseded/hbox-tarjetaV4_0.6.0.bin`](superseded/hbox-tarjetaV4_0.6.0.bin) | Con la ruta de 5 V justa (riel cerca de 5.0 V al cargar) el gobernador cortaba la carga en cada ráfaga del módem, porque bastaba una muestra bajo 4.90 V: la batería casi no cargaba y el monitor casi nunca mostraba 🔌 CARGANDO. Sustituida por 0.6.1 ([notas de versión](notas-de-version.md)). |
|
||||
| [`superseded/hbox-v5-bringup_0.5.9.bin`](superseded/hbox-v5-bringup_0.5.9.bin) · [`superseded/hbox-tarjetaV4_0.5.9.bin`](superseded/hbox-tarjetaV4_0.5.9.bin) | Sin cargador (paquete de un solo uso). 0.6.0 añade el gobernador y nada más. |
|
||||
| [`superseded/hbox-v5-bringup_0.5.8.bin`](superseded/hbox-v5-bringup_0.5.8.bin) · [`superseded/hbox-tarjetaV4_0.5.8.bin`](superseded/hbox-tarjetaV4_0.5.8.bin) | No usar. Recovery activo en batería: el silencio del ahorro provocaba "RTK perdido" y un ciclo de etapa que dejaba el módem oscuro hasta un reset (noche 26/27-sep). |
|
||||
| [`superseded/hbox-v5-bringup_0.5.8.bin`](superseded/hbox-v5-bringup_0.5.8.bin) · [`superseded/hbox-tarjetaV4_0.5.8.bin`](superseded/hbox-tarjetaV4_0.5.8.bin) | No usar. Recovery activo en batería: el silencio del ahorro provocaba "RTK perdido" y, probablemente, un ciclo de etapa que dejaba el módem oscuro hasta un reset (noche 26/27-sep). |
|
||||
| [`superseded/hbox-v5-bringup_0.5.7.bin`](superseded/hbox-v5-bringup_0.5.7.bin) · [`superseded/hbox-tarjetaV4_0.5.7.bin`](superseded/hbox-tarjetaV4_0.5.7.bin) | Despertar de batería por reset del MCU: en banco no enciende el módem en batería (brown-out del boost); solo servía al volver el 5 V. |
|
||||
| [`superseded/hbox-v5-bringup_0.5.6.bin`](superseded/hbox-v5-bringup_0.5.6.bin) · [`superseded/hbox-tarjetaV4_0.5.6.bin`](superseded/hbox-tarjetaV4_0.5.6.bin) | Pulso `MODEM_RST` por U13-P7 (solo con puente); sin puente el módem no encendía en las ventanas y un reset en batería dejaba la etapa apagada. |
|
||||
| [`superseded/hbox-v5-bringup_0.5.5.bin`](superseded/hbox-v5-bringup_0.5.5.bin) · [`superseded/hbox-tarjetaV4_0.5.5.bin`](superseded/hbox-tarjetaV4_0.5.5.bin) | No usar. UART del GNSS en alta impedancia no bastó: `3V3_MODEM` queda en ~1 V y el módem no rearranca. |
|
||||
@ -103,9 +104,10 @@ No se flashean. Sirven para identificar lo que trae una tarjeta vieja o para vol
|
||||
| [`superseded/hbox-v5-bringup_0.5.1.bin`](superseded/hbox-v5-bringup_0.5.1.bin) · [`superseded/hbox-tarjetaV4_0.5.1.bin`](superseded/hbox-tarjetaV4_0.5.1.bin) | Última de campo antes del ciclo de 10 min (en batería dejaba la etapa encendida hasta vaciar el paquete). |
|
||||
| [`superseded/hbox-v5-bringup_0.4.0.bin`](superseded/hbox-v5-bringup_0.4.0.bin) | Sin `$PHLG` en banda. Sustituida por 0.5.1. |
|
||||
|
||||
??? note "Historial por versión, 0.4.0 → 0.6.0"
|
||||
??? note "Historial por versión, 0.4.0 → 0.6.1"
|
||||
- Desde 0.4.0: AUTO de fábrica (la etapa RTK enciende sola 3 s después de ver 5 V en P2); watchdog 16 s; ventilador (política v3.0.3); recuperación de enlace (ciclo de etapa si el F9P calla 60 s; LIMP tras 3 ciclos); LEDs de carga y color de estado; corte térmico 60 °C; corte de batería 3.40 V. Anota la versión en el acta.
|
||||
- 0.6.0 CAMPO: 0.5.9 + gobernador de carga (arriba).
|
||||
- 0.6.1 CAMPO: 0.6.0 con el gobernador corregido: sin cortes por las ráfagas del módem, quitar el 24 V no cuenta como corte, prueba de la ruta de 5 V (`CHG_RAIL`), ADC calibrado con VREFINT; `$PHLG` de 36 campos. Detalle: [notas de versión](notas-de-version.md).
|
||||
- 0.6.0 CAMPO (retirada): 0.5.9 + gobernador de carga; con la ruta de 5 V justa cortaba la carga en cada ráfaga del módem.
|
||||
- 0.5.9 CAMPO: sin ciclo ni ahorro en batería (`ENABLE_DUTY 0`, `ENABLE_BATT_SAVER 0`); ningún ciclo de etapa en batería (`RECOVERY_ABORT`); reset del MCU al volver el 5 V tras ≥ 10 s; un reset en batería deja la etapa apagada hasta que vuelva el 5 V; vigilancia del módem: `STAT` con `rtcm_age= sta= rtcm_last= sag5= sagb= flat= modem=vivo|SOSPECHOSO|?`, eventos `MODEM_DARK`/`MODEM_BACK`/`MODEM_WATCH`. Con esos números se calibra 0.5.10.
|
||||
- 0.5.8 CAMPO (retirada): nunca apaga el módem en batería (un módem ya encendido aguanta el paso de 24 V a batería); ráfaga de posición de ~8 s cada 10 min y `$PHLG` cada 3 min (`SAVER_ON`, `DUTY_SLEEP`/`DUTY_WAKE`, `ahorro=`); autonomía estimada ~30–35 h; recovery aún activo en batería.
|
||||
- 0.5.7: cada despertar de batería (≥ 10 min tras la última ventana) y cada regreso del 5 V es un reset del MCU (`NVIC_SystemReset`, igual que P10): arranque en ~4 s; se pierden uptime y contadores. Tecla `R`. Un reset por SW1/P10 en batería abre ventana en 60 s y `P` se acepta en batería con vbat ≥ 3.60 V.
|
||||
@ -163,5 +165,6 @@ Lista y comandos: [reflasheo §5](../procedimientos/reflasheo-unidades.md#5-para
|
||||
| 1.x | 2026-09-19 → 2026-09-27 | Cada binario nuevo (0.4.0 → 0.6.0) añadió su nota. |
|
||||
| 1.8 | 2026-09-29 | Historial por versión en cajas plegables; enlaces a manuales. |
|
||||
| 1.9 | 2026-09-29 | Edición breve. Una sola tabla de binarios vigentes; verificación SHA-256 con encabezado propio; tabla de parámetros del módem completa (antes en la configuración de la unidad); lista de publicación → reflasheo §5. |
|
||||
| 2.0 | 2026-09-29 | Firmware 0.6.1 vigente en V4 y V5; 0.6.0 a `superseded/`; `$PHLG` de 36 campos; gobernador 0.6.1; [notas de versión](notas-de-version.md). |
|
||||
|
||||
Versiones anteriores en git.
|
||||
|
||||
207
docs/descargas/notas-de-version.md
Normal file
207
docs/descargas/notas-de-version.md
Normal file
@ -0,0 +1,207 @@
|
||||
---
|
||||
title: "Notas de versión — firmware V4 / V5"
|
||||
tags: [project-drogheda, hbox, firmware, notas-de-version, v4, v5, cargador, ltc4040, descargas]
|
||||
date: 2026-09-29
|
||||
project: Project Drogheda
|
||||
author: Helgen Technologies
|
||||
version: "1.0"
|
||||
---
|
||||
|
||||
# Notas de versión — firmware V4 / V5
|
||||
|
||||
Un solo código fuente (`hbox_v5_bringup`) para las dos tarjetas: la V5 usa `hbox-v5-bringup_X.Y.Z.bin` y la V4 `hbox-tarjetaV4_X.Y.Z.bin`. La V3 tiene firmware propio (4.0.0) y no entra aquí. Binarios, SHA-256 y reglas de flasheo: [Descargas](index.md).
|
||||
|
||||
!!! abstract "Las tres versiones en una línea"
|
||||
- **0.5.9**: en batería no se apaga ni cicla la etapa, pero **no carga**. La batería es de un solo uso.
|
||||
- **0.6.0**: **carga**, con un gobernador que protege al módem. Pero con la ruta de 5 V justa cortaba la carga en cada ráfaga del módem, y el monitor casi nunca mostraba 🔌 CARGANDO.
|
||||
- **0.6.1**: el gobernador distingue una ráfaga del módem de una fuente que no aguanta. El monitor ve en qué fase está el gobernador y las cargas cortas.
|
||||
|
||||
## Estado al 29-sep-2026
|
||||
|
||||
| Versión | Fecha | Estado | Binarios |
|
||||
|---|---|---|---|
|
||||
| **0.6.1** | 28-sep | Vigente. **Sin prueba de banco todavía**: primero H0027 (V4) y H0008 (V5.5), después campo | [V5](hbox-v5-bringup_0.6.1.bin) · [V4](hbox-tarjetaV4_0.6.1.bin) |
|
||||
| 0.6.0 | 27-sep | Retirada. Carga, pero con cortes; una unidad con 0.6.0 se reflashea a 0.6.1 | [V5](superseded/hbox-v5-bringup_0.6.0.bin) · [V4](superseded/hbox-tarjetaV4_0.6.0.bin) |
|
||||
| 0.5.9 | 27-sep | Retirada. No carga | [V5](superseded/hbox-v5-bringup_0.5.9.bin) · [V4](superseded/hbox-tarjetaV4_0.5.9.bin) |
|
||||
|
||||
El servidor ya está listo para 0.6.1: htracker `4f11886`, desplegado el 29-sep, lee los 36 campos del `$PHLG`. Un servidor anterior ignora los 7 campos nuevos y muestra la unidad como si tuviera 0.6.0.
|
||||
|
||||
## Comparación rápida
|
||||
|
||||
| | 0.5.9 | 0.6.0 | 0.6.1 |
|
||||
|---|---|---|---|
|
||||
| Cargador (LTC4040) | Apagado por firmware (`CHRG_EN` alto) | Encendido por un gobernador | Gobernador corregido |
|
||||
| Cuándo arranca la carga | Nunca | 24 V + etapa ON, ≥ 120 s tras el arranque y tras cada STACK ON, riel ≥ 5.05 V durante 30 s | Igual, midiendo la media del riel en 200 ms |
|
||||
| Cuándo corta la carga | — | En cuanto **una** muestra rápida (ms) baja de 4.90 V: con el riel cerca de 5.0 V al cargar, una ráfaga LTE basta | **DURO**: una muestra < 4.70 V. **SOSTENIDO**: la media de 200 ms < 4.90 V durante 1 s seguido, o < 4.85 V |
|
||||
| Quitar el 24 V mientras carga | — | Cuenta como corte y duplica la espera | No cuenta (`CHG_OFF BATT`) |
|
||||
| Espera tras un corte | — | 60 s, se duplica en cada corte, tope 30 min | Igual, pero solo por cortes contados |
|
||||
| Pulso de rearranque del LTC4040 | — | vbat < 3.90 V, 1 cada 30 min | Solo entre 3.00 y 3.80 V, nunca con FALLA del cargador |
|
||||
| PFI que supone el firmware | — | 4.60 V (el de la V3) | 4.40 V (el real de V4 / V5.5) |
|
||||
| `$PHLG` | 29 campos, `0.5.9-fm` | 29 campos, `0.6.0` | 36 campos, `0.6.1` |
|
||||
| Monitor, columna Energía | «cargador OFF (fw)» | 🔌 CARGANDO solo si la muestra de cada 30 s cae cargando; si no, «sin cargar» (o ✅ CARGADA con ≥ 3.97 V y 5 V del vehículo) | Fase del gobernador («espera de arranque 2:30», «corte por riel»…), «cargó N %», «casi lleno», ✅ CARGADA |
|
||||
| En batería | Etapa y módem encendidos, sin ciclos de etapa; corte a 3.40 V | Igual | Igual |
|
||||
| Al volver el 24 V tras ≥ 10 s en batería | Reset del MCU | Igual | Igual |
|
||||
| Build de banco con Ethernet | `0.6.0-eth` (sin cargador) | `0.6.0-eth` (con gobernador) | `0.6.1-eth` (ya no repite el DHCP cada 5 s) |
|
||||
|
||||
## 0.6.1: el gobernador ya no corta la carga por las ráfagas del módem (28-sep)
|
||||
|
||||
### Qué pasaba con 0.6.0
|
||||
|
||||
En el banco, H0027 (V4) con fuente de 5.30 V y ~0.15 Ω de cable hasta P2: el cargador arrancaba a los 157 s y cada carga duraba 57 s, 0 s o 9 s antes de que el gobernador la cortara. Al cargar, el riel en P2 baja de ~5.20 a ~5.00 V. Una ráfaga de transmisión LTE dura milisegundos y se come los ~100 mV que quedan, y a 0.6.0 le bastaba **una** muestra rápida bajo 4.90 V para cortar. Cada corte duplicaba la espera (60 s, 2 min, 4 min… hasta 30 min), así que la batería casi no cargaba.
|
||||
|
||||
El monitor lee `CHRG_STAT` (campo 22 del `$PHLG`) una vez cada 30 s y casi nunca caía dentro de una de esas cargas cortas: por eso «no se veía cargando». El LTC4040 y el cargador estaban bien; H0008 (V5.5) estaba llena.
|
||||
|
||||
### Qué cambia
|
||||
|
||||
- **Corte en dos niveles.** DURO: una muestra rápida bajo **4.70 V**, que es la fuente colapsando (sobrecarga, hiccup); se corta en esa misma muestra, todavía 0.3 V sobre el PFI. SOSTENIDO: la **media de 200 ms** bajo **4.90 V durante 1 s seguido**, o una sola media bajo **4.85 V**; eso es la fuente o el cable sin fuerza para la carga. Las ráfagas del módem ya no cortan, ni solas ni cuando una ventana de 200 ms junta varias. La prueba de 30 s antes de arrancar (≥ 5.05 V) usa la misma media.
|
||||
- **PFI real: 4.40 V.** En V4 y V5.5 el LTC4040 pasa el consumo de la tarjeta al paquete (boost) cuando el riel baja de 4.40 V (R51 270 k / R52 100 k), no en los 4.60 V de la V3 que suponía 0.6.0 (`BOARD_PFI_FALL_V` en `board_v4.h` / `board_v5.h`).
|
||||
- **Quitar el 24 V no cuenta como corte.** Un corte solo cuenta si 3 s después sigue habiendo 5 V. Si no, sale `CHG_OFF BATT` y la espera no se duplica. Una fuente que se cae y vuelve en menos de 3 s sí cuenta: no sostuvo la carga.
|
||||
- **Prueba de la ruta de 5 V (`CHG_RAIL`).** 5 s después de cada arranque de la carga el firmware mide cuánto bajó el riel. Lo esperado es menos de 0.10 V; más de 0.15 V es una ruta de 5 V débil hasta P2 (cable, conector o fuente). Sale como evento, en `STAT caida=` y en el `$PHLG` (`cdrop`).
|
||||
- **Siete campos nuevos al final del `$PHLG` (30–36)**, para que el monitor vea el gobernador y las cargas cortas entre dos reportes:
|
||||
|
||||
| Campo | Nombre | Qué es |
|
||||
|---|---|---|
|
||||
| 30 | `cgov` | Fase del gobernador: `HOLDOFF` `PROVING` `WAIT` `ON` `SHED` `COOLDOWN` `BATT` `NOTRUN` `PWRCYC` `INIT`, o `HOT` (celda caliente), `OP` (vetado con `C`), `OFF` (compilado sin cargador) |
|
||||
| 31 | `cwait` | Segundos hasta que pueda arrancar la carga, contando los 30 s de prueba del riel (0 = carga permitida, −1 = nada programado) |
|
||||
| 32 | `csheds` | Cortes contados desde el arranque (quitar el 24 V no cuenta) |
|
||||
| 33 | `cduty` | % de los últimos 30 s cargando de verdad (−1 = sin dato) |
|
||||
| 34 | `cchg_s` | Segundos cargando desde el arranque |
|
||||
| 35 | `cdrop` | mV que bajó el riel en el último arranque de la carga (−1 = sin medir) |
|
||||
| 36 | `vdda` | Referencia del ADC medida, en mV (0 = se usó la nominal de 3.30 V) |
|
||||
|
||||
- **ADC calibrado con VREFINT.** El MCU mide su propia referencia con el dato de fábrica, así que 4.70 / 4.90 / 5.05 V valen lo mismo con cualquier regulador de 3.3 V. Fuera de 3.15–3.45 V usa 3.30 V nominal.
|
||||
- **Pulso de rearranque del LTC4040, más prudente.** Solo entre 3.00 y 3.80 V: bajo ~3.90 V (V_RECHRG) el LTC4040 vuelve a cargar solo y arriba de eso un pulso no hace nada; 3.80 V deja margen para la tolerancia de V_RECHRG. Nunca con FALLA del cargador: con una batería mala el pulso reiniciaría su temporizador de 30 min y seguiría cargando una celda muerta. Se cuenta desde que `CHRG_EN` volvió a ON, así que una pausa ya no gasta el pulso de cada 30 min.
|
||||
- **Fases más claras.** `WAIT` = riel bajo, o espera tras una caída cuando no había corriente de carga (no cuenta como corte). `SHED` = los 3 s en que se clasifica un corte. `COOLDOWN` = solo después de un corte contado. `PWRCYC` = ciclo de etapa (antes salía `NOTRUN`). La pausa por NTC (CHRG y FAULT bajos a la vez) ya no se cuenta como carga. Evento nuevo `CHG_FAULT ntc|bateria|fin`.
|
||||
- **Robustez.** La espera de 120 s tras el arranque queda cerrada una vez cumplida: 0.6.0 la volvía a abrir a los 49.7 días, cuando el reloj del MCU da la vuelta. El cargador se pone en pausa antes de lo que bloquea el lazo varios segundos (`r`, `g`, `i`, `A`, el DHCP del build `-eth`) y el gobernador lo retoma al terminar.
|
||||
- **Build de banco `0.6.1-eth`.** Con cable directo a la laptop y sin servidor DHCP, `0.6.0-eth` repetía el DHCP entero en cada intento: 4–5 s bloqueado cada 5 s, con el cargador puesto. `0.6.1-eth` hace un solo intento de DHCP al conectar el cable y después renueva el lease una vez por minuto, solo si lo hubo. Si el W5500 no responde, reintenta cada 10 min tras 3 fallos.
|
||||
|
||||
### Qué se ve en la consola
|
||||
|
||||
Cada evento sale como `EVT up=<s> <texto>`; en la tabla, solo el texto.
|
||||
|
||||
| Línea | Qué significa |
|
||||
|---|---|
|
||||
| `CARGA ON: riel 5.xx V estable 30 s, vbat=…` | Arrancó la carga |
|
||||
| `CARGA: riel 5.2x -> 5.0x V con el cargador (caida 0.xx V)` | 5 s después del arranque. Si sale además `RUTA DE 5 V DEBIL`, revisar cable, conector o fuente hasta P2 |
|
||||
| `CARGA cortada (DURO): muestra rapida …` | La fuente colapsó |
|
||||
| `CARGA cortada (SOSTENIDO): media 200 ms …` | La fuente o el cable no sostienen la carga |
|
||||
| `CARGA OFF: se fue el 5 V … no cuenta como corte del gobernador` | Se quitó el 24 V |
|
||||
| `CARGA en pausa: pruebas r …` | Pausa durante `r`, `g`, `i`, `A` o DHCP; se retoma sola |
|
||||
| `STAT … carga=ON 812s pin=ON ltc=CARGANDO cortes=0(duro 0/sost 0) media=5.03 duty=100% cargado=812s caida=0.21V vdda=3.297` | Fase y segundos en ella, pin `CHRG_EN`, estado real del LTC4040, cortes (duros / sostenidos), media del riel, % cargando en los últimos 30 s, segundos cargando desde el arranque, caída del último arranque, referencia del ADC |
|
||||
|
||||
Eventos en banda (`$PHEV`, los ve el servidor): `CHG_ON`, `CHG_SHED duro|sost`, `CHG_OFF`, `CHG_RAIL`, `CHG_FAULT`, `CHG_PULSE`, `CHG_HOT`, `CHG_COOL`, y `CHRG_ON` / `CHRG_IDLE` (flanco real del LTC4040).
|
||||
|
||||
### Qué se ve en el monitor
|
||||
|
||||
Columna **Energía** (lista y detalle). El tile de batería del detalle dice lo mismo con otras palabras («sin cargar: espera de arranque…», «cargador permitido pero sin corriente»). Las cuentas atrás incluyen los 30 s de prueba del riel.
|
||||
|
||||
| Dice | Qué significa | Qué hacer |
|
||||
|---|---|---|
|
||||
| 🔌 CARGANDO | El LTC4040 estaba cargando en la muestra de 30 s | — |
|
||||
| cargó N % | Cargó ese % de los últimos 30 s aunque la muestra no lo vio | — |
|
||||
| espera de arranque 2:30 | Primeros 120 s tras el arranque o tras encender la etapa (el módem se registra antes de cargar), más la prueba del riel | Esperar |
|
||||
| comprobando riel 0:12 | Los 30 s de prueba del riel antes de arrancar | Esperar |
|
||||
| riel bajo para cargar | La media del riel no llega a 5.05 V, o espera tras una caída sin corriente de carga (con cuenta atrás; no cuenta como corte) | Fuente a 5.2–5.4 V medidos en P2; revisar cable |
|
||||
| corte por riel | Los 3 s en que se clasifica un corte | Si se repite, ver la fila siguiente |
|
||||
| espera tras corte 1:30 · 1 corte | Espera tras un corte contado: 60 s, que se duplican con cada corte (tope 30 min), más la prueba del riel | Varios cortes: [ruta de 5 V débil](#el-limite-de-la-ruta-de-5-v) |
|
||||
| ciclo de etapa | Recuperación de enlace; la carga espera 120 s más la prueba de riel | — |
|
||||
| etapa apagada | La etapa RTK está apagada | — |
|
||||
| celda caliente | Celda ≥ 45 °C; vuelve a cargar bajo 40 °C | Revisar ventilación y sol directo |
|
||||
| vetado (C) | Alguien bloqueó el cargador con `C` en la consola | `C` otra vez |
|
||||
| casi lleno | Gobernador en ON y el LTC4040 terminó (pasó C/8) con 3.85–3.97 V | Normal. Bajo 3.90 V el LTC4040 vuelve a cargar solo |
|
||||
| ✅ CARGADA | 5 V del vehículo presentes y batería ≥ 3.97 V | — |
|
||||
| cargador sin corriente | Gobernador en ON pero el LTC4040 no carga, bajo 3.85 V | Entre 3.00 y 3.80 V el firmware manda el pulso de rearranque. Si sigue: paquete, NTC P4-3 y R50 |
|
||||
| ⏸ PAUSA NTC · ⚠ FALLA CARGADOR | Lo dice el LTC4040: NTC del paquete fuera de rango o batería mala | Revisar NTC P4-3 y paquete |
|
||||
| riel −0.2x V al cargar (detalle) | `cdrop` > 150 mV | Cable, conector o fuente hasta P2 |
|
||||
|
||||
En HISTORIAL la franja verde marca también los intervalos con `cduty` > 0, y el tooltip dice la fase del gobernador. Las exportaciones CSV / XLSX / PDF traen las 7 columnas nuevas al final.
|
||||
|
||||
### El límite de la ruta de 5 V
|
||||
|
||||
No es falla del firmware. La corriente de entrada del cargador es máxima cuando el paquete pasa de corriente constante a voltaje constante (~3.8 V): ~2.2 A al cargador más ~0.6 A de la etapa, unos **2.8 A** por el cable hasta P2. Con esa corriente la media del riel en P2 tiene que quedar en 4.90 V o más:
|
||||
|
||||
**R hasta P2 ≤ (V de la fuente − 4.90 V) / 2.8 A** → con 5.30 V, 0.14 Ω como máximo; con 5.40 V, 0.18 Ω.
|
||||
|
||||
Con más resistencia, los cortes SOSTENIDOS empiezan antes de ese punto, cuando el paquete llega a cierto voltaje, y la carga se estanca ahí. El módem queda protegido, pero el paquete no se llena. H0027 en el banco (0.15 Ω a 5.30 V) está en ese caso: cortes desde ~3.6 V. Con la fuente a 5.40 V pasa la regla. Remedio: subir la fuente dentro del rango del manual de la tarjeta (5.2–5.4 V en P2), acortar o engrosar el cable, o ambas cosas. La medición del firmware sirve de guía: `caida=` en `STAT` (evento `CHG_RAIL`) debería quedar bajo 0.10 V. En la V5.6 el cargador pide ~1.3 A (`R50` 1.5 kΩ) y el margen es mucho mayor.
|
||||
|
||||
### Cómo se probó y qué falta
|
||||
|
||||
- Simulador en PC (`tools/hostsim_v5` del repositorio de firmware): compila el sketch sin cambios contra un modelo eléctrico de la entrada de 5 V calibrado con H0027 y revisa 21 escenarios, con un invariante de seguridad del cargador en cada vuelta del lazo. 0.6.0 reproduce el síntoma: 6 cortes y 0 % del tiempo cargando en 40 min. 0.6.1: 0 cortes, 100 %. También cubre desconexión, hiccup, caída sostenida, batería mala, pausa NTC, veto, autoprueba `r`, ciclo de etapa, vuelta del reloj y VDDA de 3.25 V.
|
||||
- **Falta la prueba de banco** ([módem en batería §1](../procedimientos/prueba-bateria-modem.md#1-cargador-061), vale también para la V4): H0027 30 min cargando sin cortes con el paquete bajo 3.5 V, quitar el 24 V ~5 s y volver a ponerlo, bajar la fuente a ~4.85 V en P2, y una noche con H0027 a 5.40 V y H0008 en 24 V. Las dos deben amanecer en «casi lleno» o ✅ CARGADA, sin cortes nuevos durante la noche.
|
||||
|
||||
### Archivos
|
||||
|
||||
| Archivo | Tarjeta | Tamaño | SHA-256 |
|
||||
|---|---|---|---|
|
||||
| [`hbox-v5-bringup_0.6.1.bin`](hbox-v5-bringup_0.6.1.bin) | V5.5 (V5.6 solo con paquete Li-ion) | 93 584 B | `6fbbc583ac2415a742ed062c1208d4a807e61085eb2615d76e4c6da400961ad2` |
|
||||
| [`hbox-tarjetaV4_0.6.1.bin`](hbox-tarjetaV4_0.6.1.bin) | V4 | 93 096 B | `ef43a901ae9a875e6346ae8f84cc5f150a2419ff7cd577fe8f69780236840757` |
|
||||
|
||||
Compilados del commit `708ee0a` del repositorio de firmware (arduino-cli 1.3.1, STM32duino 3.0.0). Detalle técnico: `CHANGELOG.md` del firmware, sección 0.6.1. Los umbrales de batería son de Li-ion (flotación 4.00 V, corte 3.40 V, LEDs, monitor). Una V5.6 con el paquete LFP-HT necesita un build propio con flotación 3.50 V y esos umbrales recalculados; la [ECO V5.6](../hardware/v56-eco.md) lo prevé como 0.7.0.
|
||||
|
||||
## 0.6.0: el cargador vuelve, con gobernador (27-sep)
|
||||
|
||||
### Por qué
|
||||
|
||||
Hasta 0.5.9 el firmware dejaba el cargador apagado: tras la primera noche en batería la unidad se quedaba sin respaldo. H0008 amaneció a 3.50 V y en 24 V seguía «sin cargar». En V5.5 / V4 no se puede encender el cargador sin más. `RS1` de 8 mΩ fija el límite de entrada del LTC4040 en ≈ 3.1 A, por encima de los 3 A del SD-15B, y `R50` de 825 Ω pide 2.4 A de carga con el paquete vacío. Paquete vacío + etapa + ráfaga LTE sobrepasan la fuente, el riel cae al PFI, el LTC4040 pasa el consumo al paquete (que está vacío) y la unidad entra en brown-out, reset y bucle: el incidente de flota del 10-ago.
|
||||
|
||||
### Qué hace
|
||||
|
||||
- **Gobernador de carga** (`chargeService`, adaptado del firmware de flota v3.0.1). Es lo único que mueve `CHRG_EN` después del arranque:
|
||||
- Carga solo con la etapa ON en 24 V, sin respaldo de batería ni ciclo de etapa en curso.
|
||||
- Nunca en los primeros 120 s tras el arranque ni tras cada STACK ON: primero se registra el módem.
|
||||
- Arranca tras 30 s de riel ≥ 5.05 V.
|
||||
- Corta al instante si una muestra rápida del riel baja de 4.90 V. Espera 60 s antes de reintentar, y la espera se duplica con cada corte hasta 30 min; vuelve a 60 s tras 10 min cargando bien.
|
||||
- Con la celda (TMP102) a 45 °C o más no carga; vuelve bajo 40 °C. El NTC del paquete (R55) sigue como respaldo en el propio LTC4040.
|
||||
- Si tras 60 s permitido el LTC4040 no carga y el paquete está bajo 3.90 V, un pulso de 500 ms en `CHRG_EN` rearma su temporizador de seguridad (máximo uno cada 30 min).
|
||||
- **Consola**: `STAT … carga=FASE … pin= ltc= cortes=`; eventos `CHG_ON`, `CHG_SHED`, `CHG_OFF`, `CHG_HOT`, `CHG_COOL`, `CHG_PULSE` y `CHRG_ON` / `CHRG_IDLE`; tecla `C` = veto del operador.
|
||||
- **`$PHLG` sin cambios** (29 campos). `PHLG_FW` pasa a `0.6.0` (sin «-fm»: ya no es el «field-minimum» sin cargador). El campo 22 (`chg`) sigue siendo el `CHRG_STAT` real del LTC4040.
|
||||
- `-DENABLE_CHARGE=0` compila el comportamiento de 0.5.x (cargador siempre apagado).
|
||||
|
||||
### Qué salió mal
|
||||
|
||||
El corte por una sola muestra rápida bajo 4.90 V confundía las ráfagas del módem (milisegundos) con una fuente que no aguanta, y la espera crecía con cada corte. En unidades con la ruta de 5 V justa la batería casi no cargaba. Además el monitor solo veía `CHRG_STAT` en el instante de cada muestra de 30 s. Lo resuelve 0.6.1.
|
||||
|
||||
## 0.5.9: la base, sin ciclos de etapa en batería y sin cargador (27-sep)
|
||||
|
||||
### Por qué
|
||||
|
||||
Noche 26/27-sep con 0.5.8 (V5.5 en batería toda la noche): amaneció a 3.50 V con el F9P vivo y el módem oscuro, y al volver los 24 V el módem siguió oscuro hasta un reset (SW1 / P10) o `SW4G1`. En V5.5 / V4 el módem no arranca en frío sobre el boost del LTC4040. 0.5.8 tenía dos fallas: la recuperación de enlace seguía activa en batería y probablemente cicló la etapa esa noche, y al volver el 5 V no reseteaba si la etapa «venía de 24 V».
|
||||
|
||||
### Qué hace
|
||||
|
||||
- **Ningún ciclo de etapa en batería.** La recuperación de enlace (sin NMEA, RTK perdido) solo actúa con 5 V presente. Un ciclo en curso al perder el 5 V termina con la etapa apagada (`RECOVERY_ABORT`) y la etapa vuelve con el 5 V.
|
||||
- **Reset del MCU al volver el 5 V tras ≥ 10 s de respaldo, siempre.** Es lo mismo que pulsar P10. Un parpadeo de menos de 10 s no resetea.
|
||||
- **Sin ahorro en batería.** La etapa y el módem siguen encendidos y reportando igual que en 24 V (~10–13 h) hasta el corte de 3.40 V.
|
||||
- **Vigilancia del módem, solo diagnóstico.** V4 / V5 no tienen señal de estado del módem; el firmware lo infiere por las correcciones RTCM que llegan al F9P y por las caídas del riel que hacen sus ráfagas. `STAT` añade `rtcm_age= sta= rtcm_last= sag5= sagb= flat= modem=vivo|SOSPECHOSO|?`; eventos `MODEM_DARK`, `MODEM_BACK`, `MODEM_WATCH`. No actúa sobre el módem.
|
||||
- **Cargador apagado**, como en todas las 0.4.x–0.5.x. El paquete no se recarga en la unidad. Monitor: «cargador OFF (fw)».
|
||||
- `$PHLG` de 29 campos; `PHLG_FW` = `0.5.9-fm`.
|
||||
|
||||
### Si la unidad viene de 0.5.1–0.5.8
|
||||
|
||||
0.5.1 fue la última embarcada antes de 0.6.0. Al pasar a 0.6.1 también cambia esto:
|
||||
|
||||
- 0.5.1 podía ciclar la etapa en batería (recuperación de enlace activa) y dejar el módem oscuro hasta los 24 V más un reset. Desde 0.5.9 no pasa.
|
||||
- 0.5.2–0.5.7 apagaban la etapa entre ventanas de reporte cada 10 min en batería; 0.5.8 mandaba ráfagas cada 10 min. Retiradas: desde 0.5.9 el reporte en batería es continuo.
|
||||
- Desde 0.5.6, 5 s después de cada STACK ON (3 s hasta 0.5.7) el MCU pulsa el reset del módem por U13-P7. Hace falta el puente a `SW4G1`; sin él no hace nada.
|
||||
- Desde 0.5.7: tecla `R` (reset del MCU por software, igual que P10).
|
||||
|
||||
Detalle de cada versión anterior: [Descargas → versiones superadas](index.md#versiones-superadas).
|
||||
|
||||
## 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` (`-eth` en los builds de banco con Ethernet). 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.
|
||||
- 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 salió como arreglo del cargador y solo comprueba que el SC16IS752 responde.
|
||||
- V5.6: `RS1` 10 mΩ y `R50` 1.5 kΩ (~1.3 A de carga). Con eso el gobernador casi nunca tendrá que cortar.
|
||||
|
||||
## Historial de revisiones
|
||||
|
||||
| Versión | Fecha | Cambios |
|
||||
|---|---|---|
|
||||
| 1.0 | 2026-09-29 | Primera versión: 0.5.9, 0.6.0 y 0.6.1. |
|
||||
@ -14,7 +14,7 @@
|
||||
<script>
|
||||
const ethSi = v => String(v.eth_aplica || '').startsWith('Sí');
|
||||
const serSi = v => String(v.ser_aplica || '').startsWith('Sí');
|
||||
const fw061 = v => serSi(v) && String(v.ser_fw || '').startsWith('0.6.1');
|
||||
const fwLazo = v => serSi(v) && String(v.ser_fw || '').startsWith('Build con lazo');
|
||||
|
||||
Acta.render({
|
||||
tipo: 'prueba-ethernet-serie',
|
||||
@ -26,8 +26,8 @@ Acta.render({
|
||||
titulo: 'Acta: Ethernet y puertos serie',
|
||||
subtitulo: 'V5.5 / V5.6. Procedimiento: Taller → Ethernet y puertos serie.',
|
||||
textoOK: 'PRUEBA COMPLETA',
|
||||
intro: 'W5500 (J10) y SC16IS752 con RS-485 (P15) y RS-232 (P16). Ethernet solo con <code>0.6.0-eth</code>; eco serie solo con <code>0.6.1</code>. '
|
||||
+ '<b>Reglas:</b> nunca Ethernet en batería o solo por USB · 5 V ≥ 5.2 V · al terminar, de vuelta a <code>0.6.0</code> de campo. '
|
||||
intro: 'W5500 (J10) y SC16IS752 con RS-485 (P15) y RS-232 (P16). Ethernet solo con el build de banco <code>0.6.1-eth</code>; lazo y eco serie solo con un build posterior (0.6.1 no los trae). '
|
||||
+ '<b>Reglas:</b> nunca Ethernet en batería o solo por USB · 5 V ≥ 5.2 V · al terminar, de vuelta a <code>0.6.1</code> de campo. '
|
||||
+ 'Laptop en 192.168.7.1/24 con <code>nc -lk 5010</code>; consola HBOX (J11, 115200) grabando a archivo; teclas <code>s</code> STAT · <code>E</code> Ethernet on/off.',
|
||||
secciones: [
|
||||
|
||||
@ -36,7 +36,7 @@ Acta.render({
|
||||
{ tipo:'fecha', clave:'fecha', req:true, guardaEn:'fecha', txt:'Fecha' },
|
||||
{ tipo:'radio', clave:'tarjeta', req:true, guardaEn:'clasificacion', txt:'Tarjeta', opciones:['V5.5','V5.6'] },
|
||||
{ tipo:'texto', clave:'h00', rows:'1', txt:'Unidad en el monitor (H00xx)', ph:'H0012' },
|
||||
{ tipo:'texto', clave:'fw', rows:'1', req:true, txt:'Firmware (línea BOOT o banner)', ph:'hbox-v5-bringup 0.6.0-eth built …' },
|
||||
{ tipo:'texto', clave:'fw', rows:'1', req:true, txt:'Firmware (línea BOOT o banner)', ph:'hbox-v5-bringup 0.6.1-eth built …' },
|
||||
{ tipo:'radio', clave:'alim', req:true, txt:'Alimentación', opciones:['24 V al GX16 (SD-15B interno)','Fuente 5.3 V en P2 (sin batería)'] },
|
||||
{ tipo:'medida', clave:'v5', req:true, txt:'STAT v5, etapa ON', esperado:'5.2 – 5.4 V (ok)', u:'V' },
|
||||
{ tipo:'check', clave:'monitor', txt:'Monitor abierto con la unidad (para ver que el 4G no se afecta).' },
|
||||
@ -51,8 +51,8 @@ Acta.render({
|
||||
{ tipo:'radio', clave:'eth_ip_modo', si:ethSi, req:true, txt:'Dirección obtenida', opciones:['Estática 192.168.7.2 (sin DHCP en 4 s)','DHCP','Nunca llegó a «enlace ARRIBA»'] },
|
||||
{ tipo:'texto', clave:'eth_ip', si:ethSi, rows:'1', txt:'IP en STAT (eth=… ip=)', ph:'192.168.7.2' },
|
||||
{ tipo:'radio', clave:'eth_tcp', si:ethSi, req:true, txt:'Espejo TCP a 192.168.7.1:5010', opciones:['Conectó y nc recibe líneas','Conectó pero nc no muestra nada','Nunca conectó (eth=buscando_srv)'] },
|
||||
{ tipo:'check', clave:'eth_phid', si:ethSi, txt:'Primero <code>$PHID,…,0.6.0-eth,…</code> en <code>nc</code>, luego NMEA + <code>$PHLG</code>.' },
|
||||
{ tipo:'texto', clave:'eth_phid_txt', si:ethSi, rows:'1', txt:'Línea $PHID', ph:'$PHID,3A0021000E51313230383335,0.6.0-eth,EinarBoard v5 (HBOX v5),02:48:42:1F:2C:9B,42*5C' },
|
||||
{ tipo:'check', clave:'eth_phid', si:ethSi, txt:'Primero <code>$PHID,…,0.6.1-eth,…</code> en <code>nc</code>, luego NMEA + <code>$PHLG</code>.' },
|
||||
{ tipo:'texto', clave:'eth_phid_txt', si:ethSi, rows:'1', txt:'Línea $PHID', ph:'$PHID,3A0021000E51313230383335,0.6.1-eth,EinarBoard v5 (HBOX v5),02:48:42:1F:2C:9B,42*5C' },
|
||||
{ tipo:'texto', clave:'eth_stat', si:ethSi, rows:'2', txt:'STAT eth= a 5 min', ph:'eth=CONECTADO ip=192.168.7.2 lineas=612 bytes=48210 drop=0 conn=1' },
|
||||
{ tipo:'radio', clave:'eth_cable', si:ethSi, req:true, txt:'Cable fuera 10 s: reconecta en < 10 s', opciones:['Sí','No'] },
|
||||
{ tipo:'radio', clave:'eth_srv', si:ethSi, req:true, txt:'nc relanzado: reconecta solo', opciones:['Sí','No'] },
|
||||
@ -65,15 +65,15 @@ Acta.render({
|
||||
sub:'1 = A · 2 = B · 3 = GND. JP5 = terminación 120 Ω, cerrada solo si el HBOX es un extremo del bus.',
|
||||
items: [
|
||||
{ tipo:'radio', clave:'ser_aplica', req:true, txt:'Puertos serie probados', opciones:['Sí','No — el panel no lleva clemas serie','No — pendiente'] },
|
||||
{ tipo:'radio', clave:'ser_fw', si:serSi, req:true, txt:'Alcance según firmware', opciones:['0.6.0 / 0.6.0-eth: presencia + niveles','0.6.1: presencia + niveles + lazo + eco'] },
|
||||
{ tipo:'radio', clave:'ser_fw', si:serSi, req:true, txt:'Alcance según firmware', opciones:['0.6.0 / 0.6.1 (y sus -eth): presencia + niveles','Build con lazo serie: presencia + niveles + lazo + eco'] },
|
||||
{ tipo:'check', clave:'ser_post', si:serSi, req:true, txt:'POST: <code>[PASS] SC16IS752 0x4D ACK, SPR rd=0xA5</code>.' },
|
||||
{ tipo:'radio', clave:'jp5', si:serSi, req:true, txt:'JP5 durante la prueba', opciones:['Abierto (de fábrica)','Cerrado (120 Ω)'] },
|
||||
{ tipo:'medida', clave:'r485_ohm', si:serSi, txt:'A–B en ohms, tarjeta apagada', esperado:'≈ 120 Ω con JP5 cerrado · > 10 kΩ abierto', u:'Ω' },
|
||||
{ tipo:'medida', clave:'r485_a', si:serSi, txt:'A (P15.1) a GND, sin nada conectado', esperado:'1 – 3 V', u:'V' },
|
||||
{ tipo:'medida', clave:'r485_b', si:serSi, txt:'B (P15.2) a GND', esperado:'1 – 3 V', u:'V' },
|
||||
{ tipo:'radio', clave:'r485_tx', si:fw061, txt:'Eco RS-485 9600 8N1 — TX', opciones:['OK 10/10','Parcial (caracteres perdidos)','Nada'] },
|
||||
{ tipo:'radio', clave:'r485_rx', si:fw061, txt:'Eco RS-485 — RX', opciones:['OK','Nada'] },
|
||||
{ tipo:'radio', clave:'r485_swap', si:fw061, txt:'A y B intercambiados', opciones:['No','Sí (adaptador con D+/D− al revés)'] },
|
||||
{ tipo:'radio', clave:'r485_tx', si:fwLazo, txt:'Eco RS-485 9600 8N1 — TX', opciones:['OK 10/10','Parcial (caracteres perdidos)','Nada'] },
|
||||
{ tipo:'radio', clave:'r485_rx', si:fwLazo, txt:'Eco RS-485 — RX', opciones:['OK','Nada'] },
|
||||
{ tipo:'radio', clave:'r485_swap', si:fwLazo, txt:'A y B intercambiados', opciones:['No','Sí (adaptador con D+/D− al revés)'] },
|
||||
] },
|
||||
|
||||
{ titulo: 'C · RS-232 (P16)',
|
||||
@ -81,8 +81,8 @@ Acta.render({
|
||||
items: [
|
||||
{ tipo:'medida', clave:'r232_tx_v', si:serSi, req:true, txt:'TX (P16.1) a GND en reposo', esperado:'−5 a −6.5 V', u:'V',
|
||||
aviso:'≈ 0 V = MAX3232 sin alimentación o bomba de carga muerta · ≈ +5 V = U10 en reset (T1IN bajo).' },
|
||||
{ tipo:'radio', clave:'r232_tx', si:fw061, txt:'Eco RS-232 9600 8N1 — TX', opciones:['OK 10/10','Parcial','Nada'] },
|
||||
{ tipo:'radio', clave:'r232_rx', si:fw061, txt:'Eco RS-232 — RX', opciones:['OK','Nada'] },
|
||||
{ tipo:'radio', clave:'r232_tx', si:fwLazo, txt:'Eco RS-232 9600 8N1 — TX', opciones:['OK 10/10','Parcial','Nada'] },
|
||||
{ tipo:'radio', clave:'r232_rx', si:fwLazo, txt:'Eco RS-232 — RX', opciones:['OK','Nada'] },
|
||||
{ tipo:'texto', clave:'ser_nota', si:serSi, rows:'2', txt:'Adaptadores (marca / chip) y velocidad', ph:'USB-RS485 CH340 con terminación interna ON · USB-RS232 FTDI · 9600 8N1' },
|
||||
] },
|
||||
|
||||
@ -90,9 +90,9 @@ Acta.render({
|
||||
items: [
|
||||
{ tipo:'archivo', clave:'log', req:true, etiqueta:'eth-serie-consola', txt:'Log completo de consola' },
|
||||
{ tipo:'foto', clave:'f_banco', etiqueta:'banco', txt:'Banco: J10, clemas y JP5.' },
|
||||
{ tipo:'check', clave:'reflash', txt:'De vuelta a <code>hbox-v5-bringup_0.6.0.bin</code>, anotado en el acta de reflasheo.' },
|
||||
{ tipo:'check', clave:'reflash', txt:'De vuelta a <code>hbox-v5-bringup_0.6.1.bin</code>, anotado en el acta de reflasheo.' },
|
||||
{ tipo:'radio', clave:'accion', req:true, guardaEn:'accion', txt:'Resultado',
|
||||
opciones:['APROBADA — Ethernet y serie OK','APROBADA — solo Ethernet (serie no aplica / pendiente 0.6.1)','APROBADA — solo serie','FALLA Ethernet','FALLA serie','FALLA ambos'] },
|
||||
opciones:['APROBADA — Ethernet y serie OK','APROBADA — solo Ethernet (serie no aplica / pendiente build con lazo)','APROBADA — solo serie','FALLA Ethernet','FALLA serie','FALLA ambos'] },
|
||||
{ tipo:'texto', clave:'observaciones', rows:'4', txt:'Observaciones', ph:'síntoma, punto del árbol de fallas, valores fuera de rango' },
|
||||
] },
|
||||
]
|
||||
|
||||
@ -48,11 +48,11 @@ Acta.render({
|
||||
tecnicoDesdeUsuario: true,
|
||||
nombres: { alan: 'Alán Basurto', daniel: 'Daniel Martínez', leo: 'Leo Rodríguez', jesus: 'Jesús' },
|
||||
etiquetaSerie: 'Tarjeta V4',
|
||||
titulo: 'Acta de prueba — EinarBoard V4 con firmware 0.6.0',
|
||||
titulo: 'Acta de prueba — EinarBoard V4 con firmware 0.6.1',
|
||||
subtitulo: 'Un acta por tarjeta (V4-01 … V4-15) · ~1 h',
|
||||
textoOK: 'APROBADA',
|
||||
intro: 'Llénala mientras avanzas por el procedimiento '
|
||||
+ '<a href="../procedimientos/v4-prueba-fw-0.5.6/">V4 — preparación y prueba con 0.6.0</a>. '
|
||||
+ '<a href="../procedimientos/v4-prueba-fw-0.5.6/">V4 — preparación y prueba con 0.6.1</a>. '
|
||||
+ 'Graba la consola desde el primer minuto; al final se sube completa. '
|
||||
+ 'Si una etapa no pasa, marca «me detengo»: lo que sigue se oculta, llenas el Cierre y envías como <b>FALLA</b>. '
|
||||
+ 'Sin número de serie: el siguiente V4 libre del <a href="../tablero.html">tablero</a>. La serie PRUEBA sirve para practicar.',
|
||||
@ -123,23 +123,23 @@ Acta.render({
|
||||
opciones:['Completa — sigo al flasheo', PASO_NO] },
|
||||
] },
|
||||
|
||||
{ titulo: '4 · Flasheo de 0.6.0', si: prepOK,
|
||||
{ titulo: '4 · Flasheo de 0.6.1', si: prepOK,
|
||||
sub: 'Sin 24 V, batería desconectada, cable normal en la Blackpill. '
|
||||
+ 'DFU: mantén BOOT0, pulsa y suelta NRST, suelta BOOT0 → STM32 BOOTLOADER (0483:DF11). '
|
||||
+ '<code>dfu-util -a 0 -s 0x08000000:leave -D hbox-tarjetaV4_0.6.0.bin</code>',
|
||||
+ '<code>dfu-util -a 0 -s 0x08000000:leave -D hbox-tarjetaV4_0.6.1.bin</code>',
|
||||
items: [
|
||||
{ tipo:'check', clave:'s3_00_sha', req:true,
|
||||
txt:'<code>hbox-tarjetaV4_0.6.0.bin</code> de Descargas (no el de V5); SHA-256 empieza con <code>1458470b</code> y termina con <code>ba77b2e3</code>.' },
|
||||
txt:'<code>hbox-tarjetaV4_0.6.1.bin</code> de Descargas (no el de V5); SHA-256 empieza con <code>ef43a901</code> y termina con <code>36840757</code>.' },
|
||||
{ tipo:'radio', clave:'s3_01_dfu', req:true, txt:'Dónde se flasheó',
|
||||
opciones:['En la tarjeta','Fuera del zócalo (en la tarjeta no apareció STM32 BOOTLOADER)','No logré flashear'] },
|
||||
{ tipo:'check', clave:'s3_02_orient', req:true, si: v => empieza(v, 's3_01_dfu', 'Fuera'),
|
||||
txt:'Reinsertada sin energía: USB-C del lado de E-CSn; B12 en E-CSn y R en NRST.' },
|
||||
{ tipo:'texto', clave:'s3_03_fw', rows:'1', req:true, si: flasheada, txt:'Firmware (línea BOOT o banner)',
|
||||
ph:'hbox-v5-bringup 0.6.0 built …' },
|
||||
ph:'hbox-v5-bringup 0.6.1 built …' },
|
||||
{ tipo:'check', clave:'s3_04_board', req:true, si: flasheada,
|
||||
txt:'Segunda línea: <code>board=EinarBoard v4 (HBOX v4)</code> (si dice v5, binario equivocado: reflashea).' },
|
||||
{ tipo:'radio', clave:'s3_05_tests', req:true, si: flasheada,
|
||||
txt:'Final de los tests de arranque (r los repite; t imprime <code>$PHLG,0.6.0,</code>)',
|
||||
txt:'Final de los tests de arranque (r los repite; t imprime <code>$PHLG,0.6.1,</code>)',
|
||||
opciones:['>>> BOARD OK','>>> BOARD CHECK FAILED'] },
|
||||
{ tipo:'texto', clave:'s3_06_fails', rows:'3', req:true, si: v => flasheada(v) && v.s3_05_tests === '>>> BOARD CHECK FAILED',
|
||||
txt:'Líneas [FAIL] completas', ph:'[FAIL] …' },
|
||||
@ -169,7 +169,7 @@ Acta.render({
|
||||
{ tipo:'radio', clave:'s4_04_modem', req:true,
|
||||
txt:'Módem registrado y UART del simpleRTK2B en parpadeo rápido',
|
||||
opciones:['Sí','No'] },
|
||||
{ tipo:'radio', clave:'s4_05_monitor', req:true, txt:'Monitor: unidad con 0.6.0 y ⚡',
|
||||
{ tipo:'radio', clave:'s4_05_monitor', req:true, txt:'Monitor: unidad con 0.6.1 y ⚡',
|
||||
opciones:['Sí','No'] },
|
||||
{ tipo:'check', clave:'s4_06_sin_usb', req:true,
|
||||
txt:'Todo con el cable sin 5 V y sin USB en el simpleRTK2B ni en J9.' },
|
||||
|
||||
@ -12,7 +12,7 @@ Estado, firmware y cómo reconocer cada tarjeta: [Manuales por tarjeta](../manua
|
||||
| <span class="badge-v4">V4</span> | [Manual](../manuales/manual-tarjeta-V4.md) · [Preparación y prueba](../procedimientos/v4-prueba-fw-0.5.6.md) |
|
||||
| <span class="badge-v55">V5.5</span> | [Manual V5](../manuales/manual-tarjeta-V5.md) |
|
||||
| <span class="badge-v56">V5.6</span> | [Manual V5 §9](../manuales/manual-tarjeta-V5.md) · [Hoja de datos](v56-datasheet.md) · [Pinout](v56-pinout.md) · [Layout](v56-layout-instrucciones.md) · [ECO](v56-eco.md) · [Cambios al esquemático](v56-cambios-esquematico.md) |
|
||||
| <span class="badge-v6">v6</span> | [Manual](../manuales/manual-tarjeta-v6.md) · [Auditoría completa](v6-auditoria-completa.md) · [Cambios al esquemático](v6-cambios-esquematico.md) · [Revisión vs. lecciones V5.5](v6-revision-lecciones-v55.md) · [Mapa de pines](v6-pinmap.md) · [Auditoría pre-fab](v6-auditoria-prefab.md) ([inglés](v6-prefab-audit.md)) · [Plan de cobre](EinarBoard-v6_Plan-de-Cobre_ES.html) ([inglés](EinarBoard-v6_Copper-Plan_EN.html)) |
|
||||
| <span class="badge-v6">v6</span> | [Manual](../manuales/manual-tarjeta-v6.md) · [**Próximos pasos para ordenar**](v6-proximos-pasos.md) · [Plan de corrección y estado](v6-plan-correccion.md) · [Cambios — resumen de 3 pasadas](v6-cambios-resumen.md) · [Auditoría completa](v6-auditoria-completa.md) · [Cambios al esquemático](v6-cambios-esquematico.md) · [Revisión vs. lecciones V5.5](v6-revision-lecciones-v55.md) · [Mapa de pines](v6-pinmap.md) · [Auditoría pre-fab](v6-auditoria-prefab.md) ([inglés](v6-prefab-audit.md)) · [Plan de cobre](EinarBoard-v6_Plan-de-Cobre_ES.html) ([inglés](EinarBoard-v6_Copper-Plan_EN.html)) |
|
||||
|
||||
## Por necesidad
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
title: "EinarBoard V5.6 (HBOX V5) — Hoja de datos de ingeniería"
|
||||
project: Project Drogheda
|
||||
date: 2026-09-29
|
||||
version: "1.0"
|
||||
version: "1.1"
|
||||
status: BORRADOR para revisión de ingeniería — V5.6 con ECO aplicada en esquemático; PCB pendiente de *Update PCB*
|
||||
tags: [project-drogheda, hardware, einarboard, v5.6, datasheet, hbox]
|
||||
author: Helgen Technologies
|
||||
@ -33,7 +33,7 @@ V5.6 = V5.5 (15 pzas, JLC 22-ago-2026) + ECO 27/28-sep: riel del módem en `SYS5
|
||||
| Proyecto KiCad | `03-Architecture-Hardware/kicad/hbox-watchdog-v5.*` (V5.5 y V5.6 comparten proyecto; V5.6 = ECO aplicada al esquemático el 28-sep; PCB pendiente de *Update PCB from Schematic*; etiqueta git `v5.5-as-fabbed` guarda el estado del lote anterior) | Informe de cambios §9 |
|
||||
| MCU | U16 **STM32F411RET6** LQFP-64 soldado (ya no hay Blackpill en zócalo) · HSE Y3 25 MHz · LSE Y4 32.768 kHz · SYSCLK 96 MHz, USB 48 MHz | `board_v5.h`, `.ino` |
|
||||
| Módulos en zócalo | **MOD1** simpleRTK2B (u-blox ZED-F9P, formato UNO) · **J7/J8** 4G NTRIP Master (formato XBee, paso 2.00 mm) | netlist |
|
||||
| Firmware | `hbox_v5_bringup` **0.6.0** (`hbox-v5-bringup_0.6.0.bin`), consola USB CDC en J11 | `README.md` |
|
||||
| Firmware | `hbox_v5_bringup` **0.6.1** (`hbox-v5-bringup_0.6.1.bin`), consola USB CDC en J11. Umbrales de batería de Li-ion (flotación 4.00 V, corte 3.40 V, LEDs, monitor): con el paquete LFP-HT hace falta un build propio con flotación 3.50 V y esos umbrales recalculados (0.7.0 en la ECO, §H) | `README.md` |
|
||||
| Lote V5.5 | 15 pzas, JLCPCB 22-ago-2026 | FACTS / procedimiento v5 |
|
||||
| Lote V5.6 | Por pedir (semana del 29-sep-2026); BOM 94 LCSC comprobados para 30 tarjetas | Informe §10 |
|
||||
| Componentes / nets | 252 componentes · 237 nets en la netlist V5.6 | netlist |
|
||||
@ -255,13 +255,13 @@ Pinout completo pin a pin (generado de la netlist): [Pinout de arneses y conecto
|
||||
| USB J11 / J9 | 5 V | — | 5.5 V; ESD PESD5V0S1BA (J11) / USBLC6-2SC6 (J9) | netlist |
|
||||
| Bus RS-485 | — | — | Terminación 120 Ω opcional (JP5); SP3485 ±7 V modo común (datasheet) | netlist |
|
||||
|
||||
## 9. Interfaz de firmware (`hbox_v5_bringup` 0.6.0)
|
||||
## 9. Interfaz de firmware (`hbox_v5_bringup` 0.6.1)
|
||||
|
||||
| Ítem | Valor |
|
||||
|---|---|
|
||||
| Consola | USB CDC en **J11**, 115200 (el baud no importa en CDC), líneas CR+LF. Primera línea: `hbox_v5_bringup 0.6.0 built …`, luego `board=EinarBoard v5 (HBOX v5)` |
|
||||
| Compilación | `arduino-cli` STM32duino 3.x, FQBN `GenF4:pnum=GENERIC_F411RETX,usb=CDCgen,xserial=generic,rtlib=nanofp`, `-DHSE_VALUE=25000000UL`; variante Ethernet de banco `-DENABLE_ETH=1` (0.6.0-eth); `-DENABLE_CHARGE=0` = cargador siempre OFF (0.5.x) |
|
||||
| Flasheo | DFU por J11: SW2 pulsado → SW1 pulsar/soltar → soltar SW2 → `dfu-util -a 0 -s 0x08000000:leave -D hbox-v5-bringup_0.6.0.bin` (o STM32CubeProgrammer, USB, `0x08000000`) |
|
||||
| Consola | USB CDC en **J11**, 115200 (el baud no importa en CDC), líneas CR+LF. Primera línea: `hbox-v5-bringup 0.6.1 built …`, luego `board=EinarBoard v5 (HBOX v5)` |
|
||||
| Compilación | `arduino-cli` STM32duino 3.x, FQBN `GenF4:pnum=GENERIC_F411RETX,usb=CDCgen,xserial=generic,rtlib=nanofp`, `-DHSE_VALUE=25000000UL`; variante Ethernet de banco `-DENABLE_ETH=1` (0.6.1-eth); `-DENABLE_CHARGE=0` = cargador siempre OFF (0.5.x) |
|
||||
| Flasheo | DFU por J11: SW2 pulsado → SW1 pulsar/soltar → soltar SW2 → `dfu-util -a 0 -s 0x08000000:leave -D hbox-v5-bringup_0.6.1.bin` (o STM32CubeProgrammer, USB, `0x08000000`) |
|
||||
| Modo por defecto | **AUTO** (flash byte `0x5A` = MANUAL): la etapa se enciende sola 3 s después de haber 5 V en P2; respaldo continuo en batería; reset del MCU al volver el 5 V tras ≥ 10 s de respaldo |
|
||||
| Watchdog | IWDG 16 s |
|
||||
|
||||
@ -287,16 +287,16 @@ Pinout completo pin a pin (generado de la netlist): [Pinout de arneses y conecto
|
||||
| `LSE_Y4` | LSERDY = 1 (Y4 32.768 kHz) |
|
||||
| `I2C` ×4 | ACK de PCF8574 0x20, SHT40 0x44, TMP102 0x48, SC16IS752 0x4D (+ escaneo 0x08–0x77) <!-- VERIFICAR: 0.6.0 no incluye U18 0x49 en la lista; añadir en 0.6.x --> |
|
||||
| `TMP102` / `SHT40` | Lectura entre −20 y +85 °C |
|
||||
| `SC16IS752` | Registro *scratchpad* lee lo escrito (sin *loopback* de canal todavía; previsto 0.6.1) |
|
||||
| `SC16IS752` | Registro *scratchpad* lee lo escrito (sin *loopback* de canal todavía; previsto en un build posterior, no en 0.6.1) |
|
||||
| `GAUGE_WALK` | Visual: DB1→DB4 y luego R, G, B |
|
||||
| `ADC` / `DIN` | Informativos: `vbat v5 ntc mcu` y `ign chrg fault ser_irq eth_int` |
|
||||
| Resultado | `---- RESULT: n PASS / m FAIL ----` → `>>> BOARD OK` o `>>> BOARD CHECK FAILED` |
|
||||
|
||||
### 9.3 Línea `STAT` (cada 5 s)
|
||||
|
||||
`STAT up= vbat= v5=(ok|BAJO|no) ign= chrg= flt= tntc= tbat= tair= rh= tmcu= i2cerr= stack= modo= fan= rec= [LIMP] [backup=] [duty=…] carga=FASE [+CALIENTE][+OP] pin= ltc= cortes= modoB= relay= phlg_aire= v5min= vbatmin= bkp= mrst= [eth=… ip= lineas= bytes= drop= conn=] [t_on= nmea= bad= gga= sats= hdop= age= rtcm_age= sta= rtcm_last= sag5= sagb= flat= modem=]`
|
||||
`STAT up= vbat= v5=(ok|BAJO|no) ign= chrg= flt= tntc= tbat= tair= rh= tmcu= i2cerr= stack= modo= fan= rec= [LIMP] [backup=] [duty=…] carga=FASE [+CALIENTE][+OP] pin= ltc= cortes=n(duro/sost) media= duty= cargado= [caida=] vdda= modoB= relay= phlg_aire= v5min= vbatmin= bkp= mrst= [eth=… ip= lineas= bytes= drop= conn=] [t_on= nmea= bad= gga= sats= hdop= age= rtcm_age= sta= rtcm_last= sag5= sagb= flat= modem=]`
|
||||
|
||||
Fases del gobernador de carga (`carga=`): `HOLDOFF` (< 120 s tras boot/STACK ON) · `NOTRUN` · `BATT` · `WAIT` (riel 4.90–5.05 V) · `PROVING n/30s` · `ON` · `SHED` · `COOLDOWN faltan s`. Umbrales: arranque ≥ 5.05 V estable 30 s, corte < 4.90 V (muestra rápida), enfriamiento 60 s → 30 min, celda ≥ 45 °C inhibe.
|
||||
Fases del gobernador de carga (`carga=`, 0.6.1): `HOLDOFF` (< 120 s tras boot/STACK ON) · `NOTRUN` · `PWRCYC` · `BATT` · `WAIT` (riel bajo 5.05 V, o espera tras una caída sin corriente de carga) · `PROVING n/30s` · `ON` · `SHED` (3 s mientras se clasifica un corte) · `COOLDOWN faltan s` (tras un corte contado). Umbrales: arranque con la media de 200 ms ≥ 5.05 V durante 30 s; corte DURO con una muestra rápida < 4.70 V, SOSTENIDO con la media de 200 ms < 4.90 V durante 1 s o < 4.85 V; enfriamiento 60 s → 30 min (se duplica por corte contado); celda ≥ 45 °C inhibe. PFI real 4.40 V. Detalle: [notas de versión](../descargas/notas-de-version.md).
|
||||
|
||||
### 9.4 Trama `$PHLG` (cada 10 s en consola, cada 30 s en banda; checksum XOR)
|
||||
|
||||
@ -342,5 +342,6 @@ Fuente: Informe de cambios §1 (tabla antes → después), §2–§3 (partes y p
|
||||
| Versión | Fecha | Cambios |
|
||||
|---|---|---|
|
||||
| 1.0 | 2026-09-29 | Primera versión (V5.6 con ECO en esquemático; PCB pendiente) |
|
||||
| 1.1 | 2026-09-29 | Firmware 0.6.1: consola, `STAT`, fases y umbrales del gobernador de carga; el lazo serie no está en 0.6.1; con paquete LFP-HT hace falta otro build (flotación 3.50 V y umbrales de batería de LFP). |
|
||||
|
||||
Ver también: [manual V5](../manuales/manual-tarjeta-V5.md) · [pinout V5.6](v56-pinout.md) · [informe de cambios](v56-cambios-esquematico.md) · [ECO](v56-eco.md) · [instrucciones de layout](v56-layout-instrucciones.md).
|
||||
|
||||
@ -11,6 +11,12 @@ author: Helgen Technologies
|
||||
!!! warning "EinarBoard v6 (`hbox-watchdog-v6`): en diseño, no se pide"
|
||||
Diseño nuevo con ZED-F9P y módem A7670SA soldados a bordo. **No es la V5.6** que se manda a fabricar esta semana (`hbox-watchdog-v5`, zócalos para simpleRTK2B y 4G NTRIP Master). Los hallazgos marcados «Impacto en V5.6» ya se aplicaron a la V5.6 y están en su informe de cambios.
|
||||
|
||||
!!! info "Estado al 28-sep (noche)"
|
||||
Las correcciones de esquemático de esta auditoría **ya están aplicadas y verificadas** de forma independiente
|
||||
(esquemático final `d58a89ba…`, ERC 0 errores; incluye los estrapes del paquete LFP-HT, igual que V5.6); falta el layout. Estado por hallazgo, decisiones y lista de trabajo:
|
||||
[Plan de corrección y estado](v6-plan-correccion.md) · qué cambió en cada pasada:
|
||||
[Cambios de esquemático — resumen de 3 pasadas](v6-cambios-resumen.md).
|
||||
|
||||
Responsable: Leo (Helgen Technologies) · Fecha: 2026-09-28 · Versión: 1.0 · Autor: Helgen Technologies (elaborado con asistencia de Claude) · Alcance: auditoría de solo lectura de `03-Architecture-Hardware/kicad/hbox-watchdog-v6.*`; no se modificó ningún archivo de KiCad · Brief: `2026-09-28_Drogheda_EinarBoard-v6_Full-Audit_Agent-Brief_v1.0.md` · Documento compañero: [Pin map MCU v6](v6-pinmap.md) · Lo que se aplicó de esta auditoría: [Informe de cambios al esquemático v6](v6-cambios-esquematico.md)
|
||||
|
||||
**Snapshot del diseño (KiCad 10.0.4, versión de archivo de tarjeta 20260206).** Tarjeta: 4 capas, 140.0 × 100.0 mm, 312 huellas, 1999 segmentos de pista, 210 vías, 205/205 nets multi-pad ruteadas. Esquemático: una hoja plana, 328 símbolos en la netlist. Hashes de los archivos en el anexo de trazabilidad.
|
||||
|
||||
@ -14,6 +14,10 @@ audience: Michelle (layout), Leo
|
||||
!!! warning "EinarBoard v6 (`hbox-watchdog-v6`): en diseño, no se pide"
|
||||
Diseño nuevo con ZED-F9P y módem A7670SA soldados a bordo. **No es la V5.6** que se manda a fabricar esta semana (`hbox-watchdog-v5`, zócalos para simpleRTK2B y 4G NTRIP Master). Los hallazgos marcados «Impacto en V5.6» ya se aplicaron a la V5.6 y están en su informe de cambios.
|
||||
|
||||
!!! warning "Sustituida por la auditoría del 28-sep"
|
||||
Esta auditoría del 25-sep queda como **histórico**. La sustituyen la [auditoría completa del 28-sep](v6-auditoria-completa.md)
|
||||
y su [plan de corrección y estado](v6-plan-correccion.md).
|
||||
|
||||
Tarjeta: `hbox-watchdog-v6` (repo HBox_PCB) · Pedido previsto: 5 prototipos en JLCPCB
|
||||
(PCB + ensamble) · Fecha: 25-sep-2026 · [English version](v6-prefab-audit.md)
|
||||
|
||||
|
||||
@ -11,6 +11,11 @@ author: Helgen Technologies
|
||||
!!! warning "EinarBoard v6 (`hbox-watchdog-v6`): en diseño, no se pide"
|
||||
Diseño nuevo con ZED-F9P y módem A7670SA soldados a bordo. **No es la V5.6** que se manda a fabricar esta semana (`hbox-watchdog-v5`, zócalos para simpleRTK2B y 4G NTRIP Master). Los hallazgos marcados «Impacto en V5.6» ya se aplicaron a la V5.6 y están en su informe de cambios.
|
||||
|
||||
!!! info "Este informe cubre solo la pasada 1"
|
||||
Este informe cubre la **pasada 1** (correcciones de la auditoría). La **pasada 2** (puertos y sin nueva versión) y la
|
||||
**pasada 3** (revisión final independiente), con el esquemático final `d58a89ba…` (tras la pasada 4: estrapes LFP-HT), están en
|
||||
[Cambios de esquemático — resumen de 3 pasadas](v6-cambios-resumen.md).
|
||||
|
||||
Fecha: 2026-09-28 · Proyecto: `kicad/hbox-watchdog-v6.*`, editado en su lugar (D17) · Implementa: [Auditoría completa v6](v6-auditoria-completa.md) §7.1 (Bloqueantes), §7.2 (Mayores), §7.3 Menores según D19, y las reglas de proyecto F-01 / D18 · Decisiones: `DECISIONS.md` D1–D19 (tomadas por delegación de Leo) · Autor: Helgen Technologies (elaborado con asistencia de Claude; ediciones por script sobre el texto S-expression con guarda de UUID; KiCad MCP solo para netlist, ERC, PDF, BOM, DRC y consultas de librería) · Estado: esquemático, reglas de proyecto y librería listos; **`hbox-watchdog-v6.kicad_pcb` no se tocó** (Michelle ejecuta *Update PCB from Schematic*, §10).
|
||||
|
||||
Traducido del original en inglés (28-sep-2026).
|
||||
|
||||
332
docs/hardware/v6-cambios-resumen.md
Normal file
332
docs/hardware/v6-cambios-resumen.md
Normal file
@ -0,0 +1,332 @@
|
||||
---
|
||||
title: "EinarBoard v6 — Cambios de esquemático: resumen de las 3 pasadas"
|
||||
tags: [project-drogheda, hardware, hbox, v6, esquematico, cambios, verificacion]
|
||||
project: Project Drogheda
|
||||
author: Helgen Technologies
|
||||
date: 2026-09-28
|
||||
version: 1.0
|
||||
status: FINAL — esquemático terminado y verificado; falta el layout (Michelle)
|
||||
audience: Michelle (layout), Leo, ingenieros
|
||||
---
|
||||
|
||||
# EinarBoard v6 — Cambios de esquemático: resumen de las 3 pasadas
|
||||
|
||||
!!! warning "EinarBoard v6 (`hbox-watchdog-v6`): en diseño, no se pide"
|
||||
Diseño nuevo con ZED-F9P y módem A7670SA soldados a bordo. **No es la V5.6** que se manda a fabricar esta semana (`hbox-watchdog-v5`, zócalos para simpleRTK2B y 4G NTRIP Master). Los hallazgos marcados «Impacto en V5.6» ya se aplicaron a la V5.6 y están en su informe de cambios.
|
||||
|
||||
**Tarjeta:** `hbox-watchdog-v6` (repo **HBox_PCB**) · **Fecha:** 28-sep-2026 ·
|
||||
[Plan de corrección y estado](v6-plan-correccion.md) · [Auditoría completa (español)](v6-auditoria-completa.md) ·
|
||||
[original en inglés](v6-full-audit.md)
|
||||
|
||||
!!! success "Esquemático terminado y verificado de forma independiente"
|
||||
- **Esquemático final:** `d58a89ba5a5ac46419edf9d68672a8208d825a16387298d0167e21399cd41e7b`
|
||||
- **ERC: 0 errores.** Hay 135 avisos cosméticos, todos explicados (antes eran 166).
|
||||
- **299 piezas montadas**, todas con número LCSC. TP1–TP12 y JP1–JP6 no van en el BOM ni en el CPL.
|
||||
- **El PCB no se tocó** (`6ddec80d…36bf`). Michelle hace *Actualizar PCB desde esquemático*: es el paso 0 de su
|
||||
[lista de trabajo](v6-plan-correccion.md#5-lista-de-trabajo-de-michelle-layout).
|
||||
|
||||
## 1. Resumen: tres pasadas
|
||||
|
||||
Todo se editó **en el mismo archivo** (`hbox-watchdog-v6.*`), con copia de respaldo antes de cada paso. El método fue el
|
||||
mismo en las tres pasadas:
|
||||
|
||||
- Antes de guardar se escribe la lista de cambios esperados.
|
||||
- Se edita con cortes acotados al nodo del archivo, con una guarda que impide que cambie o desaparezca un UUID existente.
|
||||
- Se exporta el netlist y se compara contra lo esperado. **En todos los grupos lo esperado coincidió exactamente con lo obtenido.**
|
||||
|
||||
| Pasada | Qué hizo | Resultado | Verificación | Esquemático (sha256) |
|
||||
|---|---|---|---|---|
|
||||
| **1 · Correcciones de la auditoría** | Todos los Blockers y Majors que tocan esquemático o proyecto, los Minors de la lista D19, las netclasses y reglas DRC (F-01) y la librería (H-04). 37 piezas nuevas, 3 quitadas (D20, D21 y el flag PF15), 17 puestas en DNP | Netlist: 37 agregadas / 3 quitadas / 125 cambios de campo / 22 cambios pin-red / 16 cambios de clase, todo esperado. ERC 0 errores (166 → 134 avisos) | Verificación independiente con scripts propios: **126 ítems, 173 PASS / 0 FAIL**, 15 notas | `ecee9fed…` → `d54e330d…` |
|
||||
| **2 · Puertos y sin nueva versión** | Revisó 24 puertos de punta a punta contra hojas de datos y corrigió 7 (RS-485, RS-232, H4, CTS del SC16IS752, LEDs y Bob-Smith de J10, pad de descarga del módem, UART del módem). **H-03** hecho (huella MWSA0804S) y **B-13** hecho (K1 fuera, R148) | Netlist: 8 agregadas / 0 quitadas / 41 campos / 8 pin-red / 0 clases, todo esperado. ERC 0 errores (134) | Revisada por la pasada 3: **26 PASS / 1 FAIL** (la huella de los inductores) | `d54e330d…` → `f73f41a8…` |
|
||||
| **3 · Revisión final independiente** | Revisó la pasada 2 con su propio diff y las hojas de datos de los fabricantes. **Corrigió la huella MWSA0804S** (se habían intercambiado dos cotas de Sunlord), **agregó C176** en U28 (N2) y **confirmó los pads de Y3** con la hoja de SCTF (N1, sin cambio) | Netlist: C176 agregado, nada más. ERC 0 errores (134). Conectividad derivada del esquemático = netlist de KiCad (353 redes, 0 diferencias) | — | `f73f41a8…` → **`2b394ef9…`** |
|
||||
| **4 · Paquete LFP-HT (igual que V5.6)** | JP2 → `Drogheda:SolderJumper-3_P1.3mm_Bridged23_RoundedPad1.0x1.5mm` (F2 a GND) y R55 10 k → **5.6 k (C23189)**; JP3/JP4 ya coincidían con V5.6 (F1 = 0, F0 = 1). Layout: L-67. | Flotación **3.50 V** LFP (antes 4.00 V Li-ion); ventana de carga ≈ +8…+60 °C con NTC B3380. | Netlist: 0 cambios de pin o de red; lo esperado = lo obtenido. ERC 0 errores (135 avisos). | `d58a89ba…e7b` |
|
||||
|
||||
**Total contra la auditoría:** **46 piezas nuevas**, 3 quitadas, 22 puestas en DNP (17 por A-01, 5 por B-13; además
|
||||
R145/R146 entran nuevas como DNP). La polaridad del USB_BOOT del módem quedó como aviso: los documentos de SIMCom se
|
||||
contradicen, así que hay un procedimiento alterno en banco (TP8–GND).
|
||||
|
||||
??? note "Hashes y archivos"
|
||||
| Archivo | Estado final (sha256) |
|
||||
|---|---|
|
||||
| `hbox-watchdog-v6.kicad_sch` | `d58a89ba5a5ac46419edf9d68672a8208d825a16387298d0167e21399cd41e7b` |
|
||||
| `hbox-watchdog-v6.kicad_pro` | `d577aa43076f5f751c291041dbf3054cb93a87facfe9f339ef91b60e073bd6ce` (pasada 1; netclasses) |
|
||||
| `hbox-watchdog-v6.kicad_dru` | `31ce0f4f23e8178b4b5e837b452e7bb8647d446ffd420559049eaaae78100831` (pasada 1) |
|
||||
| `Drogheda-v6.pretty/SO-8_L4.9-W3.9-P1.27-LS6.0-BL-EP.kicad_mod` | `3f38f26e435c477a7701636d4d5e1c05b4c7bd523e8dd04f9f57128657736313` (H-04) |
|
||||
| `Drogheda-v6.pretty/IND-SMD_MWSA0804S.kicad_mod` (nueva) | `74528135d4f69617df8570da58700bac3920827a78ec9104c3440be2c5975638` (land corregido) |
|
||||
| `hbox-watchdog-v6.kicad_pcb` | `6ddec80d1c15f79e69dff6c1a850b28345a5d826389f79cee8c61998240b36bf` (**sin tocar**) |
|
||||
| PDF `03-Architecture-Hardware/hbox-watchdog-v6-schematic.pdf` | `3e073181…4362` |
|
||||
|
||||
Respaldos en la Mac: `kicad/_to_delete/v6-apply-20260928/`, `kicad/_to_delete/v6-ports-20260928/` y
|
||||
`kicad/_to_delete/v6-final-20260928/` (nada se borró).
|
||||
|
||||
**Git (lo corre Leo; desde aquí no se hizo commit):** dentro del submódulo `kicad`, commit de
|
||||
`hbox-watchdog-v6.kicad_sch`, `.kicad_pro`, `.kicad_dru`, `Drogheda-v6.pretty/SO-8_L4.9-W3.9-P1.27-LS6.0-BL-EP.kicad_mod`
|
||||
y `Drogheda-v6.pretty/IND-SMD_MWSA0804S.kicad_mod`; push a Gitea `HBox_PCB`; luego actualizar el gitlink del proyecto
|
||||
padre. Si KiCad está abierto en v6, cerrarlo **sin guardar** antes del *Update PCB*.
|
||||
|
||||
---
|
||||
|
||||
## 2. Estado final de cada cambio, por bloque
|
||||
|
||||
Todo lo de estas tablas está verificado: la pasada 1 por la verificación independiente (126 ítems) y las pasadas 2 y 3
|
||||
por la revisión final. **Pasada:** 1 = correcciones de la auditoría · 2 = puertos / sin nueva versión · 3 = revisión final.
|
||||
|
||||
### Entrada de 24 V, ignición y ventilador
|
||||
|
||||
| Hallazgo | Ref | Estado final | LCSC | Pasada |
|
||||
|---|---|---|---|---|
|
||||
| A-01 / V1-01 | F2 | Fusible Nano2 de 3 A (0154003.DR), mismo porta-fusible; P1.1 → F2 → `/VIN_FUSED` | C206912 | 1 |
|
||||
| V1-01 | D10 | SMBJ33A en `/VIN_FUSED` (salida de F2); con P1 al revés funde F2 | C224019 | 1 |
|
||||
| A-01 | D20, D21 | Eliminados; `/VIN_MODEM` unido a `/MAIN5V` | — | 1 |
|
||||
| A-01 | Q10, DzG1, Rrp1, C10, C11, C22 | DNP: la rama `/24V` queda sin cargas | — | 1 |
|
||||
| A-01 | U2, L2, Dbk1, Cbst1, Rcomp1, Ccomp1, Rfreq1, Ren1, Ren2, R20, R21 | DNP: bloque del ventilador | — | 1 |
|
||||
| A-01 | JP1 | Puente de soldadura **puenteado** → `/5V_FAN` = `/VEH5V` | — | 1 |
|
||||
| F-02 | **D35** (nuevo) | SMBJ33A de `/IGN_IN` a GND, para ir en P1.3 | C224019 | 1 |
|
||||
| F-02 | Rig1 | 22 k sin cambio; se mueve a P1.3 en el layout. `/IGN_IN` = {P1.3, Rig1.1, D35.1} | C88614 | 1 |
|
||||
| D-05 | Rigb1 | 2.2 k → relación 0.0833 para leer la ignición por ADC | C4190 | 1 |
|
||||
|
||||
### Cargador LTC4040, 5 V, 3V3 e inductores
|
||||
|
||||
| Hallazgo | Ref | Estado final | LCSC | Pasada |
|
||||
|---|---|---|---|---|
|
||||
| A-03 | R50 | 1.43 k 1 % → 1.316–1.483 A de carga | C22840 | 1 |
|
||||
| A-04 | R121 | 57.6 k 1 % → U25 en 5.18 / 5.32 / 5.46 V | C23082 | 1 |
|
||||
| A-05 | **C161, C162** (nuevos) | 47 µF X7R 1210 en `/MAIN5V` (VSYS de U6) | C5440143 | 1 |
|
||||
| A-09 | C78 | 220 µF 16 V polímero | C881921 | 1 |
|
||||
| H-02 | R53 | 499 k 1 % (HKR RCT03499KFLF) | C177479 | 1 |
|
||||
| H-02b | R56, R57, R58, R85, R87, Rgs1 | 100 k 1 % | C25803 | 1 |
|
||||
| A-11 | R56 | Pull-up a `/3V3` → cargador **apagado** sin MCU | C25803 | 1 |
|
||||
| A-13 | **R141** (nuevo), red `/PFO` | PFO del LTC4040 → PB10, con 100 k a `/3V3` | C25803 | 1 |
|
||||
| F-51 | **U29 + C168** (nuevos) | TMP102 del cargador en **0x48** + 100 nF | C99269, C14663 | 1 |
|
||||
| F-51 | **R137, R138, C169** (nuevos) | Toma del NTC: `/NTC` → 100 k → `/NTC_CELL` (PC5) → 120 k + 10 nF a GND | C25803, C25808, C1589 | 1 |
|
||||
| A-08 | U17 | TLV1117LV33DCYR, misma huella | C15578 | 1 |
|
||||
| H-03 | L2 (DNP), L6, L8, L20 | Huella `Drogheda-v6:IND-SMD_MWSA0804S` (tierra de Sunlord); piezas sin cambio | — | 2 y 3 |
|
||||
|
||||
### Módem A7670SA
|
||||
|
||||
| Hallazgo | Ref | Estado final | LCSC | Pasada |
|
||||
|---|---|---|---|---|
|
||||
| A-01 | U20.2, C127, C128 | En `/MAIN5V` | — | 1 |
|
||||
| F-03 | **C163, C164, C165** (nuevos) | 2 × 22 µF 0805 + 220 µF polímero en U20.2 | C86817, C881921 | 1 |
|
||||
| B-02 | C130, C131 | 220 µF 16 V polímero | C881921 | 1 |
|
||||
| B-02 | R116 / C141 / C142 | 113 k / 6.8 nF / 56 pF (compensación para 3.8 V) | C22862, C1542, C1572 | 1 |
|
||||
| B-02 | **C166, C167** (nuevos) | 22 µF 0805 en `/VBAT_MODEM` | C86817 | 1 |
|
||||
| B-03 | D28 | PESD0402-240 bidireccional, huella 0402 | C1975527 | 1 |
|
||||
| B-09 | R132, R133, R134 | 22 Ω | C23345 | 1 |
|
||||
| B-09 | **C171** (nuevo) | 100 nF 0402 en J14.C1 (`/SIMB_VDD`) | C1525 | 1 |
|
||||
| B-10 | **R142, R143** (nuevos) | 100 k: `/MODEM_STATUS` a GND y `/DIN_4G` a `/3V3` | C25803 | 1 |
|
||||
| B-10 | R106 | 1 k | C14676 | 1 |
|
||||
| B-15 | R107, R108 | DNP, valor «0R-NEVER-FIT» y nota | — | 1 |
|
||||
| F-52 | **U31 + C174** (nuevos) | TMP102 del módem en **0x49** + 100 nF | C99269, C14663 | 1 |
|
||||
| G-02 | **U30** (nuevo) | USBLC6-2SC6 en J9 | C7519 | 1 |
|
||||
| B-13 | K1, Q6, D6, R40, R41 | DNP: el relé sale del circuito | — | 2 |
|
||||
| B-13 | **R148** (nuevo) | 0 Ω de `/USART6_TX` (PC6) a `/DIN_4G`; nunca junto con K1 | C21189 | 2 |
|
||||
| P-5 | **TP12** (nuevo) | Pad en `/1V8_MODEM` junto a TP8 (descarga forzada del módem) | — | 2 |
|
||||
|
||||
### GNSS ZED-F9P
|
||||
|
||||
| Hallazgo | Ref | Estado final | LCSC | Pasada |
|
||||
|---|---|---|---|---|
|
||||
| C-01 | **U28, R135, R136** (nuevos) | TPS2552 (75 mA) con EN̅ = ANT_OFF + 100 k a GND y FAULT̅ → `/GNSS_ANT_SHORT_N` + 10 k a `/3V3_GNSS`; salida `/ANT_BIAS`; U18.7 sin conectar | C46506, C25803, C25804 | 1 |
|
||||
| N2 | **C176** (nuevo) | 100 nF en U28 pin 1 (IN) | C14663 | 3 |
|
||||
| C-02 | U21 | TPS7A2033PDBVR (arranque suave), misma huella | C2862740 | 1 |
|
||||
| D-01 | **U27 + C170** (nuevos) | 74LVC1G125 de `/DOUT_4G` a U18.26 (`/DOUT_4G_F9P`), VCC = `/3V3_GNSS` | C12518, C14663 | 1 |
|
||||
| D-01 | Rdfu1 | 100 k | C25803 | 1 |
|
||||
| C-07 | **TP10, TP11** (nuevos) | Pads en SAFEBOOT_N (U18.50) y RESET_N (U18.49) | — | 1 |
|
||||
| D-09 | **R144** (nuevo) | 100 k de la base de Q5 a GND | C25803 | 1 |
|
||||
|
||||
### MCU y cristales
|
||||
|
||||
| Hallazgo | Ref | Estado final | LCSC | Pasada |
|
||||
|---|---|---|---|---|
|
||||
| D-02 | Y3 | 25 MHz 3225-4P CL 10 pF; símbolo `Crystal_GND24` (pad 1 HSE_IN, pad 3 HSE_OUT, pads 2/4 GND), confirmado con la hoja de SCTF (N1) | C2901684 | 1 y 3 |
|
||||
| D-02 | C113, C114 | 12 pF C0G | C38523 | 1 |
|
||||
| D-03 | Y4 | FC-135 CL 7 pF, misma huella | C48615 | 1 |
|
||||
| D-03 | C115, C116 | 6.8 pF C0G | C1679 | 1 |
|
||||
| D-12 | **TP9** (nuevo) | Pad en PA9 (`/USART1_TX`) | — | 1 |
|
||||
|
||||
### Ethernet
|
||||
|
||||
| Hallazgo | Ref | Estado final | LCSC | Pasada |
|
||||
|---|---|---|---|---|
|
||||
| E-01 | **R139** (nuevo), red `/ETH_PWR_EN` | EN de U12 → PD2, con 100 k a GND | C25803 | 1 |
|
||||
| E-02 | **R140** (nuevo) | 4.7 k de `/ETH_RST` a GND | C23162 | 1 |
|
||||
| E-03 | C95, C96 | 33 pF C0G (Y1 se queda) | C1663 | 1 |
|
||||
| E-04 | C91 / C90 | 10 nF 0603 / 4.7 µF 0805 | C1589, C1779 | 1 |
|
||||
| E-04 | **C172, C173** (nuevos) | 100 nF en AVDD del W5500 | C14663 | 1 |
|
||||
| G-03 | J10 | Montado; huella `Connector_RJ:RJ45_Hanrun_HR911105A_Horizontal` | C12074 | 1 |
|
||||
| P-3 | J10.11 / J10.12 | LED amarillo corregido: 12 = ánodo (`/ETH_ACT_A`), 11 = cátodo (`/ETH_ACTLED`) | — | 2 |
|
||||
| P-3 | J10.8 | A GND (retorno Bob-Smith; plano de Hanrun) | — | 2 |
|
||||
|
||||
### Puertos serie (SC16IS752, RS-485, RS-232, H4)
|
||||
|
||||
| Hallazgo | Ref | Estado final | LCSC | Pasada |
|
||||
|---|---|---|---|---|
|
||||
| H-02 | U10 | SC16IS752IPW,128 (I²C 0x4D) | C57156 | 1 |
|
||||
| Puertos | U10.2, U10.16 | CTSA̅/CTSB̅ a GND | — | 2 |
|
||||
| P-1 | U14 | THVD1410DR, misma huella SOIC-8 | C2671345 | 2 |
|
||||
| P-1 | **U32 + C175** (nuevos) | 74LVC1G04: RTSA̅ → `/RS485_DE` (arranca en recepción) + 100 nF | C7827, C14663 | 2 |
|
||||
| P-1 | **D39** (nuevo) | SM712 en A/B de P11 | C12067 | 2 |
|
||||
| P-4 | **R145, R146** (nuevos, **DNP**) | 390 Ω, opción de polarización del bus | C23151 | 2 |
|
||||
| H-01 | U15 | Huella angosta `SOIC-16_3.9x9.9mm` | — | 1 |
|
||||
| P-2 | U15 | TRS3232EIDR (ESD IEC) | C308878 | 2 |
|
||||
| P-2 | **R147** (nuevo) | 1 k de R1OUT (`/RS232_R1OUT`) a `/SER_RXB` (H4 sin contienda) | C21190 | 2 |
|
||||
| G-03 | P11, P12 | Montados; huella `PhoenixContact_MC_1,5_3-G-3.5_1x03_P3.50mm_Horizontal` | C5160226 | 1 |
|
||||
|
||||
### Conectores, ESD y limpieza
|
||||
|
||||
| Hallazgo | Ref | Estado final | LCSC | Pasada |
|
||||
|---|---|---|---|---|
|
||||
| G-08 | **D36, D37, D38** (nuevos) | PESD5V0S1BA en `/NRST`, `/NTC_TEMP` y `/NTC2` | C2827694 | 1 |
|
||||
| G-04 | **JP6** (nuevo) | Puente de soldadura abierto sobre P5, «CUTOFF_BYPASS» | — | 1 |
|
||||
| H-08 | C22, Y2 | Textos de valor «10uF/50V» y «3.6864MHz» | — | 1 |
|
||||
| J-04 | Banderas NC y trozos de cable | 23 banderas huérfanas y 4 sobre pines conectados eliminadas; un trozo de cable borrado y otro recortado (sin cambio de red) | — | 1 |
|
||||
| J-05 | TP1–TP12, JP1–JP6 | Fuera del BOM y del CPL | — | 2 |
|
||||
|
||||
### Reglas del proyecto y librería
|
||||
|
||||
| Hallazgo | Archivo | Estado final | Pasada |
|
||||
|---|---|---|---|
|
||||
| F-01 | `.kicad_pro` | Netclasses por nombre exacto: HV24, PWR_HI, PWR_MODEM, PWR_MID, RF y Default (lista en la [sección F-01](v6-plan-correccion.md#f-01-el-drc-no-veia-ningun-espaciado-de-24-v) del plan) | 1 |
|
||||
| F-01 | `.kicad_dru` | Las 5 reglas del verificador 2 (piso 0.15, HV24↔HV24 0.2, HV24 externa 0.3, HV24 interna 0.5, pads de U2/U20/U25 0.15) | 1 |
|
||||
| H-04 | `SO-8_L4.9-W3.9-P1.27-LS6.0-BL-EP.kicad_mod` | `LCSC Part` borrado; la copia de U25 en el PCB se refresca en el layout | 1 |
|
||||
| H-03 | `IND-SMD_MWSA0804S.kicad_mod` (nueva) | Pads 2.75 × 5.5 mm a ±3.375 mm (separación 4.0 mm), cuerpo 8.8 × 8.2 mm, courtyard 10.0 × 9.0 mm | 2 y 3 |
|
||||
| C-01 | Símbolo TPS2552 | Dibujado y embebido en el esquemático (KiCad no lo trae) | 1 |
|
||||
|
||||
---
|
||||
|
||||
## 3. Delta de layout para Michelle (las tres pasadas juntas)
|
||||
|
||||
La lista con casillas, en orden, está en la
|
||||
[sección 5 del plan de corrección](v6-plan-correccion.md#5-lista-de-trabajo-de-michelle-layout). Aquí está el resumen
|
||||
de lo que cambia en el PCB.
|
||||
|
||||
### 3.1 Actualizar el PCB
|
||||
|
||||
*Herramientas → Actualizar PCB desde esquemático* con **«Eliminar huellas sin símbolo»** y **«Reemplazar huellas con las
|
||||
del esquemático»** marcados. Revisar la lista del diálogo antes de aplicar:
|
||||
|
||||
- solo se borran **D20** (D_SMA) y **D21** (SOD-128); PF15 era un flag virtual, sin huella;
|
||||
- solo cambian de huella las referencias de la tabla 3.2.
|
||||
|
||||
Después, **solo en U25**, *Actualizar huella desde librería* para quitar `LCSC Part` (H-04). **Nunca** la actualización global
|
||||
desde librería (L-45). Luego rellenar zonas y correr el DRC con las reglas nuevas.
|
||||
|
||||
### 3.2 Huellas que cambian
|
||||
|
||||
| Ref | Antes | Ahora | Nota |
|
||||
|---|---|---|---|
|
||||
| U15 | `SOIC-16W_7.5x10.3mm` | `Package_SO:SOIC-16_3.9x9.9mm_P1.27mm` | TRS3232EIDR; C85–C88 ≤ 3 mm, C89 ≤ 2 mm de U15.16 (L-51) |
|
||||
| D28 | SOD-923 | `Diode_SMD:D_0402_1005Metric` | con el re-ruteo LTE de F-06 |
|
||||
| Y3 | HC-49SD | `Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm` | pad 1 HSE_IN, pad 3 HSE_OUT, pads 2/4 GND; ≤ 3 mm de PH0/PH1 (máx. 5 mm), sin pistas internas debajo |
|
||||
| C91 | 0805 | `C_0603_1608Metric` | ≤ 2 mm de U11.22 |
|
||||
| JP1 | puente abierto | `Jumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mm` | puenteado (net-tie) |
|
||||
| L2 (DNP), L6, L8, L20 | `Inductor_SMD:L_Bourns-SRU8028_8.0x8.0mm` | `Drogheda-v6:IND-SMD_MWSA0804S` | pads 2.75 × 5.5 mm a ±3.375 mm, courtyard 10.0 × 9.0 mm (L-53 corregido por L-63) |
|
||||
| U25 | con `LCSC Part` | misma huella, refrescada desde la librería | H-04 |
|
||||
|
||||
No cambian: J10 (el apodo de librería se corrigió a `Connector_RJ:`, la misma geometría), P11/P12 (ya eran *Horizontal*
|
||||
en el PCB), Y4, F2, U10, U14, U17 y U21.
|
||||
|
||||
### 3.3 DNP
|
||||
|
||||
- **Pasan a montadas:** J10, P11, P12.
|
||||
- **Pasan a DNP:** U2, L2, Dbk1, Cbst1, Rcomp1, Ccomp1, Rfreq1, Ren1, Ren2, R20, R21, Q10, DzG1, Rrp1, C10, C11, C22 (A-01) ·
|
||||
K1, Q6, D6, R40, R41 (B-13).
|
||||
- **Nuevas en DNP:** R145, R146 (polarización RS-485).
|
||||
|
||||
Las huellas DNP se quedan en la tarjeta. Borrar su cobre `/24V`, `/SW_FAN` y `/BST_FAN` (L-6). En K1 no hay cambio de
|
||||
cobre, salvo las dos conexiones de R148 (L-54).
|
||||
|
||||
### 3.4 Piezas nuevas (46)
|
||||
|
||||
| Ref | Huella | Dónde va |
|
||||
|---|---|---|
|
||||
| D35 | D_SMB | **en P1.3**; Rig1 a ≤ 3 mm de cobre de P1.3 (F-02) |
|
||||
| U28 | SOT-23-6 | junto a L21/C144/C145 en J12; `/ANT_BIAS` ≥ 1 mm de la línea RF con franja GND cosida (C-01, F-06) |
|
||||
| R135, R136 | 0603 | en los pines 3 y 4 de U28 |
|
||||
| C176 | 0603 | **≤ 2 mm de U28 pin 1**, misma capa, GND con vía ≤ 1 mm (L-64) |
|
||||
| C161, C162 | 1210 | ≤ 2 mm de VSYS 1/24 de U6, GND sobre el cobre del EP (A-05/A-02) |
|
||||
| C163, C164 | 0805 | ≤ 2–3 mm de U20.2, GND sobre el cobre del EP de U20 (F-03) |
|
||||
| C165 | CP_Elec_6.3x7.7 | en U20.2 (F-03) |
|
||||
| C166, C167 | 0805 | ≤ 3 mm de L20.2 (B-02) |
|
||||
| U29 + C168 | SOT-563 + 0603 | **entre U6 y L6, ≤ 5 mm del EP de U6** (F-51) |
|
||||
| R137, R138, C169 | 0603 | R138/C169 junto al pad 25 de U16 (PC5); R137 en cualquier punto de `/NTC` |
|
||||
| R139 | 0603 | en U12 pin 2 (EN); pista nueva `/ETH_PWR_EN` al pad 54 de U16 (PD2) |
|
||||
| R140 | 0603 | en U11.37 (`/ETH_RST`) |
|
||||
| U27 + C170 | SOT-23-5 + 0603 | **en U18.26 (RXD2)**; VCC de `/3V3_GNSS` |
|
||||
| U30 | SOT-23-6 | **≤ 3 mm de cobre de los pads de J9**, D± pasando por los pads, vía GND ≤ 1 mm (G-02) |
|
||||
| R141 | 0603 | pull-up de `/PFO` cerca del pad 29 de U16 (PB10) |
|
||||
| C171 | 0402 | en J14.C1 |
|
||||
| R142, R143 | 0603 | en `/MODEM_STATUS` (PC9) y `/DIN_4G`, donde convenga |
|
||||
| TP10, TP11 | pad 1.0 mm | cerca de U18 pines 50 (SAFEBOOT_N) y 49 (RESET_N), junto a un pad GND (C-07) |
|
||||
| R144 | 0603 | en la base de Q5 |
|
||||
| TP9 | pad 1.5 mm | PA9, en la fila de pads de depuración con TP3–TP7 (L-56) |
|
||||
| C172, C173 | 0603 | en AVDD 4/8 y 11/21 del W5500 |
|
||||
| U31 + C174 | SOT-563 + 0603 | **entre U19 y U20** (F-52) |
|
||||
| JP6 | puente de 2 pads, abierto | sobre P5 (`/MAIN5V`–`/SYS5V`), serigrafía «CUTOFF BYPASS» (G-04) |
|
||||
| D36, D37, D38 | SOD-323 | ≤ 3 mm de P6.1, P7.1, P8.1, a GND (G-08) |
|
||||
| U32 + C175 | SOT-23-5 + 0603 | ≤ 5 mm de U14 pines 2/3; C175 ≤ 2 mm de U32.5 (L-49) |
|
||||
| D39 | SOT-23 | ≤ 5 mm de cobre de P11.1/P11.2, A/B en flow-through, pin 3 a GND con 2 vías (L-50) |
|
||||
| R145, R146 | 0603 (DNP) | junto a P11 (L-50) |
|
||||
| R147 | 0603 | ≤ 3 mm de U15.12; H4.3 del lado de U10 (L-51) |
|
||||
| R148 | 0603 | camino más corto U16.37 (PC6) → U23.7 (`/DIN_4G`) (L-54) |
|
||||
| TP12 | pad 1.5 mm | a 2.54 mm de TP8, con un contacto GND a ≤ 10 mm (L-55, L-65) |
|
||||
|
||||
### 3.5 Redes que cambian de ruteo
|
||||
|
||||
- `/VIN_MODEM` desaparece: U20.2, C127 y C128 pasan a **`/MAIN5V`** (≥ 1.5–2 mm hasta U20; borrar la pista de 48 mm de `/VIN_MODEM`).
|
||||
- `/VIN_FUSED` gana D10.1: P1.1 → F2 → {D10, Q23.D}; `/24V_IN` = P1.1, F2.1 y Q10.D solamente.
|
||||
- `/IGN_IN` = {P1.3, Rig1.1, D35.1}; el tramo largo al MCU es `/IGN_SENSE`.
|
||||
- `/ANT_BIAS` (U28.6 → L21.2, C144, C145); U18.7 queda sin conectar; `/GNSS_ANT_OFF` (U18.5 → U28.3, R135);
|
||||
`/GNSS_ANT_SHORT_N` gana U28.4 y R136; `/3V3_GNSS` gana U28.1, U28.5 y C176.
|
||||
- `/ETH_PWR_EN` (U12.2, U16.54, R139); U12.2 sale de `/SYS5V`.
|
||||
- `/DOUT_4G_F9P` (U27.4 → U18.26); U18.26 sale de `/DOUT_4G`; U27.2 entra a `/DOUT_4G`.
|
||||
- `/PFO` (antes `/PFO_TP`: U6.20, TP2, más U16.29 y R141).
|
||||
- `/NTC_CELL` (U16.25, R137, R138, C169); `/NTC` gana R137.
|
||||
- `/GNSS_SAFEBOOT_N` (U18.50, TP10); `/USART1_TX` (U16.42, TP9).
|
||||
- R56.2 pasa de GND a `/3V3`; los pads de Y3 se re-asignan como en 3.2.
|
||||
- **Puertos:** `/RS485_DE` nueva (U14.2, U14.3, U32.4) y `/SER_DEA` = {U10.1, U32.2}; D39 en `/RS485_A`/`/RS485_B`;
|
||||
`/RS232_R1OUT` nueva (U15.12, R147.1) y `/SER_RXB` = {U10.24, H4.3, R147.2}; J10.8 → GND, J10.11 → `/ETH_ACTLED`,
|
||||
J10.12 → `/ETH_ACT_A`; U10.2 y U10.16 → GND; R148 entre `/USART6_TX` y `/DIN_4G`; TP12 en `/1V8_MODEM`.
|
||||
|
||||
### 3.6 Qué va a mostrar el DRC
|
||||
|
||||
En una copia del PCB sin actualizar, con las reglas nuevas: **161 errores de separación**. **149** son proximidades del
|
||||
relleno de zonas guardado (se van al rellenar) y **12** son cobre real:
|
||||
|
||||
- `/IGN_IN` en In2 contra vía GND 0.250, `/FAN_PWM` 0.291, vía `/5V_FAN` 0.300, `/NTC2` 0.305 y vía `/VEH5V` 0.340 mm.
|
||||
Todos son F-02 y desaparecen al mover Rig1 a P1.3.
|
||||
- `/VIN_PROT` contra `/VEH5V`: 0.157 y 0.191 mm en (175.5, 113.8).
|
||||
- `/USB_VBUS` contra Q23.1 (`/Q23_GATE`): 0.225 mm.
|
||||
- `/SW_PWRIN` contra pista GND: 0.270 mm.
|
||||
- `/24V` contra `/COMP_FAN`: 0.290 mm × 2. Es la rama DNP, pero el cobre existe.
|
||||
- Clase RF: vía de `/RF_LTE` contra `/PWR_CTRL`, 0.150 mm. Se va con el re-ruteo de F-06.
|
||||
|
||||
Ojo: KiCad lista **una sola** violación entre el tramo largo de `/IGN_IN` en In2 y `/VEH5V` (la vía a 0.340 mm), aunque las
|
||||
pistas paralelas están a 0.221–0.240 mm. No leer el conteo del DRC como la lista completa; el movimiento de F-02 elimina ese
|
||||
tramo de todos modos. Los avisos de `track_width` bajan de 183 a 121. Después del *Update PCB* aparecen elementos HV24
|
||||
nuevos en `/VIN_FUSED` junto a D10 y desaparecen los de `/VIN_MODEM`. Comprobar una vez con *Inspeccionar → Resolución de
|
||||
separación* que las clases sobrevivieron al guardado.
|
||||
|
||||
### 3.7 Pasos de layout nuevos (L-49…L-66)
|
||||
|
||||
L-49 dirección RS-485 · L-50 protección RS-485 en P11 · L-51 RS-232/H4 · L-52 J10 · L-53/L-63 land MWSA0804S ·
|
||||
L-54 R148 (B-13) · L-55 TP12 · L-56 fila de pads de depuración · L-57 SC16IS752 · L-58 resistencias CC de USB-C ·
|
||||
L-59 serigrafía de puertos · L-60 atributos de huella TP/JP · L-61 fiduciales · L-62 revisión de P1 · L-64 C176 ·
|
||||
L-65 pads de descarga forzada · L-66 revisión de LEDs de J10. Texto completo y agrupado en la
|
||||
[lista de Michelle](v6-plan-correccion.md#5-lista-de-trabajo-de-michelle-layout).
|
||||
|
||||
---
|
||||
|
||||
## 4. Informes de cada pasada
|
||||
|
||||
- **[Pasada 1 — Informe de cambios al esquemático](v6-cambios-esquematico.md)** (en español): cada cambio por hallazgo,
|
||||
pruebas de netlist, ERC, reglas del proyecto, librería, topología de fusible y polaridad, delta de layout y notas de firmware.
|
||||
- **[Pasada 2 — Puertos y sin nueva versión](v6-puertos-sin-nueva-version.md)** (inglés): veredicto puerto por puerto, hojas
|
||||
de datos que decidieron los cambios, mapa I²C, cambios con prueba, L-49…L-62, notas de firmware por puerto y la tabla de
|
||||
aceptados permanentemente.
|
||||
- **[Pasada 3 — Revisión final](v6-revision-final.md)** (inglés): 27 revisiones de la pasada 2 (26 PASS, 1 FAIL
|
||||
corregido), cierre de N1/N2, avisos, L-63…L-66 y notas de firmware.
|
||||
|
||||
La verificación independiente de la pasada 1 (126 ítems revisados uno por uno: 173 PASS / 0 FAIL) no se reproduce aquí;
|
||||
su resultado está en la sección 1.
|
||||
1650
docs/hardware/v6-full-audit.md
Normal file
1650
docs/hardware/v6-full-audit.md
Normal file
File diff suppressed because it is too large
Load Diff
@ -11,7 +11,13 @@ author: Helgen Technologies
|
||||
!!! warning "EinarBoard v6 (`hbox-watchdog-v6`): en diseño, no se pide"
|
||||
Diseño nuevo con ZED-F9P y módem A7670SA soldados a bordo. **No es la V5.6** que se manda a fabricar esta semana (`hbox-watchdog-v5`, zócalos para simpleRTK2B y 4G NTRIP Master). Los hallazgos marcados «Impacto en V5.6» ya se aplicaron a la V5.6 y están en su informe de cambios.
|
||||
|
||||
Prosa y encabezados en español; la tabla de 64 pines y el borrador de `board_v6.h` se dejan en inglés (fuente directa para firmware). Fuente: `findings/pinmap-v6.md` de la [auditoría completa v6](v6-auditoria-completa.md) (§4), mismo snapshot del 2026-09-28. La tabla describe **la v6 tal como está dibujada**. Las filas marcadas ▶ audit llevan la consecuencia a nivel de pin de un hallazgo verificado de forma independiente, o de la asignación de pines libres que ambas verificaciones aceptan. Nada de esto se ha aplicado al esquemático (ver el [informe de cambios v6](v6-cambios-esquematico.md) para lo que sí se aplicó); las notas «▶ audit» dicen qué cambia si se adopta la corrección.
|
||||
!!! info "Los cambios «▶ audit» ya se aplicaron al esquemático (28-sep)"
|
||||
Los cambios de pin marcados «▶ audit» **ya se aplicaron** al esquemático y están verificados. Los principales:
|
||||
**PD2** = `ETH_PWR_EN` (R139 100 k a GND) · **PB10** = `PFO` (R141 100 k a `/3V3`) · **PC5** = `NTC_CELL` (toma del
|
||||
NTC del paquete) · **PA9** = pad de depuración TP9 · **PC6** → RX del módem directo por **R148** 0 Ω (K1 DNP) ·
|
||||
**CHGOFF** (PA8) apagado por defecto con el pull-up R56. Detalle: [Cambios de esquemático — resumen de 3 pasadas](v6-cambios-resumen.md).
|
||||
|
||||
Prosa y encabezados en español; la tabla de 64 pines y el borrador de `board_v6.h` se dejan en inglés (fuente directa para firmware). Fuente: `findings/pinmap-v6.md` de la [auditoría completa v6](v6-auditoria-completa.md) (§4), mismo snapshot del 2026-09-28. La tabla describe **la v6 tal como está dibujada**. Las filas marcadas ▶ audit llevan la consecuencia a nivel de pin de un hallazgo verificado de forma independiente, o de la asignación de pines libres que ambas verificaciones aceptan. Desde el 28-sep, los cambios de esquemático de las filas ▶ audit ya están aplicados y verificados, salvo el strap de identificación de D-08 (la tarjeta se identifica por firmware); lo que es de layout, como mover Rig1 a P1.3, sigue pendiente (ver el [informe de cambios v6](v6-cambios-esquematico.md) y el [resumen de las 3 pasadas](v6-cambios-resumen.md)).
|
||||
|
||||
**Correcciones aplicadas al texto original (v1.0, 2026-09-28):**
|
||||
|
||||
|
||||
1536
docs/hardware/v6-plan-correccion.md
Normal file
1536
docs/hardware/v6-plan-correccion.md
Normal file
File diff suppressed because it is too large
Load Diff
@ -17,6 +17,10 @@ audience: Michelle (layout), Leo
|
||||
!!! warning "Tarjeta: EinarBoard **v6** — proyecto KiCad `hbox-watchdog-v6` (EN DISEÑO, no se pide todavía) / Board: v6, in design"
|
||||
Diseño nuevo con ZED-F9P y módem A7670SA soldados a bordo. **No es la V5.6** que se manda a fabricar esta semana (`hbox-watchdog-v5`, zócalos para simpleRTK2B y 4G NTRIP Master). Los hallazgos marcados «Impacto en V5.6» ya se aplicaron a la V5.6 y están en su informe de cambios.
|
||||
|
||||
!!! warning "Superseded by the 28-Sep audit"
|
||||
This 25-Sep audit is kept as **history**. It is superseded by the [28-Sep full audit](v6-full-audit.md) and its
|
||||
[correction plan and status (Spanish)](v6-plan-correccion.md).
|
||||
|
||||
**Board:** `hbox-watchdog-v6` (repo **HBox_PCB**) · **Planned order:** 5 prototypes at JLCPCB
|
||||
(PCB + assembly) · **Date:** 25-Sep-2026 · [Versión en español](v6-auditoria-prefab.md)
|
||||
|
||||
|
||||
184
docs/hardware/v6-proximos-pasos.md
Normal file
184
docs/hardware/v6-proximos-pasos.md
Normal file
@ -0,0 +1,184 @@
|
||||
---
|
||||
title: "EinarBoard v6 — Próximos pasos para ordenar (29-sep-2026)"
|
||||
tags: [project-drogheda, hardware, hbox, v6, pcb, pedido, jlcpcb, proximos-pasos]
|
||||
project: Project Drogheda
|
||||
author: Helgen Technologies
|
||||
date: 2026-09-29
|
||||
version: 1.0
|
||||
status: ACTIVO — camino crítico al pedido de v6
|
||||
audience: Leo, Michelle (layout), compras
|
||||
---
|
||||
|
||||
# EinarBoard v6 — Próximos pasos para ordenar (29-sep-2026)
|
||||
|
||||
!!! warning "EinarBoard v6 (`hbox-watchdog-v6`): en diseño, no se pide"
|
||||
Diseño nuevo con ZED-F9P y módem A7670SA soldados a bordo. **No es la V5.6** que se manda a fabricar esta semana (`hbox-watchdog-v5`, zócalos para simpleRTK2B y 4G NTRIP Master). Los hallazgos marcados «Impacto en V5.6» ya se aplicaron a la V5.6 y están en su informe de cambios.
|
||||
|
||||
Esta página es la versión corta: **qué falta, en qué orden, quién lo hace y cuánto tarda**. Las cifras de cada paso
|
||||
(anchos, distancias, número de vías, piezas) están en el [Plan de corrección y estado](v6-plan-correccion.md).
|
||||
|
||||
!!! danger "Hoy todavía no se puede ordenar: el PCB no tiene ninguna corrección"
|
||||
- **Esquemático: listo y verificado** (`d58a89ba…e7b`, ERC 0 errores). Todos los puertos revisados de punta a punta.
|
||||
- **PCB: sin actualizar.** `hbox-watchdog-v6.kicad_pcb` sigue igual que el 28-sep a las 11:36 (`6ddec80d…`). No se ha
|
||||
hecho *Actualizar PCB desde esquemático* ni el layout de las correcciones.
|
||||
- Si se ordena así, la tarjeta sale con los 11 Blockers: rama de 24 V sin fusible, ignición a 0.22 mm de 5 V en
|
||||
capa interna (la geometría del corto del 23-jul), RS-232 imposible de soldar, cargador LTC4040 sin disipar,
|
||||
JP2 en Li-ion con paquete LFP, entre otros. Eso obliga a otra versión, que es justo lo que no queremos.
|
||||
- **Fecha realista de pedido: viernes 2-oct** si Michelle trabaja en esto desde hoy (jueves 1-oct si todo sale a la
|
||||
primera). Son estimaciones; el detalle está en la tabla de abajo.
|
||||
|
||||
---
|
||||
|
||||
## 1. Camino crítico
|
||||
|
||||
| # | Paso | Quién | Tiempo estimado | Listo cuando |
|
||||
|---|---|---|---|---|
|
||||
| 1 | [Subir los cambios de v6 a git y publicar el sitio](#paso-1-leo-subir-a-git-y-publicar-hoy) | Leo | 15 min | Michelle hace `git pull` y ve el esquemático `d58a89ba…` |
|
||||
| 2 | [Pre-órdenes y compras](#paso-2-compras-hoy-en-paralelo) (en paralelo) | Leo / compras | 30 min hoy; las piezas pre-ordenadas suelen tardar unos días hábiles en quedar disponibles en JLC | THVD1410DR, TPS7A2033PDBVR y J14 en «Pre-ordered» de la cuenta |
|
||||
| 3 | [Actualizar el PCB y colocar las piezas nuevas](#paso-3-michelle-actualizar-el-pcb) | Michelle | 3–4 h | Paso 0 de su lista cerrado |
|
||||
| 4 | [Layout de las correcciones](#paso-4-michelle-layout-en-este-orden) | Michelle | 2–2.5 días | Lista L-1…L-67 cerrada |
|
||||
| 5 | [Rellenar zonas y DRC](#paso-5-michelle-drc-la-puerta-de-salida) | Michelle | 2–4 h | **0 errores de separación**, 0 sin conectar |
|
||||
| 6 | [Re-auditoría del PCB](#paso-6-claude-re-auditoria-del-pcb) | Claude | 1–2 h después del push | GO por escrito en este sitio |
|
||||
| 7 | [Archivos y pedido](#paso-7-leo-archivos-y-pedido) | Leo | 1 h | Pedido en JLC |
|
||||
|
||||
El paso 1 bloquea todo lo demás: **sin él, Michelle no puede traer el esquemático corregido.**
|
||||
El paso 2 no depende de nadie y es lo que más tarda en llegar, así que conviene hacerlo hoy.
|
||||
|
||||
---
|
||||
|
||||
## Paso 1 — Leo: subir a git y publicar (hoy)
|
||||
|
||||
Los cambios de v6 de la noche del 28-sep **no están en ningún commit**: el último commit de `HBox_PCB` es de la V5.6
|
||||
(`b1e1677`), y el sitio se publicó antes de que existieran las páginas de v6. Los comandos, en este orden:
|
||||
|
||||
```bash
|
||||
# 1) Repo de KiCad (HBox_PCB): solo los archivos de v6
|
||||
cd ~/Documents/Claude/Projects/Drogheda/03-Architecture-Hardware/kicad
|
||||
git add hbox-watchdog-v6.kicad_sch hbox-watchdog-v6.kicad_pro hbox-watchdog-v6.kicad_dru \
|
||||
Drogheda-v6.pretty/IND-SMD_MWSA0804S.kicad_mod Drogheda-v6.pretty/SO-8_L4.9-W3.9-P1.27-LS6.0-BL-EP.kicad_mod
|
||||
git commit -m "v6: correcciones de auditoría, puertos, revisión final y estrapes LFP (sch d58a89ba)"
|
||||
git push helgen main
|
||||
|
||||
# 2) Sitio (hbox-docs)
|
||||
cd ../../hbox-docs
|
||||
git status
|
||||
git add -A && git commit -m "v6: próximos pasos, plan de corrección, cambios, puertos, revisión final, auditoría EN"
|
||||
git push
|
||||
|
||||
# 3) Repo padre (Drogheda): fuentes, PDF del esquemático y los dos submódulos
|
||||
cd ..
|
||||
git add 03-Architecture-Hardware/2026-09-2*_Drogheda_EinarBoard-v6_*.md 03-Architecture-Hardware/pinmap-v6.md \
|
||||
03-Architecture-Hardware/hbox-watchdog-v6-schematic.pdf 03-Architecture-Hardware/2026-09-28_v6-audit-attachments \
|
||||
03-Architecture-Hardware/kicad hbox-docs
|
||||
git -c diff.ignoreSubmodules=none commit -m "v6: auditoría, correcciones de esquemático y próximos pasos (fuentes + gitlinks)"
|
||||
git push helgen main
|
||||
|
||||
# 4) Publicar el sitio
|
||||
cd hbox-docs && ./scripts/deploy.sh
|
||||
```
|
||||
|
||||
Después, avisar a Michelle con la liga a esta página.
|
||||
|
||||
---
|
||||
|
||||
## Paso 2 — Compras hoy, en paralelo
|
||||
|
||||
- [ ] **Pre-órdenes en la cuenta de JLC** (categoría «Pre-ordered»; sin esto JLC no las coloca):
|
||||
**THVD1410DR (C2671345)**, **TPS7A2033PDBVR (C2862740)** y **J14 (C2977286)**.
|
||||
Si el pedido llega a ≳ 100 tarjetas: pre-ordenar también U18 (ZED-F9P) y U19 (A7670SA).
|
||||
- [ ] **Conectores hembra de P11/P12:** DEGSON **15EDGK-3.5-03P, 2 por tarjeta** (no van en el BOM de la tarjeta).
|
||||
- [ ] **Paquete de respaldo para las pruebas:** LFP-HT 26650 4P con NTC 10 k **B3380**, el mismo de V5.6.
|
||||
- [ ] **Cotizar el PCB** para tener costo y tiempo listos: 4 capas, 1.6 mm, **JLC04161H-7628 con control de impedancia**,
|
||||
**ENIG**, **cobre interno 1 oz**, rayos X en U18/U19, vías tapadas bajo U18/U19.
|
||||
- [ ] **Cantidad:** 20 prototipos (decisión D14 del plan).
|
||||
|
||||
---
|
||||
|
||||
## Paso 3 — Michelle: actualizar el PCB
|
||||
|
||||
Detalle completo: [paso 0 de la lista de Michelle](v6-plan-correccion.md#5-lista-de-trabajo-de-michelle-layout).
|
||||
|
||||
1. `git pull` en `HBox_PCB`. Si KiCad tenía la v6 abierta, **cerrar sin guardar** antes del pull.
|
||||
2. Abrir `hbox-watchdog-v6` y correr *Herramientas → Actualizar PCB desde esquemático* con
|
||||
**«Eliminar huellas sin símbolo»** marcado (así desaparecen D20 y D21) y reemplazando las huellas que cambiaron:
|
||||
U15 (SOIC-16 angosto), D28 (0402), Y3 (3225 de 4 pads), JP1 (Bridged), **JP2 (Bridged23, LFP)**, J10/P11/P12 (ya
|
||||
poblados), L2/L6/L8/L20 (`Drogheda-v6:IND-SMD_MWSA0804S`).
|
||||
3. Colocar las **46 piezas nuevas** junto a su bloque. La lista con su lugar está en el
|
||||
[resumen de cambios](v6-cambios-resumen.md).
|
||||
4. Revisar que queden **35 piezas DNP**, y que U25 ya no tenga el campo `LCSC Part` (refrescar su huella desde la librería).
|
||||
|
||||
---
|
||||
|
||||
## Paso 4 — Michelle: layout, en este orden
|
||||
|
||||
Los números L-x son los de la [lista de trabajo](v6-plan-correccion.md#5-lista-de-trabajo-de-michelle-layout),
|
||||
donde está cada cifra. El orden va de lo que más riesgo tiene a lo que menos.
|
||||
|
||||
| Orden | Bloque de la lista | Pasos | Por qué va en este lugar | Tiempo estimado |
|
||||
|---|---|---|---|---|
|
||||
| 1 | A · Reglas DRC y stackup | L-1…L-4 | Sin esto el DRC no ve los errores de 24 V | 0.5 h |
|
||||
| 2 | B · Entrada de 24 V e ignición | L-5…L-10, L-62 | Seguridad: fusible primero, rama sin fusible fuera, ignición lejos de 5 V (corto del 23-jul) | 2 h |
|
||||
| 3 | C · Cargador LTC4040 e inductores | L-11…L-19, L-53/L-63, **L-67** | Lección F5 (cargador caliente, carga lenta) y **JP2 en LFP** (si no, sobrecarga a 4.00 V) | 4 h |
|
||||
| 4 | D · Reguladores conmutados | L-20…L-23 | Lazos calientes y vías en los pads térmicos | 2 h |
|
||||
| 5 | E + F · Módem, RF y GNSS | L-30…L-36, L-54, L-55, L-65, L-33, L-64, L-34 | Líneas RF a 50 Ω, módem estable en batería, antena GNSS protegida | 4 h |
|
||||
| 6 | I · Tierras y vías | L-24…L-29, L-35 | Que el LTE no desensibilice al GNSS; disipación del módem y del F9P | 3 h |
|
||||
| 7 | G + H · Puertos, cristales y Ethernet | L-49…L-52, L-56, L-57, L-39, L-44, L-66, L-47 | **Todos los puertos funcionan** (RS-485, RS-232, Ethernet) | 3 h |
|
||||
| 8 | J · Conectores y barrenos | L-40…L-43, L-58 | Que entre en la placa base de la V5.5 (MH4 y abrazadera) y los USB | 2 h |
|
||||
| 9 | K · Serigrafía | L-46, L-59 | Legible para ensamble y campo | 1.5 h |
|
||||
| 10 | L · Cierre | L-47, L-60, L-61 | Atributos de huella y fiduciales | 1 h |
|
||||
|
||||
**Total estimado: 23 h de layout**, más el DRC del paso 5.
|
||||
|
||||
!!! tip "Cómo acelerar sin saltarse nada"
|
||||
- **Subir avances a git** después de los bloques B y C (y después de E + F). Claude revisa cada avance mientras
|
||||
Michelle sigue con el siguiente bloque. Así los errores salen el mismo día y la re-auditoría final es corta.
|
||||
- **No repartir el mismo archivo `.kicad_pcb` entre dos personas.** KiCad no combina bien dos ediciones del PCB.
|
||||
- Dejar la serigrafía (bloque K) para el final: es lo único que se puede hacer rápido.
|
||||
|
||||
---
|
||||
|
||||
## Paso 5 — Michelle: DRC, la puerta de salida
|
||||
|
||||
- [ ] Rellenar **todas** las zonas.
|
||||
- [ ] DRC con las reglas nuevas (ya están en `.kicad_dru`): **0 errores de separación**, **0 sin conectar**.
|
||||
- [ ] Cerrar la aceptación completa de **L-48** (en la lista de Michelle).
|
||||
- [ ] `git push` del PCB.
|
||||
|
||||
---
|
||||
|
||||
## Paso 6 — Claude: re-auditoría del PCB
|
||||
|
||||
Con el PCB subido, Claude revisa (1–2 h):
|
||||
|
||||
- esquemático ↔ PCB sincronizados: 46 piezas nuevas colocadas, 28 DNP, huellas correctas;
|
||||
- las medidas de cada Blocker: ignición y 24 V a ≥ 0.5 mm en capas internas, `/SW_BAT` ≥ 2 mm, 9 vías en el pad de U6,
|
||||
vías bajo U18/U19, impedancia de las líneas RF, MH4 en su lugar, **JP2 puenteado 2-3**, U25 sin `LCSC Part`;
|
||||
- DRC propio con las reglas nuevas.
|
||||
|
||||
El resultado se publica aquí como **GO / NO-GO** con la lista de lo que falte.
|
||||
|
||||
---
|
||||
|
||||
## Paso 7 — Leo: archivos y pedido
|
||||
|
||||
- [ ] BOM y CPL con **Fabrication Toolkit**. Revisar que la línea de U25 diga **C524806 (TPS54360B)**, y que TP1–TP12 y
|
||||
JP1–JP6 no aparezcan.
|
||||
- [ ] Opciones del PCB como en la cotización del paso 2 (stackup con control de impedancia, ENIG, 1 oz interno, rayos X,
|
||||
vías tapadas).
|
||||
- [ ] Revisar rotaciones en la vista previa de JLC y el stock en el carrito.
|
||||
- [ ] Ordenar **20 prototipos**.
|
||||
|
||||
---
|
||||
|
||||
## Lo que NO detiene el pedido
|
||||
|
||||
- **Firmware 0.7.x (`board_v6.h`):** hace falta para probar las tarjetas, no para ordenarlas. Se puede empezar hoy con
|
||||
la [sección 6 del plan](v6-plan-correccion.md) y el [mapa de pines](v6-pinmap.md).
|
||||
- **Lo aceptado permanentemente** (20 puntos, sección 9 del plan): ya está decidido y documentado.
|
||||
|
||||
## Ligas
|
||||
|
||||
- [Plan de corrección y estado](v6-plan-correccion.md): decisiones, estado por hallazgo, puertos, lista completa de
|
||||
Michelle con cifras, lista de liberación (GO).
|
||||
- [Cambios de esquemático: resumen de las 4 pasadas](v6-cambios-resumen.md): qué cambió y dónde van las piezas nuevas.
|
||||
- [Mapa de pines MCU v6](v6-pinmap.md) · [Auditoría completa](v6-auditoria-completa.md) ([inglés](v6-full-audit.md)).
|
||||
288
docs/hardware/v6-puertos-sin-nueva-version.md
Normal file
288
docs/hardware/v6-puertos-sin-nueva-version.md
Normal file
@ -0,0 +1,288 @@
|
||||
---
|
||||
title: "EinarBoard v6 — Puertos y sin nueva versión (pasada 2, inglés)"
|
||||
tags: [project-drogheda, hardware, hbox, v6, esquematico, ports]
|
||||
project: Project Drogheda
|
||||
author: Helgen Technologies
|
||||
date: 2026-09-28
|
||||
version: 1.0
|
||||
status: FINAL — pass 2 of 3 (ports / no new version)
|
||||
audience: Michelle (layout), Leo, ingenieros
|
||||
---
|
||||
|
||||
# EinarBoard v6: ports end to end and the no-v6.1 close-out (v1.0)
|
||||
|
||||
!!! warning "EinarBoard v6 (`hbox-watchdog-v6`): en diseño, no se pide"
|
||||
Diseño nuevo con ZED-F9P y módem A7670SA soldados a bordo. **No es la V5.6** que se manda a fabricar esta semana (`hbox-watchdog-v5`, zócalos para simpleRTK2B y 4G NTRIP Master). Los hallazgos marcados «Impacto en V5.6» ya se aplicaron a la V5.6 y están en su informe de cambios.
|
||||
|
||||
!!! info "Pass 2 of 3 — ports and no new version"
|
||||
Spanish summary, final state per block and the combined layout delta:
|
||||
**[EinarBoard v6 — Cambios de esquemático: resumen de las 3 pasadas](v6-cambios-resumen.md)**.
|
||||
The final independent check ([pass 3](v6-revision-final.md)) passed this pass 26 / 27. The one FAIL was the
|
||||
`IND-SMD_MWSA0804S` land in §4.3 and in L-53: the correct land is pads **2.75 × 5.5 mm at ±3.375 mm**
|
||||
(gap 4.0 mm), courtyard **10.0 × 9.0 mm** (L-63). The schematic hash `f73f41a8…27ee` below was superseded by
|
||||
`2b394ef9…5f33` (C176 added).
|
||||
|
||||
|
||||
**Date:** 2026-09-28 · **Board:** `kicad/hbox-watchdog-v6.*` (HBOX RTK, Helgen Technologies) · **Input state:** the schematic after the apply pass (sha256 `d54e330d…`, netlist `apply/netlists/05-final.xml`; a fresh export was identical) · **Author:** Claude (ports and no-respin pass) · **Rules:** edited in place, span-scoped S-expression splices with a UUID guard, `.kicad_pcb` not touched, no git, backups in `kicad/_to_delete/v6-ports-20260928/`.
|
||||
|
||||
## Resumen (ES)
|
||||
|
||||
Se revisó cada puerto de la v6 corregida, de extremo a extremo (conector → protección → pasivos → transceptor/PHY → pin de MCU o módem → periférico de firmware), contra hojas de datos. **Todos los puertos funcionan como están dibujados después de este pase.** Se encontraron y corrigieron en el esquemático seis defectos que habrían dejado un puerto débil o fallando:
|
||||
|
||||
1. **RS-485:** el SP3485 sólo tiene ±2 kV HBM y fail-safe con entradas abiertas; además, con DE/RE̅ atados a RTS̅ del SC16IS752 (que queda en ALTO tras el reset), el transceptor **transmitía y bloqueaba el bus** durante el reset, en DFU o sin firmware. Se cambió U14 por **THVD1410DR** (mismo pinout, ±18 kV IEC, fail-safe con bus abierto, en corto o inactivo). Se añadió **U32 (inversor 74LVC1G04)**, así que el transceptor arranca en recepción. También se añadió **D39 SM712** en P11 y la opción de polarización R145/R146 (DNP).
|
||||
2. **RS-232:** el MAX3232 (sin especificación ESD) pasa a **TRS3232EIDR** (mismo pinout, ±8 kV IEC contacto).
|
||||
3. **Header TTL H4:** estaba en paralelo directo con la salida R1OUT del transceptor. Se añadió **R147 1 k**, así que un dispositivo TTL puede manejar RXB sin contienda.
|
||||
4. **Ethernet J10:** el LED amarillo (ACT) estaba **invertido** (pines 11/12), así que nunca encendía. El pin 8 (retorno del capacitor Bob-Smith de 1000 pF) estaba sin conectar; ahora va a GND.
|
||||
5. **SC16IS752:** las entradas CTSA̅/CTSB̅ estaban flotando; ahora van a GND.
|
||||
6. **Módem USB (J9):** se añadió **TP12 (1V8)** junto a TP8, para forzar el modo de descarga USB.
|
||||
|
||||
USB-C (J9 y J11) ya estaba correcto: CC1/CC2 tenían 5.1 kΩ a GND, D+/D− iban en ambas filas y VBUS no retro-alimenta. No hubo cambios.
|
||||
|
||||
Mapa I²C: **sin colisiones**. En el bus: SC7A20 0x18, PCF8574 0x20, SHT40 0x44, TMP102 0x48 y 0x49, SC16IS752 0x4D. Las direcciones posibles de los TMP102 (0x48–0x4B) no incluyen 0x4D.
|
||||
|
||||
Cierre de «no v6.1»: **H-03 hecho** (nueva huella `IND-SMD_MWSA0804S` con la tierra recomendada por Sunlord, usada en L2/L6/L8/L20) y **B-13 hecho** (K1 DNP; enlace directo PC6 → DIN_4G con R148 0 Ω). TP1–TP8 salen del BOM y del CPL. Se añaden 14 puntos a la lista de Michelle (L-49…L-62) y se aceptan 20 ítems permanentemente, cada uno con su razón. El único riesgo aceptado a conciencia en la ruta de potencia es **A-10**: no hay protección de sobretensión en VEH5V. La opción OVP del LTC4040 mueve el divisor PFI y cambia la recuperación del modo respaldo, y no puede validarse sin banco. Cada grupo se probó con diff de netlist: **lo esperado coincide exactamente con lo obtenido**. ERC: **0 errores** (134 warnings, igual que antes). SHA-256 final del esquemático: `f73f41a8…27ee`.
|
||||
|
||||
## 0. Summary
|
||||
|
||||
| Item | Result |
|
||||
|---|---|
|
||||
| Ports traced | 24 (every J/P/H/SW/TP ref plus the internal modem, GNSS and I²C interfaces) |
|
||||
| Port verdicts | 17 ✅ as drawn · 7 🔧 fixed now (RS-485, RS-232, H4, SC16IS752 CTS, Ethernet LEDs + Bob-Smith, modem USB boot pad, modem UART B-13) · 📐 layout items on 11 ports · ⚙ firmware items on 14 ports |
|
||||
| USB-C CC | **J9 and J11 both correct:** Rcc1/Rcc2 and R100/R101 = 5.1 kΩ 1 % (C23186) CC→GND; D+ A6/B6 and D− A7/B7 tied; no VBUS back-feed |
|
||||
| I²C collisions | **None** (map in §3) |
|
||||
| Schematic groups | P1 ports · N1 no-respin · C1 cleanup: **8 parts added, 0 removed, 41 field changes, 8 pin-net changes, 0 net-class changes**. Each group: expected == actual; composed = total, 0 differences |
|
||||
| ERC (kicad-cli 10 via KiCad MCP) | 0 errors after every group; warnings 134 → 134 |
|
||||
| Overlaps / wire crossings | 30 → 30 / 9 → 9 (all pre-existing; none involve a new part) |
|
||||
| BOM | all 298 fitted real parts have an LCSC number (TP1–TP12 and JP1–JP6 are now out of the BOM/CPL; the PF* power flags are virtual) |
|
||||
| New library file | `Drogheda-v6.pretty/IND-SMD_MWSA0804S.kicad_mod` (sha256 `dbf53557…`) |
|
||||
| Untouched | `.kicad_pcb` `6ddec80d…`, `.kicad_pro` `d577aa43…`, `.kicad_dru` `31ce0f4f…` |
|
||||
| Michelle's list | +14: L-49 … L-62 (§5) |
|
||||
| Accepted permanently | 20 items (§7); done now: 17 (§8) |
|
||||
|
||||
## 1. Port-by-port verification
|
||||
|
||||
Legend: ✅ works as drawn · 🔧 fixed now (schematic) · 📐 layout item added (L-nn) · ⚙ firmware item (§6).
|
||||
Datasheets used: TI THVD1410, TI SN65HVD72, MaxLinear SP3485, ADI/Maxim MAX3222-MAX3241, TI TRS3232E, NXP SC16IS752/762, WIZnet W5500 v1.1.0, the KiCad `Connector:RJ45_Hanrun_HR911105A_Horizontal` symbol (drawn from the Hanrun HR911105A sheet; see §1.6), Semtech/Littelfuse SM712, ADI LTC4040 Rev B, Sunlord MWSA-S series spec, and AOS AO4264E. Pin and net evidence comes from `ports/netlists/final.xml` (= `03-cleanup.xml`).
|
||||
|
||||
| # | Port | Chain (final) | Checks | Verdict | Evidence |
|
||||
|---|---|---|---|---|---|
|
||||
| 1 | **RS-485 (P11)** | P11.1 `/RS485_A`, P11.2 `/RS485_B`, P11.3 GND → **D39 SM712** (A/B → GND) · R82 120 Ω + JP5 (open) termination · R145/R146 390 Ω bias (DNP) → **U14 THVD1410DR** (6 A, 7 B, 8 VCC `/3V3` + C84, 5 GND) → 1 RO `/SER_RXA` → U10.4 RXA · 4 DI ← `/SER_TXA` U10.3 TXA · 2 RE̅ + 3 DE ← `/RS485_DE` ← **U32 74LVC1G04** ← `/SER_DEA` ← U10.1 RTSA̅ | A/B polarity: P11.1 = A = U14.6 ✅ · Pinout of THVD1410 D pkg = SP3485 (R, RE̅, DE, D, GND, A, B, VCC) ✅ · RTSA̅ is **HIGH after reset** (NXP DS). With the old direct tie, DE = 1 during reset, DFU and unflashed boards, so the node drove the bus (**bus hog**). U32 inverts it: receive at reset; auto-RS-485 with EFCR RTSCON=1, RTSINVER=0 ✅ · Fail-safe: SP3485 = open inputs only; THVD1410 = open, short and idle bus ✅ · ESD: SP3485 ±2 kV HBM only → THVD1410 ±18 kV IEC contact, ±30 kV HBM, EFT ±4 kV; surge by SM712 (−7/+12 V, 400 W 8/20 µs); THVD1410 bus abs max ±18 V ✅ · Termination by solder jumper (bus ends only) ✅ · 3.3 V supply, logic 3.3 V ✅ · Speed: THVD1410 500 kbps > SC16IS752 max 230.4 kBd at 3.6864 MHz ✅ | 🔧 📐 L-49/L-50/L-59 · ⚙ | `01-ports.xml`: `/RS485_DE` = {U14.2, U14.3, U32.4}; `/SER_DEA` = {U10.1, U32.2}; `/RS485_A` = {P11.1, U14.6, R82.1, D39.1, R145.2} |
|
||||
| 2 | **RS-232 (P12)** | P12.1 `/RS232_TX` ← U15.14 T1OUT · P12.2 `/RS232_RX` → U15.13 R1IN · P12.3 GND · **U15 TRS3232EIDR**: C85 C1± (1/3), C86 C2± (4/5), C87 V+ (2)→GND, C88 V− (6)→GND, all 100 nF; C89 100 nF VCC (16) `/3V3`; T1IN (11) ← `/SER_TXB` U10.23 TXB; R1OUT (12) → `/RS232_R1OUT` → **R147 1 k** → `/SER_RXB` U10.24 RXB; T2IN/R2IN → GND, T2OUT/R2OUT NC | Pinout identical to MAX3232 (1 C1+ … 16 VCC) ✅ · Pump caps 0.1 µF at 3.0–3.6 V per both datasheets ✅ · V+ cap to GND allowed ✅ · Unused TX input tied, RX input tied (5 kΩ internal) ✅ · Channel B of U10 ✅ · Direction: board TX on pin 1 (DTE-style, cross to the far end's RX) ✅ · ESD: MAX3232 (non-E) has **no ESD rating** → TRS3232E ±15 kV HBM, **±8 kV IEC contact**, ±15 kV air ✅ | 🔧 📐 L-51/L-59 · ⚙ | `/RS232_R1OUT` = {U15.12, R147.1} |
|
||||
| 3 | **TTL UART B (H4)** | H4.1 3V3, H4.2 `/SER_TXB` (U10.23 + U15.11), H4.3 `/SER_RXB` (U10.24 + R147.2), H4.4 GND | Before: H4.3 was hard-wired to U15 R1OUT, so an external TTL TX fought a CMOS output (R1OUT idles HIGH when R1IN is open). With R147: an external driver wins (≤ 3.3 mA, VIL ≈ 0.16 V with a 50 Ω driver); normal RS-232 RX delay 1 k × ~10 pF ≈ 10 ns ✅ · Use H4 **or** P12, not both at once | 🔧 · ⚙ | `/SER_RXB` = {U10.24, H4.3, R147.2} |
|
||||
| 4 | **SC16IS752 bridge (U10)** | I2C/SPI̅ (9) = `/3V3` → **I²C mode** · A0 (10), A1 (11) = GND → **0x9A = 7-bit 0x4D** · Y2 3.6864 MHz (C2238) + C82/C83 22 pF on XTAL1/2 (6/7) · IRQ̅ (15) open-drain → R81 10 k → `/3V3`, → U16.61 **PB8** · RESET̅ (5) → R80 10 k → `/3V3` (POR inside; no MCU control) · VDD (8) `/3V3` + C81 · ch A = RS-485, ch B = RS-232/H4 · CTSA̅ (2), CTSB̅ (16) → **GND** (were floating) · GPIO0–7 NC | Address table verified (A1=VSS, A0=VSS → 0x9A) ✅ · Crystal: divisors exact for 9600…230400 ✅ · IRQ̅ is open-drain and needs the pull-up; NXP quotes 1 k for fast edges, but 10 k only slows the de-assert edge (≈ 0.2 µs), which is fine for a level-read EXTI ✅ · POR exists, so R80 is enough; firmware issues IOControl.SRESET after every MCU reset ✅ · I²C max 400 kHz (the bus runs at 100 kHz, see #5) ✅ · Floating CTS inputs removed; GPIOs set to outputs in firmware | ✅ 🔧 (CTS) · 📐 L-57 · ⚙ | `03-cleanup.xml`: U10.2, U10.16 → GND |
|
||||
| 5 | **I²C1 bus** | PB6 SCL (U16.58) / PB7 SDA (U16.59), AF4; R30/R31 4.7 k to `/3V3`; U3, U10, U13, U26, U29, U31 | Map in §3: no collision ✅ · PCF8574T (C7605) is a **100 kHz** device, so the whole bus runs at 100 kHz · tr ≈ 0.85 × 4.7 k × ~80 pF ≈ 0.32 µs < 1 µs ✅ · sink 0.7 mA < 3 mA ✅ · ZED-F9P DDC (0x42) **not wired** (U18.44/45 NC), A7670 CI2C NC ✅ | ✅ · ⚙ | nets `/I2C_SCL`, `/I2C_SDA` |
|
||||
| 6 | **Ethernet (J10 + U11)** | U11 TXP/TXN (2/1) → J10.1 TD+ / J10.2 TD−, each 49.9 Ω (R92/R93) to `/3V3_ETH`, J10.4 TCT = `/3V3_ETH` · RXP/RXN (6/5) → J10.3 RD+ / J10.6 RD−, R94/R95 49.9 Ω to `/ETH_RCT` = J10.5 RCT + C97 6.8 nF → GND · J10.9 green A ← R96 330 Ω ← `/3V3_ETH`, J10.10 green K → U11.25 LINKLED · **J10.12 yellow A ← R97 330 Ω, J10.11 yellow K → U11.27 ACTLED** · **J10.8 → GND** · J10.7 NC · SH → GND · Y1 25 MHz HC-49 + C95/C96 33 pF · EXRES1 12.4 k 1 % · TOCAP 4.7 µF · 1V2O 10 nF · AVDD 100 nF ×6 + 10 µF/22 µF/100 µF · PMODE[2:0] = 111 via R84 (auto-neg) · RSVD23 → GND, RSVD38–42 NC · SPI2: CS̅ PB12, SCK PB13, MISO PB14, MOSI PB15 (AF5) · INT̅ PC0 · RST̅ PA15 + R140 4.7 k PD · 3V3_ETH from U12 MP1584EN, EN = `/ETH_PWR_EN` PD2 + R139 100 k PD | Terminations and centre taps = W5500 reference topology ✅ · LED polarity: the HR911105A symbol draws the yellow LED anode on pin 12 and cathode on pin 11; v6 had 11 = anode supply and 12 = W5500 ACTLED, so **ACT never lit** → swapped 🔧 · Pin 8 is the Bob-Smith 1000 pF return (symbol pin type power_in); it was NC with a flag, so the unused-pair termination floated (EMI/ESD) → GND 🔧 · Y1 load ≈ 19–20 pF for the CL 20 pF part ✅ · W5500 pin table: TOCAP 4.7 µF, 1V2O 10 nF, EXRES1 12.4 k, RSVD23 → GND, 38–42 NC ✅ · RSTn internal pull-up 62–112 k + PA15 JTDI pull-up vs 4.7 k → ≤ 0.66 V < VIL 0.8 V ✅ · MP1584 EN: 1 µA internal pull-up, 100 k → 0.1 V = off; PD2 3.3 V > 1.5 V = on ✅ · W5500 I/O 5 V-tolerant (no back-power through SPI/RST when 3V3_ETH is off) ✅ · J10 footprint `Connector_RJ:RJ45_Hanrun_HR911105A_Horizontal` = part C12074 ✅ | 🔧 📐 L-52 · ⚙ | `01-ports.xml`: J10.8 GND; `/ETH_ACTLED` = {J10.11, U11.27}; `/ETH_ACT_A` = {J10.12, R97.1} |
|
||||
| 7 | **USB-C DFU (J11)** | GCT USB4085-GF-A (C7095263, USB 2.0 Type-C) · CC1 A5 → R100 5.1 k → GND, CC2 B5 → R101 5.1 k → GND · D+ A6+B6 `/DFU_DP` → D14 → U16.45 **PA12** · D− A7+B7 `/DFU_DM` → D15 → U16.44 **PA11** · VBUS A4/A9/B4/B9 `/DFU_VBUS` → D16 · → D13 SS34 → `/LDO_IN` (U17), OR-ed with D12 from SYS5V · SH → GND · BOOT0 = SW2 to 3V3 + R98 10 k PD; PB2 = R99 10 k PD; HSE Y3 25 MHz | Sink Rd on both CC ✅ · flip support ✅ · PA11/PA12 = OTG_FS DM/DP ✅ · VBUS back-feed: D12 blocks VBUS → SYS5V, D13 blocks the board → host; USB powers only the 3V3 domain ✅ · VBUS sensing is not needed (PA9 is TP9): ROM DFU on F411 runs without it; firmware disables it ✅ · PA10 idles high in DFU via Rdfu1 100 k (so the ROM USART1 detector sees no noise) ✅ · ESD D14–D16 PESD5V0S1BA (full speed tolerates their capacitance; V5.5 proven; routing fixed by L-42) ✅ | ✅ · 📐 L-42 (existing), L-58/L-59 · ⚙ | nets `/DFU_*` |
|
||||
| 8 | **USB-C modem (J9)** | USB4085 · CC1 A5 → Rcc1 5.1 k, CC2 B5 → Rcc2 5.1 k → GND · D+ A6+B6 `/USB_DP` → U30.3/4 → U19.27 · D− A7+B7 `/USB_DM` → U30.1/6 → U19.28 · VBUS → U30.5 + U19.24 (detect only; feeds no rail) · SH → GND · U19.6 USB_BOOT → TP8, **TP12 = `/1V8_MODEM`** beside it | Rd on both CC ✅ · both D rows tied ✅ · USBLC6-2SC6 (~3.5 pF) suits high speed ✅ · no back-feed path (VBUS only reaches the modem detect pin and the USBLC6 rail pin) ✅ · J9 works only while firmware keeps the modem powered ⚙ · forced download needs VDD_EXT on USB_BOOT at power-on: there was no 1.8 V pad beside TP8 → TP12 🔧 | ✅ 🔧 (TP12) · 📐 L-41/L-43 (existing), L-55/L-58/L-59 · ⚙ | `/1V8_MODEM` gains TP12 |
|
||||
| 9 | **P1 24 V + ignition** | DIBO DB128V-5.0-5P (C424683, 5.0 mm, 16 A) on `TerminalBlock_Phoenix_MKDS-1,5-5…Horizontal` · 1 `/24V_IN` → F2 3 A → `/VIN_FUSED` (D10, Q23) · 2 GND · 3 `/IGN_IN` → D35 SMBJ33A + Rig1 22 k → `/IGN_SENSE` (PA5 ADC, ratio 0.0833) · 4 GND · 5 NC | Apply-pass fixes V1-01/A-01/F-02 in place ✅ · pin numbering 1–5 = land 1–5 ✅ · 5.0 mm land fits a KF128-class block; confirm hole/pin and wire-entry side (L-62) | ✅ · 📐 L-62 | `/IGN_IN` = {P1.3, Rig1.1, D35.1} |
|
||||
| 10 | **P2 bench 5 V** | XH-2 (C158012) · 1 `/VEH5V`, 2 GND | Bench-only input; no reverse or over-voltage protection (A-10 and A-20c accepted, §7; silk per L-46) | ✅ (bench use) | — |
|
||||
| 11 | **P3 battery** | XH-3 (C144394) · 1 `/BAT_PLUS` (L6, U6.23), 2 GND, 3 `/NTC` (R55 10 k to VIN; U6.17; R137 tap → PC5) | 3 A/contact vs 1.4 A charge (R50 1.43 k), backup average 0.6–1 A, LTE-only peaks ≈ 2 A (D9) ✅ | ✅ (G-07 accepted) | — |
|
||||
| 12 | **P4 fan** | XH-2 · 1 `/5V_FAN` (= VEH5V via JP1 bridged), 2 `/FAN_RET` → Q2 AO3400A (PA6) + D2 flyback | ✅ | ✅ · ⚙ | — |
|
||||
| 13 | **P5 cut-off + JP6** | XH-2 · `/MAIN5V`–`/SYS5V`; JP6 open bypass | ✅ | ✅ | — |
|
||||
| 14 | **P6 external reset** | XH-2 · 1 `/NRST` (D36 PESD5V0S1BA, C104 100 nF, SW1, TP5, U16.7), 2 GND | ✅ (renumber hazard handled by silk, L-46) | ✅ | — |
|
||||
| 15 | **P7/P8 NTC probes** | XH-2 · `/NTC_TEMP` (R42 10 k to 3V3, C24, D37, PB1 ADC IN9) · `/NTC2` (R126, C157, D38, PC4 IN14) | ✅ | ✅ · ⚙ | — |
|
||||
| 16 | **P9 panel LED** | XH-2 · 1 `/LED_A` (R3 120 Ω from 3V3), 2 `/LED_K` → Q4 (PB0); on-board D1 in parallel | Works with a panel LED of Vf ≤ 2.2 V (it shares ≈ 11 mA with D1) | ✅ (usage rule) | — |
|
||||
| 17 | **P10 external RGB** | XH-4 · 1 3V3 (common anode), 2–4 cathodes via R89–R91 120 Ω → PCF8574 P4–P6 (sink) | Red about 11 mA; blue/green (Vf about 2.8–3.0 V at 3.3 V) run at a few mA, so they are dimmer. Functional | ✅ | — |
|
||||
| 18 | **J12 GNSS antenna** | U.FL (C88374) → `/RF_ANT_GNSS`: D27, C143 DC block → U18.2; bias L21 68 nH ← `/ANT_BIAS` ← U28 TPS2552 (75 mA limit, EN̅ = F9P ANT_OFF, FAULT̅ → PC2) | Apply-pass C-01 in place ✅ | ✅ · 📐 L-30/L-33 (existing) · ⚙ | — |
|
||||
| 19 | **J13 LTE antenna** | U.FL → `/RF_ANT_LTE`: D28 PESD0402-240, R118 0 Ω, C146/C147 DNP π → U19.60 | Apply-pass B-03 in place ✅ | ✅ · 📐 L-31 (existing) | — |
|
||||
| 20 | **J14 nano-SIM / U22 eSIM** | J14 (C2977286, pre-order) C1 `/SIMB_VDD` (C171) via R131 0 Ω; C2/C3/C7 via R132–R134 22 Ω; ESD D23–D25 on the modem side; U22 + R127–R130 DNP | ✅ (B-09 applied; ESD move per L-38) · SIM detect unused (USIM1_DET NC) | ✅ · ⚙ | — |
|
||||
| 21 | **SWD / test pads** | TP3 SWDIO (PA13), TP4 SWCLK (PA14), TP5 NRST, TP6 GND, TP7 3V3, TP9 PA9 TX | Complete SWD set, no connector (D-12) → pads grouped in one row (L-56) | ✅ · 📐 L-56 | — |
|
||||
| 22 | **SW1 reset / SW2 BOOT0** | SW1 NRST→GND; SW2 3V3→BOOT0 (R98 PD) | ✅ | ✅ | — |
|
||||
| 23 | **Modem UART (internal)** | PC6 USART6_TX → **R148 0 Ω** → `/DIN_4G` (R143 100 k PU) → U23 → modem RXD; modem TXD → U24 → `/DOUT_4G` → R106 1 k → PC7 and U27 → F9P RXD2 | K1 relay path removed (B-13, §4) 🔧 | 🔧 · 📐 L-54 · ⚙ | `/DIN_4G` ∋ R148.2; `/USART6_TX` = {U16.37, R148.1, K1.10 (DNP)} |
|
||||
| 24 | **GNSS UARTs (internal)** | USART2 PA2/PA3 ↔ F9P UART1; F9P TXD2 → PA10 (RX-only) + Rdfu1 PU | ✅ (unchanged; `/USART1_RX` no longer reaches K1's contact in practice, since K1 is DNP) | ✅ · ⚙ | — |
|
||||
|
||||
### 1.6 Note on the HR911105A LED pin evidence
|
||||
The Hanrun PDF could not be read here (image-only on every mirror). The pin mapping comes from KiCad's official symbol `Connector:RJ45_Hanrun_HR911105A_Horizontal`, whose datasheet link points to the LCSC copy of the Hanrun drawing, and from the copy already embedded in the v6 sheet. Both draw the **yellow LED with its anode on pin 12 and cathode on pin 11**, and the **green LED with its anode on pin 9 and cathode on pin 10**. They also both type pin 8 as the power_in return of the 1000 pF Bob-Smith capacitor. The v6 wiring contradicted its own symbol drawing. The original designer's note said "G+/G−/Y+/Y− – VERIFY". Bench check on the first board: both LEDs light with the link up.
|
||||
|
||||
## 2. Datasheet facts that decided the fixes
|
||||
|
||||
| Part | Fact | Consequence |
|
||||
|---|---|---|
|
||||
| SP3485 (MaxLinear) | Fail-safe only for open inputs; ESD ±2 kV HBM; no IEC rating | Too weak for a cabled port on port machinery → THVD1410DR |
|
||||
| THVD1410 (TI) | SOIC-8 = R, RE̅, DE, D, GND, A, B, VCC; fail-safe open/short/idle; IEC contact ±18 kV, air ±25 kV, HBM ±30 kV; EFT ±4 kV; bus abs max ±18 V; 3–5.5 V; 500 kbps; DE 2 MΩ PD, RE̅ 2 MΩ PU; 100 nF decoupling | Drop-in on U14's land; C84 is its 100 nF |
|
||||
| SN74LVC1G04 DBV | 1 NC, 2 A, 3 GND, 4 Y, 5 VCC | U32 on `SOT-23-5` |
|
||||
| SC16IS752 (NXP) | A1=VSS, A0=VSS → 0x9A (0x4D) · RTSA̅/RTSB̅ = logic 1 after reset · EFCR[4] RTSCON, EFCR[5] RTSINVER · POR plus RESET̅ · IRQ̅ open-drain · I²C ≤ 400 kbit/s · GPIO inputs after reset | Inverter needed for receive-by-default; firmware SRESET and GPIO direction |
|
||||
| MAX3232 (non-E) | No ESD rating; 0.1 µF pump caps at 3.0–3.6 V | → TRS3232E |
|
||||
| TRS3232E (TI) | Same 16-pin order as MAX3232; ±15 kV HBM, ±8 kV IEC contact, ±15 kV air; 0.1 µF at 3.3 V | Drop-in on U15's narrow SOIC-16 land (H-01 fixed it in the apply pass) |
|
||||
| SM712 | 2 I/O pins + common pin 3; −7/+12 V standoff, 400 W 8/20 µs (Semtech SM712.TCT) | Standard RS-485 surge clamp; matches the THVD1410's ±18 V bus rating |
|
||||
| W5500 v1.1.0 | TOCAP 4.7 µF, 1V2O 10 nF, EXRES1 12.4 k 1 %; RSVD23 → GND, RSVD38–42 NC (internal pull-down); RSTn low ≥ 500 µs, internal pull-up; SCSn internal pull-up; 5 V-tolerant I/O; SPI guaranteed ≥ 33.3 MHz | Confirms the apply-pass values and the firmware sequence |
|
||||
| LTC4040 Rev B | OVP = MN1 in series VPWR→VIN with IGATE shared with MN2; 6.2 k to OVSNS; 6.1/6.4/6.7 V trip; IGATE pulled to GND in backup; recovery starts when the PFI comparator sees input power; PFI abs max = max(VIN, VBAT, VSYS) + 0.3 V | Why A-10 was **not** applied blind (§7) |
|
||||
| Sunlord MWSA-S spec Table 4-1 | MWSA0804S: A 8.2±0.3, B 8.8±0.4, C 3.8±0.2, D 1.4±0.3 (electrode width), E 5.0±0.3 (electrode length); recommended land I 2.75, J 4.0, H 5.5 (typ) | New footprint (§4) |
|
||||
|
||||
## 3. I²C address map (I²C1, PB6/PB7, 4.7 k pull-ups to `/3V3`, run at 100 kHz)
|
||||
|
||||
| 7-bit address | Device | Ref | Strap | Range the part can take |
|
||||
|---|---|---|---|---|
|
||||
| 0x18 | SC7A20 accelerometer (INT1 → PB9) | U26 | SDO/SA0 = GND, CS = VDD (I²C) | 0x18–0x19 |
|
||||
| 0x20 | PCF8574T I/O expander (battery gauge LEDs, RGB) | U13 | A0–A2 = GND (NXP PCF8574T/3, not the "A" version) | 0x20–0x27 |
|
||||
| 0x44 | SHT40-AD1B humidity/temperature | U3 | fixed | 0x44 |
|
||||
| 0x48 | TMP102 charger sensor | U29 | ADD0 = GND | 0x48–0x4B |
|
||||
| 0x49 | TMP102 modem-area sensor | U31 | ADD0 = V+ | 0x48–0x4B |
|
||||
| 0x4D | SC16IS752 dual UART | U10 | A1 = A0 = GND | 0x48–0x57 |
|
||||
| (0x42) | ZED-F9P DDC | U18 | **not connected** (pins 44/45 NC) | — |
|
||||
|
||||
**No collisions.** Only the SC16IS752 range (0x48–0x57) overlaps the TMP102 range (0x48–0x4B). It sits at 0x4D, outside the four TMP102 values, so no TMP102 strap change can reach it. **No strap change needed.** Bus speed limit: PCF8574 = 100 kHz, so the bus runs at 100 kHz. At that speed the SC16IS752 moves about 10 kB/s in total, which is enough for Modbus RTU at ≤ 38.4 kBd on RS-485 plus RS-232 at ≤ 57.6 kBd (FIFO + IRQ).
|
||||
|
||||
## 4. Schematic fixes applied, with proof
|
||||
|
||||
Method: the apply-pass editor (`apply/tools/ops.py`: span-scoped splices on the original text, a UUID multiset guard, canonical KiCad node layout). Each group was written as its own script (`ports/tools/gP_ports.py`, `gN_norespin.py`, `gC_cosmetic.py`), with the expected change set written before commit. After each commit to the Mac (unique staged path each time, sha256 checked on the Mac afterwards) the netlist was exported with the KiCad MCP (kicad-cli), diffed semantically with `ndiff.py` and asserted; ERC and the overlap and wire-crossing checks ran after each group.
|
||||
|
||||
### 4.1 Hashes
|
||||
|
||||
| State | `hbox-watchdog-v6.kicad_sch` sha256 | Backup |
|
||||
|---|---|---|
|
||||
| Pre (apply-pass final) | `d54e330d189910afd58e18fc7cd498bdb3e6e5b7b3c4472b6cae7f95650b34c4` | `_to_delete/v6-ports-20260928/00-pre/` (+ pro, dru, pretty, old PDF), `01-ports/…pre` |
|
||||
| After P1 ports | `26f50aaa7dc7795dcc5aec12b1ed8d8c1a762c09c8d63b0190e36d1078679a0e` | `01-ports/…post`, `02-norespin/…pre` |
|
||||
| After N1 no-respin | `3aceff28ac2d91624c37216e2cb83a53f37503452288a86bd52331e211d413c1` | `02-norespin/…post`, `03-cleanup/…pre` |
|
||||
| **Final (after C1 cleanup)** | **`f73f41a878655896211b429c6f30d82f13d6e0b7eba78468a6bb0473de8a27ee`** | `03-cleanup/…post`; container `ports/hbox-watchdog-v6.kicad_sch.final` |
|
||||
| `Drogheda-v6.pretty/IND-SMD_MWSA0804S.kicad_mod` (new) | `dbf535570b133bcb05e6ee7861f06e62cb54d554520488650e0b3c5429d5a71f` | new file (nothing overwritten) |
|
||||
| Schematic PDF `03-Architecture-Hardware/hbox-watchdog-v6-schematic.pdf` | `a2c94a49…` → `41241140201f8f19098b1e1c37d3b256b1b6d83df7d338e6204c0fdf0e7191b0` | old copy in `00-pre/`; new copy `ports/hbox-watchdog-v6-schematic.pdf` |
|
||||
|
||||
### 4.2 Netlist proof (expected written before commit, asserted after)
|
||||
|
||||
| Group | Netlists | Expected (added / removed / field / pin-net / class) | Actual | Result |
|
||||
|---|---|---|---|---|
|
||||
| P1 ports | `00-baseline` → `01-ports` | 7 / 0 / 11 / 6 / 0 | 7 / 0 / 11 / 6 / 0 | **MATCH** |
|
||||
| N1 no-respin | `01-ports` → `02-norespin` | 1 / 0 / 30 / 0 / 0 | 1 / 0 / 30 / 0 / 0 | **MATCH** |
|
||||
| C1 cleanup | `02-norespin` → `03-cleanup` | 0 / 0 / 2 / 2 / 0 | 0 / 0 / 2 / 2 / 0 | **MATCH** |
|
||||
| **Total** | `00-baseline` → `03-cleanup` | composition of P1+N1+C1 | 8 / 0 / 41 / 8 / 0 | **0 differences** (`ports/netlist_diff_total.md`) |
|
||||
|
||||
The 8 pin-net changes: U14.2 and U14.3 `/SER_DEA` → `/RS485_DE`; U15.12 `/SER_RXB` → `/RS232_R1OUT`; J10.8 NC → GND; J10.11 `/ETH_ACT_A` → `/ETH_ACTLED`; J10.12 `/ETH_ACTLED` → `/ETH_ACT_A`; U10.2 and U10.16 NC → GND. No existing symbol changed its UUID (asserted per group). Netlists are in `kicad/_to_delete/v6-ports-20260928/netlists/` and `ports/netlists/` (`final.xml` = `03-cleanup.xml`, sha256 `a5555894…b5b3`).
|
||||
|
||||
### 4.3 What changed
|
||||
|
||||
| ID | Ref | Change | LCSC (verified: stock / package) |
|
||||
|---|---|---|---|
|
||||
| P-1 | U14 | SP3485EN (C8963) → **THVD1410DR**, TI; symbol `Interface_UART:SP3485EN` kept (identical pinout); value text `THVD1410` | **C2671345** (8 006 / SOIC-8; JLC "pre-ordered chips") |
|
||||
| P-1 | U14.2, U14.3 | `/SER_DEA` → new `/RS485_DE` | — |
|
||||
| P-1 | **U32** (new) | SN74LVC1G04DBVR, `74xGxx:74LVC1G04`, `Package_TO_SOT_SMD:SOT-23-5`: 2 `/SER_DEA`, 4 `/RS485_DE`, 5 `/3V3`, 3 GND, 1 NC | **C7827** (163 327 / SOT-23-5) |
|
||||
| P-1 | **C175** (new) | 100 nF 0603 at U32 | C14663 (Basic) |
|
||||
| P-1 | **D39** (new) | SM712.TCT, `Diode:SM712_SOT23`, `SOT-23`: 1 `/RS485_A`, 2 `/RS485_B`, 3 GND | **C12067** (49 238 / SOT-23) |
|
||||
| P-4 | **R145, R146** (new, **DNP**) | 390 Ω 0603: `/3V3`–`/RS485_A`, `/RS485_B`–GND (bias option) | C23151 (Basic, 311 280) |
|
||||
| P-2 | U15 | MAX3232ESE+T (C15846) → **TRS3232EIDR**, TI; symbol `Interface_UART:MAX3232` kept; value text `TRS3232E` | **C308878** (3 564 / SOIC-16 narrow) |
|
||||
| P-2 | U15.12 | `/SER_RXB` → new `/RS232_R1OUT` | — |
|
||||
| P-2 | **R147** (new) | 1 kΩ 0603: `/RS232_R1OUT` → `/SER_RXB` | C21190 (Basic, 39.8 M) |
|
||||
| P-3 | J10.11 / J10.12 | labels swapped: 11 = `/ETH_ACTLED` (yellow K), 12 = `/ETH_ACT_A` (yellow A) | — |
|
||||
| P-3 | J10.8 | NC flag → wire + GND label (Bob-Smith return) | — |
|
||||
| P-5 | **TP12** (new) | `TestPoint_Pad_D1.5mm` on `/1V8_MODEM`, excluded from BOM and CPL | no part |
|
||||
| C | U10.2, U10.16 | CTSA̅/CTSB̅ NC flags → GND | — |
|
||||
| H-03 | L2 (DNP), L6, L8, L20 | footprint `Inductor_SMD:L_Bourns-SRU8028_8.0x8.0mm` → **`Drogheda-v6:IND-SMD_MWSA0804S`** (parts unchanged: C17700171 / C17700165 / C17700171 / C17700167) | — |
|
||||
| B-13 | K1, Q6, D6, R40, R41 | → **DNP** (relay and its driver) | — |
|
||||
| B-13 | **R148** (new) | 0 Ω 0603: `/USART6_TX` → `/DIN_4G` (never together with K1) | C21189 (Basic, 13.9 M) |
|
||||
| J-05 | TP1–TP8 | `in_bom no`, `in_pos_files no` (copper pads, not parts) | — |
|
||||
| C | text notes | BLOCK M note (RS-485 direction and EFCR, H4 rule) and BLOCK P note (K1 DNP) updated | — |
|
||||
|
||||
**New footprint `IND-SMD_MWSA0804S`** (KiCad 9/10 format, `Drogheda-v6.pretty`): two SMD round-rect pads 2.75 × 4.0 mm (rratio 0.1) at x = ±4.125 mm (inner gap 5.5 mm, outer extent ±5.5 mm); F.Fab body 8.2 × 8.8 mm; F.CrtYd 11.5 × 9.7 mm; silk lines at y = ±4.6 mm between the pads. The pad axis is the body's 8.2 mm A dimension, where the 1.4 mm electrodes sit (the inter-electrode gap of 8.2 − 2 × 1.4 = 5.4 mm matches H = 5.5). Each pad covers 1.35 of the 1.4 mm electrode depth, plus a 1.4 mm toe beyond the body, and 4.0 of the 5.0 mm electrode length. The electrode is now **≈ 77 % wetted plus a toe fillet**, against 55–64 % on the SRU8028 land. The audit's courtyard estimate (9.4 × 9.8 mm) left out the pad overhang; the true courtyard is 11.5 × 9.7 mm (L-53). The KiCad MCP cannot list project-local libraries, but the ERC footprint-link check passed with the new footprint (no `footprint_link_issues`).
|
||||
|
||||
### 4.4 ERC (kicad-cli 10 via KiCad MCP)
|
||||
0 errors before and after every group; 134 warnings before and after (the same pin-type, library-mismatch and not-in-library families listed in the change report §5). The new symbols (74LVC1G04, SM712_SOT23) are embedded fresh from the KiCad 10 libraries; Device:R and TestPoint are existing cached symbols. Overlaps 30 → 30 and wire crossings 9 → 9: all pre-existing, none involving a new part. I checked the new clusters in the rendered PDF (crops of U10/U14/U32/D39, U15/R147/R145–146, J10, K1/R148, TP12).
|
||||
|
||||
## 5. Additions to Michelle's layout list (continue after L-48)
|
||||
|
||||
49\. **RS-485 direction (P-1):** U32 (SOT-23-5) + C175 within 5 mm of U14 pins 2/3; C175 ≤ 2 mm from U32.5; `/RS485_DE` ≤ 10 mm; `/SER_DEA` U10.1 → U32.2. C84 ≤ 2 mm from U14.8.
|
||||
|
||||
50\. **RS-485 protection at P11 (P-1/P-4):** D39 SM712 ≤ 5 mm of copper from P11.1/P11.2, A/B routed flow-through (P11 → D39 pads → U14), D39.3 to GND with 2 vias ≤ 1 mm; R82 + JP5 beside P11 (termination at the bus end); R145/R146 (DNP 0603) beside P11. Route A/B as a pair (0.3 mm, gap ≤ 0.3 mm), ≥ 0.5 mm from other nets, nothing crossing on the adjacent layer.
|
||||
|
||||
51\. **RS-232 / H4 (P-2):** R147 ≤ 3 mm from U15.12; H4.3 connects on the U10 side (`/SER_RXB`), not at U15. U15's pump caps C85–C88 ≤ 3 mm and its decoupler **C89** ≤ 2 mm from U15.16. Correction to L-37: C84 is U14's decoupler, not U15's.
|
||||
|
||||
52\. **J10 (P-3):** pin 8 → GND with a ≥ 0.5 mm track to 2 GND vias placed **outside** the MAGJACK_NO_POUR keep-out (no pour under the magnetics). Re-route pins 11/12: J10.12 = `/ETH_ACT_A` (from R97), J10.11 = `/ETH_ACTLED` (to U11.27).
|
||||
|
||||
53\. **MWSA0804S land on L2/L6/L8/L20 (H-03):** the footprint swaps to `Drogheda-v6:IND-SMD_MWSA0804S` on *Update PCB from Schematic*. Pads go from 2.0 × 3.2 mm at ±3.9 mm to 2.75 × 4.0 mm at ±4.125 mm; the courtyard is **11.5 × 9.7 mm** (+0.6 mm per side on the pad axis, +0.4–0.6 mm across). Re-check neighbours and keep L-11/L-21/L-22/L-23 distances measured to the new pads. Update only through the schematic sync, never with a global "update footprints from library" (L-45).
|
||||
|
||||
54\. **B-13:** place R148 (0603) on the shortest path U16.37 (PC6) → U23.7 (`/DIN_4G`). K1, Q6, D6, R40, R41 are DNP; keep their footprints, with no copper change other than R148's two connections. Silk "K1 XOR R148".
|
||||
|
||||
55\. **TP12 beside TP8** (2.54 mm centre spacing) so tweezers can bridge them; both reachable with the lid open.
|
||||
|
||||
56\. **Debug pad row (D-12):** TP3 SWDIO, TP4 SWCLK, TP5 NRST, TP6 GND, TP7 3V3, TP9 PA9-TX in one straight row at 2.54 mm pitch, ≤ 30 mm of track from U16, silk labels. A 1×6 pogo clip or header can then be pressed on; no connector part needed.
|
||||
|
||||
57\. **SC16IS752 (U10):** Y2 + C82/C83 ≤ 5 mm from U10.6/7, no inner-layer track under them (extends L-39 to Y2); C81 ≤ 2 mm from U10.8.
|
||||
|
||||
58\. **USB-C CC resistors:** Rcc1/Rcc2 ≤ 5 mm from J9.A5/B5; R100/R101 ≤ 5 mm from J11.A5/B5.
|
||||
|
||||
59\. **Port silkscreen (extends L-46):** P11 "RS-485 A+ B− GND"; P12 "RS-232 TX RX GND"; JP5 "TERM"; R145/R146 "BIAS DNP"; H4 "UART-B TTL 3V3 TX RX GND"; J9 "MODEM USB"; J11 "DFU"; TP8/TP12 "USB_BOOT / 1V8"; P2 "5 V ONLY, BENCH".
|
||||
|
||||
60\. **Footprint attributes (J-05):** TP1–TP12 and JP1–JP6 set to SMD and "exclude from BOM/position files" on the board (matches the schematic now); then re-enable the DRC check `footprint_type_mismatch`.
|
||||
|
||||
61\. **Fiducials:** three global fiducials (1.0 mm copper, 2.0 mm mask opening) on F.Cu at three corners (LGA U18/U19 and 0.5 mm-pitch parts). The audit listed them as "optional"; no v6.1 means fit them now.
|
||||
|
||||
62\. **P1 check:** confirm that the DIBO DB128V-5.0-5P (C424683) pins fit the MKDS-1,5 land's holes (5.0 mm pitch) and that its wire entry faces the harness side of the enclosure. This is a check only; no change is expected.
|
||||
|
||||
Order notes for the same pass: pre-order **THVD1410DR C2671345** (JLC pre-order category, like U21 C2862740 and J14 C2977286). P11 and P12 are **pluggable headers** (DEGSON 15EDGRC-3.5-03P): buy the mating plugs (15EDGK-3.5-03P, 2 per board) with the harness, since they are not in the board BOM.
|
||||
|
||||
## 6. Firmware notes per port (FW 0.7.x, `board_v6.h`)
|
||||
|
||||
1. **SC16IS752 (U10, I²C1 0x4D, 100 kHz):** `BOARD_SER_XTAL_HZ 3686400`; divisor = 3 686 400/(16·baud): 9600 → 24, 19 200 → 12, 38 400 → 6, 57 600 → 4, 115 200 → 2. After every MCU reset write IOControl.SRESET (bit 3), because RESET̅ has no MCU line. Enable the FIFOs. **IODir = 0xFF, IOState = 0x00** (GPIO0–7 as outputs, driven low: no floating inputs). IRQ̅ on **PB8** (EXTI8, falling, no internal pull; R81 is external): service RHR/THR/LSR until IIR says no interrupt pending. CTSA̅/CTSB̅ are tied low, so leave auto-CTS (EFR[7]) off.
|
||||
2. **RS-485 (channel A):** **EFCR = 0x10 (RTSCON = 1, RTSINVER = 0).** RTSA̅ goes LOW while transmitting, and U32 turns that into DE = 1; idle and reset leave the transceiver in receive. Never set RTSINVER (with U32 fitted it would invert the logic). Modbus RTU: time the 3.5-character gaps on the MCU; line turnaround is automatic after the last stop bit. Termination (JP5) and bias (R145/R146, DNP) are hardware options only.
|
||||
3. **RS-232 (channel B) and H4:** plain 8N1, no flow control. H4 and P12 share channel B: use one at a time. H4 pin 3 can be driven by a TTL device (R147).
|
||||
4. **Ethernet (U11, SPI2 PB13/PB14/PB15 AF5, CS̅ PB12 GPIO, INT̅ PC0, RST̅ PA15, power PD2):** at boot drive PA15 LOW and PD2 LOW before anything else. Power-up: SPI pins low → PD2 HIGH → wait ≥ 2 ms for 3V3_ETH → keep RST̅ LOW ≥ 500 µs → release → wait 1 ms (PLL) → SPI mode 0 at ≤ 21 MHz → check VERSIONR = 0x04 → PHYCFGR link. PC0 needs no pull; enable EXTI0 only while PD2 is HIGH. Off / battery: RST̅ LOW, SPI pins LOW or analog, PD2 LOW. LEDs are driven by the PHY (no firmware).
|
||||
5. **USB DFU (J11):** ROM DFU (BOOT0 button + NRST) needs HSE 25 MHz (Y3). In the application's USB CDC (u-center passthrough) on OTG_FS PA11/PA12, **disable VBUS sensing** (PA9 is the debug-TX pad, not VBUS).
|
||||
6. **Modem USB (J9):** J9 enumerates only while the modem is powered (PC10 MODEM_PWR_EN + PWRKEY sequence). Add a service command that holds the modem on for FOTA/debug. Forced download: short TP8–TP12 at modem power-on (hardware procedure, no firmware).
|
||||
7. **Modem UART:** USART6 PC6 TX now reaches the modem **directly through R148** (no K1): drop every BYP_CTRL/Mode-B relay step and keep **PB5 LOW** (driver DNP). PC7 RX via R106 1 k; 115 200 Bd. PC9 STATUS has a hardware pull-down.
|
||||
8. **I²C sensors:** 0x18 SC7A20 (INT1 → PB9, EXTI9); 0x20 PCF8574 (P0–P3 battery-gauge LEDs, P4–P6 RGB cathodes on P10, active LOW); 0x44 SHT40; 0x48 TMP102 charger (`tchg`); 0x49 TMP102 modem (`tmodem`). Keep I²C1 at **100 kHz** (PCF8574 limit). The SC7A20 WHO_AM_I read at 0x18 also serves as the v6 board identity check before any v6-only pin is driven (D-08, §7).
|
||||
9. **ADC ports:** PB1 IN9 (P7 NTC), PC4 IN14 (P8 NTC2), PC5 IN15 (pack NTC tap), PA5 IN5 ignition (ratio 0.0833), PA4 IN4 5 V sense; compute VDDA from VREFINT.
|
||||
10. **Other ports:** P4 fan on PA6 as GPIO on/off (TIM3 stays free for PPS); P9 panel LED on PB0 (Q4); P6 is a hardware reset (no firmware). SIM: no detect line (USIM1_DET NC), so keep SIM hot-swap detection disabled in the modem.
|
||||
|
||||
## 7. Accepted permanently
|
||||
|
||||
| # | ID | Item | Reason it is safe for the product's life |
|
||||
|---|---|---|---|
|
||||
| 1 | **A-10** | No over-voltage protection on VEH5V (TPS54360B high-side short, or > 6 V into P2) | It takes a component failure or bench misuse. The field input is the cabinet's regulated, current-limited 24 V (DDR-60G-24, D1), and F2 3 A caps the energy. The datasheet OVP option (MN1 + 6.2 k, sharing IGATE with Q7) also moves the PFI divider to the raw side and changes how backup mode recovers. A mistake there would break normal operation on every board, which is worse than the rare fault it guards against, and it cannot be validated without a bench cycle. P2 gets a "5 V ONLY, BENCH" silk label (L-59). |
|
||||
| 2 | D-08 | Board-ID strap | Decision D8: firmware-only. The v6 is identified at boot by the SC7A20 WHO_AM_I at 0x18 (v6-only part) and the F9P answering on USART2, before any v6-only pin is driven. Binary names carry the board (memory rule). PD2 is taken by ETH_PWR_EN and PA9 by the debug pad. |
|
||||
| 3 | E-06 (option) | Low-capacitance ESD array between the magjack and U11 | The HR911105A magnetics isolate the cable (1500 Vrms), the WIZnet reference design has no array, and the cabling stays inside the cabinet. J10.8 (Bob-Smith return) is fixed now. |
|
||||
| 4 | E-07 | PoE | Not a requirement (Leo: ports must work; no PoE mentioned). The recorded decision is an external splitter. |
|
||||
| 5 | A-20a | U12 MP1584EN → AP64350 | U12 is now PD2-gated (E-01), runs only on vehicle power and is proven on V5.5. A swap would need a new compensation/RT design and a different land, which adds risk for no functional gain. |
|
||||
| 6 | G-07 | P3 XH-3 → XH-5/VH | 3 A per contact vs 1.4 A charge (R50 1.43 k), 0.6–1 A backup average, and ≈ 2 A LTE-only peaks (D9). XH-3 keeps the fielded 1S4P packs compatible. |
|
||||
| 7 | G-06 | P2-only power back-feeds VEH5V → U25 body diode → P1.1 (≈ 4 V) | Benign; with A-01 the Q10/U2 branch is DNP, so nothing on `/24V` is powered. Documented for the bench procedure. |
|
||||
| 8 | F-14 (option) | One USBLC6 at J11 instead of D14–D16 | Full-speed USB tolerates the PESD5V0S1BA capacitance (proven on V5.5). The stub problem is solved by routing (L-42). |
|
||||
| 9 | G-08 (option) | 100 Ω series on NRST | D36 (PESD5V0S1BA) plus C104 100 nF already clamp and filter the P6 cable; a series R would split `/NRST` for no measurable gain. |
|
||||
| 10 | J-03 | Retype `unspecified` library pins | Cosmetic. The warnings were checked net by net (single drivers, no conflicts), pin types do not reach the netlist, BOM or PCB, and the 134-warning baseline is recorded, so a new warning is found by diffing against it. |
|
||||
| 11 | J-04 (re-link) | 10 "not found" symbols (+ TPS2552) not copied into a library | Cosmetic. The embedded copies make the schematic self-contained, and pin → pad → net was checked on 25 parts (H-09). Re-linking would change 11 lib_ids for zero electrical effect. |
|
||||
| 12 | B-09 (option) | ESD on `/SIM_VDD` (array) | The SIM is inserted once at installation inside the enclosure. Data, CLK and RST have D23–D25 (moved next to J14 by L-38), and VDD has C171 100 nF at J14. |
|
||||
| 13 | A-16 | Populate R124/R125 (U25 UVLO) | The board always sees the cabinet's regulated 24 V (D1), so the 4.3–5.8 V input dropout band is never reached in service. |
|
||||
| 14 | A-18 (+ R123 option) | U25 compensation | The datasheet example with ≥ 60° phase margin (audit estimate) needs no change; the 0.3 → 2.5 A step is part of bring-up. |
|
||||
| 15 | A-19 | ISO 16750-2 load dump | The cabinet DC-DC isolates the board from the alternator bus. SMCJ33A/SMBJ33A survive 36 V/60 min and ISO 7637 fast pulses; F2 opens behind them if a TVS ever shorts. |
|
||||
| 16 | A-20b | F1 3 A PPTC now protects only the F9P LDO branch | Harmless and not needed for protection; keeping it avoids a footprint change. |
|
||||
| 17 | C-05 (option) | C143 100 nF → 47 pF C0G DC block | 100 nF X7R 0402 is ESL-dominated at L1/L2 (≈ 3–4 Ω); insertion loss < 0.01 dB after a ≥ 25 dB antenna LNA. |
|
||||
| 18 | D-06 (option) | D5 BAT54 → BAT54S | verify_2: optional once the SMBJ33A (D35) sits at P1.3 (applied). |
|
||||
| 19 | A-03/A-04 (option) | R121/R122 at 0.1 % | 5.18–5.46 V at 1 % meets the LTC4040 VIN ≤ 5.5 V and the governor thresholds; no 0.1 % LCSC parts in the DB. |
|
||||
| 20 | A-13 (option) | CLPROG → ADC | No ADC pin is left (PC5 went to the pack NTC). CLPROG stays on TP1 for bench current measurement. |
|
||||
|
||||
## 8. Done now
|
||||
|
||||
| # | ID | What | Where |
|
||||
|---|---|---|---|
|
||||
| 1 | P-1 (new) | RS-485 transceiver → THVD1410DR (IEC ESD, fail-safe on open/short/idle bus) | Schematic (U14) |
|
||||
| 2 | P-1 (new) | Receive-by-default direction: U32 inverter + C175 | Schematic + L-49 |
|
||||
| 3 | P-1 (new) | RS-485 surge TVS D39 SM712 at P11 | Schematic + L-50 |
|
||||
| 4 | P-4 (new) | RS-485 bias option R145/R146 (DNP) | Schematic + L-50 |
|
||||
| 5 | P-2 (new) | RS-232 transceiver → TRS3232EIDR (IEC ESD) | Schematic (U15) |
|
||||
| 6 | P-2 (new) | H4 contention fixed: R147 1 k R1OUT → SER_RXB | Schematic + L-51 |
|
||||
| 7 | P-3 (new) | J10 yellow LED polarity (pins 11/12) | Schematic + L-52 |
|
||||
| 8 | P-3 / E-06 | J10.8 Bob-Smith return → GND | Schematic + L-52 |
|
||||
| 9 | P-5 (new) | TP12 1V8 pad for modem USB forced download | Schematic + L-55 |
|
||||
| 10 | C (new) | SC16IS752 CTSA̅/CTSB̅ tied to GND | Schematic |
|
||||
| 11 | **H-03** | MWSA0804S footprint per the Sunlord land; L2/L6/L8/L20 re-pointed | Library + schematic + L-53 |
|
||||
| 12 | **B-13** | K1 relay path removed: K1/Q6/D6/R40/R41 DNP, R148 0 Ω PC6 → DIN_4G | Schematic + L-54 |
|
||||
| 13 | J-05 / H-09 | TP1–TP8 out of the BOM and CPL | Schematic + L-60 |
|
||||
| 14 | D-12 (option) | SWD/debug access as one 2.54 mm pad row | L-56 |
|
||||
| 15 | FHJ note | Fiducials | L-61 |
|
||||
| 16 | L-37 (correction) | U15 decoupler is C89 (not C84) | L-51 |
|
||||
| 17 | C | Block notes and value texts updated (no overlap on U14/U15) | Schematic |
|
||||
|
||||
Already closed by the apply pass and so not repeated here: every §7.1/§7.2 item, the D19 Minors, F-52 (modem TMP102 0x49), B-15, G-03, G-04, G-08 diodes, and J-04's flag and stub cleanup. Layout-only Minors and Notes (A-14, B-08, E-06 routing, F-14, F-17, F-18, G-05, J-02, C-09, D-15, F-21, A-20c silk) are in Michelle's L-1…L-48 list. Firmware-only Notes (B-14, B-16, C-08, D-13) are in the audit §8 and §6 above.
|
||||
|
||||
## 9. Anything that would still stop a port from working
|
||||
None found in the schematic after this pass. Conditions that remain:
|
||||
|
||||
- **Layout:** L-49…L-62, plus the existing L-30/31/33 (RF), L-41/42/43 (USB) and L-44 (Ethernet pairs), must be done. In particular, the new MWSA land (L-53) must be placed before routing the switchers.
|
||||
- **Order logistics:** pre-order THVD1410DR, U21 and J14; buy the P11/P12 mating plugs.
|
||||
- **Bench confirmation on the first board:** J10 LINK (green) and ACT (yellow) both light; RS-485 idles in receive during MCU reset and in DFU (DE low); an RS-485 loopback at 9 600 and 115 200 Bd with EFCR = 0x10; RS-232 loopback; an H4 TTL adapter drives RXB with RS-232 idle; J9 enumerates with the modem on, and download mode works with TP8–TP12 shorted.
|
||||
|
||||
## 10. Files
|
||||
- This report: `/home/claude/v6audit/ports/2026-09-28_Drogheda_EinarBoard-v6_Ports-and-No-Respin_v1.0.md`
|
||||
- Final schematic copy: `ports/hbox-watchdog-v6.kicad_sch.final` (sha256 `f73f41a8…27ee`); PDF: `ports/hbox-watchdog-v6-schematic.pdf` and on the Mac `03-Architecture-Hardware/hbox-watchdog-v6-schematic.pdf` (sha256 `41241140…91b0`)
|
||||
- Final netlist: `ports/netlists/final.xml` (= `03-cleanup.xml`); per-group diffs: `ports/out/{P1-ports,N1-norespin,C1-cleanup}/netlist_diff.md`; total: `ports/netlist_diff_total.md`
|
||||
- BOM: `ports/bom_final_ungrouped.csv` (also in `_to_delete/v6-ports-20260928/`)
|
||||
- Scripts: `ports/tools/` (`gP_ports.py`, `gN_norespin.py`, `gC_cosmetic.py`, `pcommon.py`, `q.py`); footprint source `ports/work/IND-SMD_MWSA0804S.kicad_mod`
|
||||
- Mac backups: `kicad/_to_delete/v6-ports-20260928/` (`00-pre/`, `01-ports/`, `02-norespin/`, `03-cleanup/`, `netlists/`, `scratch/`)
|
||||
- **Git (for Leo; nothing was run here):** in the `kicad` submodule commit `hbox-watchdog-v6.kicad_sch` and `Drogheda-v6.pretty/IND-SMD_MWSA0804S.kicad_mod`, push to Gitea `HBox_PCB`, then bump the parent gitlink (`git -c diff.ignoreSubmodules=none commit …`). If KiCad is open on v6, close it **without saving** before Update PCB.
|
||||
223
docs/hardware/v6-revision-final.md
Normal file
223
docs/hardware/v6-revision-final.md
Normal file
@ -0,0 +1,223 @@
|
||||
---
|
||||
title: "EinarBoard v6 — Revisión final independiente (pasada 3, inglés)"
|
||||
tags: [project-drogheda, hardware, hbox, v6, esquematico, final-check]
|
||||
project: Project Drogheda
|
||||
author: Helgen Technologies
|
||||
date: 2026-09-28
|
||||
version: 1.0
|
||||
status: FINAL — pass 3 of 3 (independent check)
|
||||
audience: Michelle (layout), Leo, ingenieros
|
||||
---
|
||||
|
||||
# EinarBoard v6: final independent check of the ports pass, and closure of N1/N2 (v1.0)
|
||||
|
||||
!!! warning "EinarBoard v6 (`hbox-watchdog-v6`): en diseño, no se pide"
|
||||
Diseño nuevo con ZED-F9P y módem A7670SA soldados a bordo. **No es la V5.6** que se manda a fabricar esta semana (`hbox-watchdog-v5`, zócalos para simpleRTK2B y 4G NTRIP Master). Los hallazgos marcados «Impacto en V5.6» ya se aplicaron a la V5.6 y están en su informe de cambios.
|
||||
|
||||
!!! info "Pass 3 of 3 — final independent check"
|
||||
Spanish summary, final state per block and the combined layout delta:
|
||||
**[EinarBoard v6 — Cambios de esquemático: resumen de las 3 pasadas](v6-cambios-resumen.md)**.
|
||||
Checks [pass 2](v6-puertos-sin-nueva-version.md), closes N1/N2 from the verification of [pass 1](v6-cambios-esquematico.md) (Spanish)
|
||||
and fixes the inductor land. Final schematic sha256 `2b394ef927a42823bde3f2a0408860d7c6d3784ab7d7ae3e66f46681f02f5933`.
|
||||
|
||||
|
||||
**Date:** 2026-09-28 · **Board:** `kicad/hbox-watchdog-v6.*` (HBOX RTK, Helgen Technologies) · **Input:** sch `f73f41a8…27ee` (ports-pass output, verified on the Mac and in the staged copy) · **Baseline for the ports diff:** `apply/netlists/05-final.xml` · **Author:** Claude (final checker, independent of the apply and ports passes) · **Rules followed:** in-place edit with a backup first, span-scoped splices with a UUID multiset guard, expected changes written before editing, semantic netlist proof, `.kicad_pcb` not touched, no git, a unique staged path per commit plus sha256 on the Mac afterwards.
|
||||
|
||||
## Resumen (ES)
|
||||
|
||||
**Pase de puertos: 26 PASS, 1 FAIL.** Revisé el pase de puertos por mi cuenta: diff propio desde `05-final.xml`, conectividad derivada directamente del `.kicad_sch` (idéntica al netlist de kicad-cli: 353 redes, 0 diferencias) y hojas de datos de los fabricantes. Todos los cambios del esquemático son intencionales y correctos. Confirmé:
|
||||
|
||||
- **THVD1410** con el mismo pinout que el SP3485, 3–5,5 V y fail-safe abierto/corto/inactivo.
|
||||
- **U32 74LVC1G04** en SOT-23-5 (1 NC, 2 A, 3 GND, 4 Y, 5 VCC). Según NXP, RTS̅ del SC16IS752 queda en ALTO tras el reset, así que el transceptor está en recepción durante el reset, en DFU y sin firmware. EFCR = 0x10 coincide con la tabla 30 de NXP.
|
||||
- **SM712** bien orientado (pines 1 y 2 a A/B, pin 3 a GND).
|
||||
- **TRS3232E** con el mismo pinout y capacitores de 0,1 µF a 3,3 V.
|
||||
- **R147 1 k** y los **CTS̅ a GND**, correctos según NXP.
|
||||
- **LED ACT de J10 (11/12) y J10.8 a GND**: confirmados con el **plano de Hanrun** (amarillo con ánodo en 12 y cátodo en 11; P8 = «CHS GND», con la nota «Connect CHS GND to PCB Ground»). El pase de puertos no había podido leer ese plano. Los LED del W5500 son activos en bajo.
|
||||
- **B-13**: un solo excitador en `/DIN_4G` (PC6 → R148), sin contienda.
|
||||
- **TP1–TP12 y JP1–JP6** fuera del BOM y del CPL.
|
||||
- **Los 8 números LCSC** existen, con stock y encapsulado correcto.
|
||||
|
||||
**El FAIL es la huella H-03 `IND-SMD_MWSA0804S`.** El pase de puertos intercambió las cotas J y H de Sunlord. La figura 4-1 de la especificación MWSA50230000 define I = largo del pad (2,75), **J = separación entre pads (4,0)** y **H = alto del pad (5,5)**, y los electrodos están sobre la cota **B = 8,8 mm**. La huella tenía pads de 2,75 × 4,0 a ±4,125 mm (separación 5,5) y el cuerpo dibujado girado. **Lo corregí:** pads de 2,75 × 5,5 a ±3,375 mm (separación 4,0, extensión 9,5), cuerpo de 8,8 × 8,2 y courtyard de 10,0 × 9,0. El netlist no cambia (el nombre de la huella es el mismo). Esto sustituye las cifras de L-53.
|
||||
|
||||
**N2 cerrado:** se añadió **C176** de 100 nF 0603 (C14663) entre `/3V3_GNSS` y GND, junto a U28 en la hoja, con la nota «≤ 2 mm from U28 pin 1». Lo esperado coincide exactamente con lo obtenido.
|
||||
|
||||
**N1 cerrado sin cambio:** la hoja de datos de SCTF (serie 3X, SMD3225-4P) da **1 Xtal, 2 GND, 3 Xtal, 4 GND**, con la misma numeración de vista superior que la huella de KiCad. El mapeo `Crystal_GND24` es correcto. Además, gm_crit = 0,50 mA/V (el F411 admite 1 mA/V) y la CL efectiva queda entre 9 y 11 pF para un cristal de 10 pF.
|
||||
|
||||
**ERC:** 0 errores, 134 warnings (igual que antes). Superposiciones 30 → 30 y cruces 9 → 9 (todos preexistentes). **SHA-256 final del esquemático:** `2b394ef927a42823bde3f2a0408860d7c6d3784ab7d7ae3e66f46681f02f5933`. Ningún puerto queda bloqueado por el esquemático. Hay dos avisos que no bloquean: RXA flota durante la transmisión RS-485 (se resuelve en firmware), y la polaridad de USB_BOOT del A7670 es contradictoria entre documentos de SIMCom (hay procedimiento alterno en banco). Se añaden L-63…L-66 a la lista de Michelle.
|
||||
|
||||
## 0. Summary
|
||||
|
||||
| Item | Result |
|
||||
|---|---|
|
||||
| Ports-pass verification | **26 PASS · 1 FAIL** (the H-03 land pattern; fixed here, §3) |
|
||||
| Diff 05-final → ports output (my own code) | 8 added, 0 removed, 8 pin-net changes, 0 net-class changes; every change is on the intended list |
|
||||
| Sch-derived connectivity vs kicad-cli netlist | identical (353 nets, 0 partition differences, 0 name mismatches), at start and at the end |
|
||||
| N2 | **C176** 100 nF 0603 C14663, `/3V3_GNSS`–GND, beside U28; expected == actual |
|
||||
| N1 | **No change**: SCTF datasheet confirms pads 1/3 = crystal, 2/4 = GND |
|
||||
| Fixes | **F2**: `Drogheda-v6.pretty/IND-SMD_MWSA0804S.kicad_mod` land corrected to the Sunlord drawing (no netlist effect) |
|
||||
| ERC (kicad-cli via KiCad MCP) | 0 errors, 134 warnings, before and after |
|
||||
| Overlaps / wire crossings | 30 → 30 / 9 → 9 (all pre-existing; C176 involved in none) |
|
||||
| BOM | 299 fitted real parts, all with LCSC numbers (298 + C176); TP1–TP12 and JP1–JP6 excluded; PF* virtual |
|
||||
| **Final sch sha256** | **`2b394ef927a42823bde3f2a0408860d7c6d3784ab7d7ae3e66f46681f02f5933`** |
|
||||
| Untouched | `.kicad_pcb` `6ddec80d…36bf`, `.kicad_pro` `d577aa43…6ce`, `.kicad_dru` `31ce0f4f…831` |
|
||||
|
||||
## 1. Ports-pass verification table
|
||||
|
||||
Method: I staged the Mac sch (sha256 `f73f41a8…27ee`, equal to the ports pass's claim and its container copy) and re-exported the netlist with the KiCad MCP (`netlists/00-start.xml`). I wrote my own semantic diff against `apply/netlists/05-final.xml` (`work/fdiff.py`, xml.etree only). I derived connectivity directly from the `.kicad_sch` with the apply-verifier's `schconn.py`/`derive_compare.py` after reading them. I used the manufacturers' datasheets through WebFetch and, for image-only PDFs, rendered them with pdf.js in the Mac's browser pane. The screenshots are in `final/evidence/`. The container and Mac shell proxies block ti.com, nxp.com and lcsc.com (403); I did not route around that.
|
||||
|
||||
| # | Item | Intended | Found | Verdict | Evidence / citation |
|
||||
|---|---|---|---|---|---|
|
||||
| 1 | Completeness of the change set | only the ports/no-respin items | Diff 05-final → current: +C175, D39, R145, R146, R147, R148, TP12, U32; 0 removed; pin changes J10.8/11/12, U10.2/16, U14.2/3, U15.12; field changes on D6, J10, K1, L2/L6/L8/L20, Q6, R40, R41, TP1–TP8, U14, U15; 0 class changes. Nothing else | PASS | `work/diff_apply_to_start.json`; equals `ports/netlists/final.xml` (0 differences) |
|
||||
| 2 | U14 → THVD1410DR pinout | = SP3485 (R, RE̅, DE, D, GND, A, B, VCC) | TI D pkg: 1 R, 2 RE̅ (2 MΩ PU), 3 DE (2 MΩ PD), 4 D, 5 GND, 6 A, 7 B, 8 VCC. Netlist: 1 `/SER_RXA`, 2+3 `/RS485_DE`, 4 `/SER_TXA`, 5 GND, 6 `/RS485_A`, 7 `/RS485_B`, 8 `/3V3` | PASS | TI THVD14x0 datasheet, pin functions table |
|
||||
| 3 | U14 supply | 3.3 V | "3 V to 5.5 V"; U14.8 on `/3V3`; C84 100 nF on `/3V3` (TI: 100 nF per supply) | PASS | TI datasheet |
|
||||
| 4 | U14 fail-safe / ESD claims | open, short, idle; IEC ESD | "failsafe-high when … open-circuit … short-circuit … idle bus"; IEC 61000-4-2 ±18 kV contact, ±25 kV air; HBM ±30 kV; EFT ±4 kV; bus abs max ±18 V; R = Z when RE̅ = H | PASS | TI datasheet §7, function tables |
|
||||
| 5 | U32 74LVC1G04 package pinout | DBV: 1 NC, 2 A, 3 GND, 4 Y, 5 VCC | TI DBV table matches; KiCad `SOT-23-5` pads 1-2-3 on the left, 4-5 on the right (standard). Netlist: 2 `/SER_DEA` (U10.1 RTSA̅), 4 `/RS485_DE` (U14.2+3), 5 `/3V3` (+C175), 3 GND, 1 NC | PASS | TI SN74LVC1G04 datasheet; `SOT-23-5.kicad_mod` |
|
||||
| 6 | Direction polarity, receive in reset/DFU/no firmware | DE = RE̅ = NOT(RTSA̅) | RTSA̅ HIGH → DE = 0, RE̅ = 0 → receiver on, driver off. RTSA̅ LOW → DE = 1, RE̅ = 1 → transmit | PASS | logic plus items 7 and 8 |
|
||||
| 7 | SC16IS752 RTS̅ after reset | HIGH | NXP Table 5 "Output signals after reset": "RTS HIGH"; MCR and EFCR "all bits cleared"; MCR[1] = 0 → "force RTS output to inactive (HIGH)" | PASS | NXP SC16IS752/762 datasheet |
|
||||
| 8 | Firmware note EFCR = 0x10 | RTSCON = 1, RTSINVER = 0 | EFCR bit 4 RTSCON "1: transmitter controls RTS pin"; bit 5 RTSINVER "0: RTS = 0 during transmission and RTS = 1 during reception"; §9.1 "asserts the RTS pin (logic 0) once the host writes data … de-asserts (logic 1) once the last bit … has been transmitted". 0x10 is right; bit 0 (9-bit mode) is not needed | PASS | NXP Table 30, §9.1/9.2 |
|
||||
| 9 | D39 SM712 orientation | pins 1/2 to the lines, 3 to GND | Semtech: "pins 1 and 2 have a working voltage of 12 volts … connected to the differential data line pairs … pin 3 … 7 volts … connected to ground". Netlist: 1 `/RS485_A`, 2 `/RS485_B`, 3 GND. KiCad `SOT-23` pads 1/2 on one side, 3 opposite | PASS | Semtech SM712 datasheet Rev 6.0 (Mouser copy) |
|
||||
| 10 | R145/R146 bias, DNP | 3V3 → A, B → GND, 390 Ω, DNP | R145 `/3V3`–`/RS485_A`, R146 `/RS485_B`–GND, both DNP; A > B idle = logic 1 (THVD1410: V_ID > V_TH+ → R = H). 3.3 × 60/(780 + 60) = 0.236 V with two 120 Ω terminations | PASS | netlist; TI receiver function table |
|
||||
| 11 | U15 → TRS3232EIDR pinout | = MAX3232 | TI: 1 C1+, 2 V+, 3 C1−, 4 C2+, 5 C2−, 6 V−, 7 DOUT2, 8 RIN2, 9 ROUT2, 10 DIN2, 11 DIN1, 12 ROUT1, 13 RIN1, 14 DOUT1, 15 GND, 16 VCC; netlist matches pin for pin; narrow SOIC-16 land | PASS | TI TRS3232E datasheet |
|
||||
| 12 | U15 charge-pump caps | 0.1 µF at 3.3 V | TI table at 3.3 V ± 0.3 V: C1 = 0.1 µF, C2–C4 = 0.1 µF, "C3 … VCC or GND". C85 C1±, C86 C2±, C87 V+ → GND, C88 V− → GND, C89 VCC, all 100 nF C14663. Unused DIN2 to GND ("connected to VCC or ground") | PASS | TI datasheet |
|
||||
| 13 | R147 1 k on R1OUT (H4) | R1OUT → R147 → `/SER_RXB`; H4.3 on the U10 side | `/RS232_R1OUT` = {U15.12, R147.1}; `/SER_RXB` = {U10.24, H4.3, R147.2}. An external TTL driver sees ≤ 3.3 mA of contention; RC ≈ 10 ns | PASS | netlist |
|
||||
| 14 | CTSA̅/CTSB̅ tied to GND | GND, auto-CTS off | NXP: CTS̅ LOW = ready; "only affects the transmit and receive operations when Auto-CTS function is enabled via EFR[7]". Tied LOW is the safe choice: it can never block TX, even if auto-CTS gets enabled | PASS | NXP Table 2 |
|
||||
| 15 | J10 ACT LED pin 11/12 swap | yellow A = 12, K = 11 | **Hanrun HR911105A drawing, p.1 schematic:** "Yellow LED" with pin 12 on the anode and pin 11 on the cathode; "Green LED" with pin 9 on the anode and pin 10 on the cathode. Netlist: 12 `/ETH_ACT_A` (R97 330 Ω → `/3V3_ETH`), 11 `/ETH_ACTLED` (U11.27); 9 `/ETH_LNK_A` (R96), 10 `/ETH_LINKLED` (U11.25) | PASS | `evidence/hanrun_HR911105A_p1_schematic.jpg` (rendered from lcsc.com/datasheet/C12074.pdf) |
|
||||
| 16 | J10.8 → GND | Bob-Smith return | Hanrun: "CHS GND P8", through 1000 pF 2 kV to the 4 × 75 Ω node; note "Connect CHS GND to PCB Ground". P7 = NC. P4/P5 = TX/RX centre taps (J10.4 `/3V3_ETH`, J10.5 `/ETH_RCT`) | PASS | same page |
|
||||
| 17 | W5500 LED drive polarity | active-low, so the LEDs light | W5500 v1.1.0: LINKLED (25) "Low: Link is established"; ACTLED (27) "Low: Carrier sense from the active PMD"; VOL 0.4 V at IOL 8 mA. LED current ≈ (3.3 − 2.0)/330 ≈ 4 mA (HR911105A LEDs: Vf 1.8–2.8 V, 20 mA rated) | PASS | WIZnet W5500 datasheet v1.1.0; Hanrun p.2 |
|
||||
| 18 | **H-03 footprint `IND-SMD_MWSA0804S` land** | Sunlord recommended land | **Wrong.** Sunlord MWSA-S spec (SPEC No. MWSA50230000) Fig. 4-1 (applies to MWSA0412S–MWSA1265S): **I = pad length along the axis, J = gap between pads, H = pad height across**; electrodes at the **B** ends (D = depth along B, E = height along A). Table 4-1 MWSA0804S: A 8.2±0.3, B 8.8±0.4, C 3.8±0.2, D 1.4±0.3, E 5.0±0.3, I 2.75, J 4.0, H 5.5. The ports pass read J as pad width and H as the gap (and took A as the electrode axis), which gave 2.75 × **4.0** pads with a **5.5** gap at ±4.125 mm. Correct: 2.75 × **5.5** pads with a **4.0** gap at **±3.375 mm** | **FAIL → fixed (F2)** | `evidence/sunlord_MWSA-S_fig4-1_land.jpg`, `…fig4-1_body.jpg`; Table 4-1 row read from the PDF text layer |
|
||||
| 19 | H-03 body vs courtyard | body fits the courtyard | The old courtyard (11.5 × 9.7) did enclose the body at maximum tolerance in either orientation, but the F.Fab outline was rotated (8.2 on the pad axis instead of 8.8). Fixed with item 18: body 8.8 × 8.2, courtyard 10.0 × 9.0 (max of pads 9.5 / body 9.2 on x, body 8.5 on y, plus 0.25) | PASS (after F2) | §3 |
|
||||
| 20 | B-13 topology | PC6 USART6_TX → R148 → `/DIN_4G` → U23 (B → A) → modem RXD | `/USART6_TX` = {U16.37, R148.1, K1.10 (DNP)}; `/DIN_4G` = {R148.2, R143.2 100 k PU, U23.7 1B, K1.5/6 (DNP), R108.1 (DNP, never-fit)}; U23.5 DIR = GND → "B data to A" (1B input, 1A output); `/DIN_4G_M` = {U23.2, U19.10 **RXD**, R108.2 (DNP)}; U23 VCC(A) = `/1V8_MODEM`, VCC(B) = `/3V3` | PASS | netlist; evidence `ic_pins_U19.csv` (pin 10 RXD) |
|
||||
| 21 | Drivers on `/DIN_4G` and neighbouring nets | no two outputs on one net | **Before (05-final):** `/DIN_4G` driven only through K1 COM, from either NC = F9P TXD2 (`/USART1_RX`) or NO = PC6, never both. **After:** `/DIN_4G` has one driver, PC6 via R148; `/USART1_RX` has one driver, F9P TXD2 (U18.27), with PA10 as input and Rdfu1 as PU; `/DIN_4G_M` has one driver, U23.1A; `/BYP_CTRL` (PB5) is now unloaded (R40 DNP); `/KCOIL` and `/Q6_BASE` are all DNP. Fitting K1 together with R148 would put F9P TXD2 against PC6 (both notes say "never") | PASS | §1.1 table |
|
||||
| 22 | TP12 (1V8) | 1V8 pad beside TP8 for forced download | TP12 on `/1V8_MODEM` (U19.15 VDD_1V8/_EXTVDD). **SIMCom "A7670 Series Hardware Design V1.00"** (A7670C/E/SA): USB_BOOT pin 6 B-PD; "pull the USB_BOOT pin to 1.8V, then apply VBAT … to enter the download mode". **"A7670 & SIM7070 & A7672X Compatible Design V1.02":** A7670X pin 6 marked "●" = "cannot be pulled up before the module powered up"; "pull up the USB_BOOT pin to 1.8V for A7670". The v6 symbol names the pin `USB_BOOT●`. **Conflict:** "A7672X/A7670X Series Hardware Design V1.03" lists A7670SA and gives USB_BOOT B-PU with "pull the USB_BOOT pin to GND". TP12 matches two SIMCom documents; a GND fallback is recorded (A2, L-65) | PASS (with note A2) | SIMCom documents as cited |
|
||||
| 23 | TP1–TP8 out of BOM/CPL | `in_bom no`, `in_pos_files no` | TP1–TP12 and JP1–JP6 all `in_bom no`, `in_pos_files no`, `on_board yes`; none appears in the kicad-cli BOM | PASS | sch flags; `bom_final_ungrouped.csv` |
|
||||
| 24 | New/changed LCSC numbers | exist, package, stock | C2671345 THVD1410DR SOIC-8, 8 006 (Extended, **pre-order category**) · C7827 SN74LVC1G04DBVR SOT-23-5, 163 327 · C12067 SM712.TCT SOT-23, 49 238 · C308878 TRS3232EIDR SOIC-16 (narrow), 3 564 · C14663 100 nF 0603 X7R 50 V, Basic, 37.5 M · C23151 390 Ω 0603, Basic, 311 280 · C21190 1 kΩ 0603, Basic, 39.8 M · C21189 0 Ω 0603, Basic, 13.9 M. Inductors unchanged: C17700171 (470), C17700165 (646), C17700167 (1 675) | PASS | `get_jlcpcb_part` (all 11) |
|
||||
| 25 | ERC | 0 errors | 0 errors / 134 warnings at start (same families as reported) | PASS | KiCad MCP `run_erc` |
|
||||
| 26 | Sch ↔ netlist | derived = exported | 353 = 353 nets, 0 differences, 0 name mismatches (variant MR, −1, wire-interior on) | PASS | `derive_compare.py` |
|
||||
| 27 | Overlaps / crossings | not worsened | 30 / 9. The two crossings on U10 (x = 551.18) and the four on U15 pre-date the ports pass (21 wires added, 0 removed, none of them among the crossings) | PASS | MCP checks; wire diff vs `ports/state/00-pre.kicad_sch` |
|
||||
|
||||
### 1.1 Drivers per net, before and after (B-13)
|
||||
|
||||
| Net | Before (05-final, K1 fitted) | After (current) | Outputs fighting? |
|
||||
|---|---|---|---|
|
||||
| `/DIN_4G` | K1 COM (5/6), R143 100 k PU, U23.7 input, R108 DNP | **R148 ← PC6** (single driver), R143 PU, U23.7 input; K1 and R108 DNP | No |
|
||||
| `/USART6_TX` | U16.37 PC6, K1.10 (NO) | U16.37 PC6, R148.1; K1.10 DNP | No |
|
||||
| `/USART1_RX` | U18.27 F9P TXD2, U16.43 PA10 input, Rdfu1 PU, K1.1 (NC) | U18.27, PA10, Rdfu1; K1.1 DNP | No |
|
||||
| `/DIN_4G_M` | U23.2 (1A out), U19.10 RXD, R108 DNP | unchanged | No |
|
||||
| `/BYP_CTRL` | PB5 → R40 → Q6 → K1 coil | PB5 only (R40 DNP): set it as output LOW or analog in firmware | — |
|
||||
|
||||
When the MCU is in reset or DFU, PC6 is Hi-Z and R143 holds `/DIN_4G` HIGH (UART idle). With the modem off, 74LVC2T45 Ioff isolates the A side.
|
||||
|
||||
### 1.2 Advisories (not failures; nothing to change in the schematic)
|
||||
|
||||
- **A1. RXA floats during RS-485 transmit.** With RE̅ tied to DE, THVD1410 R = Z whenever DE = 1 (TI receiver table), and NXP documents no pull-up on RXA. TI's own typical application ties R straight to the UART RX, so this is not a datasheet violation and does not stop the port. The SP3485 behaved the same way. **Firmware:** after each frame, wait for LSR[6] (TEMT), reset the RX FIFO (FCR[1]), read LSR to clear any error flags raised during TX, and only then arm reception. An alternative is EFCR[1] RXDISABLE while transmitting. A 10 k pull-up on `/SER_RXA` would make this unnecessary, but it is an optional robustness item, not an error, so it was not added.
|
||||
- **A2. USB_BOOT polarity conflict in SIMCom documents** (item 22). The bench procedure is to short TP8–TP12 at modem power-on; if the download port does not enumerate on J9, short TP8 to GND instead. L-65 keeps a GND point within reach.
|
||||
- **A3. Cosmetic:** pre-existing text crowding at U14 value / R82 / JP5 and C85–C88 on U15 (already in the 30-overlap baseline). No electrical effect.
|
||||
- **A4.** The ports report quotes the SM712 at 400 W (8/20 µs, the LCSC description); the Semtech Rev 6.0 sheet lists a higher peak pulse power class. Either value suits a cabinet-internal RS-485 run.
|
||||
|
||||
## 2. N1 and N2
|
||||
|
||||
### N2: TPS2552 input decoupling (U28)
|
||||
TI TPS255x: "Input voltage; connect a 0.1 µF or greater ceramic capacitor from IN to GND as close to the IC as possible." U28 DBV pin 1 = IN = `/3V3_GNSS`. The existing C170 (100 nF on `/3V3_GNSS`) sits elsewhere on the sheet (U27/F9P area), so it does not meet "close to U28".
|
||||
|
||||
**Done:** **C176** = 100 nF 0603, LCSC **C14663** (Basic, 37.5 M in stock), pin 1 `/3V3_GNSS`, pin 2 GND. It sits at sheet (457.2, 182.88) rotated 90°, directly above U28, with the sheet note "N2: C176 = U28 IN decap, <=2 mm to U28.1" and a `Note` field that states the layout rule. C176 is the next reference after the highest used (C175); none of the gap numbers exists on the PCB either.
|
||||
|
||||
### N1: Y3 pad assignment (SCTF SX3B25.000F1010F30, C2901684)
|
||||
**Confirmed from the manufacturer datasheet**: SCTF "3X Series 3.2 × 2.5 mm SMD Crystal" (LCSC copy `2110101030_Shenzhen-SCTF-Elec-SX3B25-000F1010F30_C2901684.pdf`, rendered with pdf.js). The pin table reads **1 Xtal, 2 GND, 3 Xtal, 4 GND**. The top view numbers 1 bottom-left, 2 bottom-right, 3 top-right, 4 top-left, which matches KiCad `Crystal_SMD_3225-4Pin_3.2x2.5mm` (pad 1 at (−1.1, +0.85), 2 at (+1.1, +0.85), 3 at (+1.1, −0.85), 4 at (−1.1, −0.85)). The netlist has Y3.1 `/HSE_IN`, Y3.3 `/HSE_OUT`, Y3.2/Y3.4 GND. **No change.**
|
||||
|
||||
Cross-checks from the same sheet: CL 6–20 pF (part code "10" = 10 pF), C0 ≤ 3 pF, ESR ≤ 30 Ω (20–54 MHz), drive level typ 10 / max 100 µW. From ST AN2867: gm_crit = 4 · 30 Ω · (2π · 25 MHz)² · (3 + 10 pF)² = **0.50 mA/V**, against the STM32F411 HSE Gm_crit_max of 1 mA/V (margin 2). C113/C114 = 12 pF give CL_eff = 6 pF + Cstray (3–5 pF) = **9–11 pF** for the 10 pF part. `evidence/sctf_3X_p1_specs.jpg`, `sctf_3X_p2_pinout.jpg`.
|
||||
|
||||
## 3. Fixes, with proof
|
||||
|
||||
### F1: N2 (schematic)
|
||||
- **Expected, written before editing** (`out/F1-N2/expected_written_before_edit.json`): +C176 {100nF, `Capacitor_SMD:C_0603_1608Metric`, `Device:C`, LCSC C14663, fitted, in BOM/CPL, 1:`/3V3_GNSS`, 2:GND}; `/3V3_GNSS` gains C176.1; GND gains C176.2; nothing else.
|
||||
- **Edit:** `tools/gF1_n2.py` uses the apply-pass editor (`apply/tools/ops.py`: splice-only, UUID multiset guard). The text diff is **152 lines added, 0 removed or changed**: 1 symbol, 2 wires, 2 labels, 1 text. The C176 field angles were set to 90 to match the sheet's other rotated passives (L6, RS1), patching only the block the script generated.
|
||||
- **Actual:** netlist `00-start.xml` → `final.xml`: added 1 (C176, exactly the expected attributes and pins), removed 0, field changes 0, pin changes 0, class changes 0, membership changes as expected. **EXPECTED == ACTUAL.** Sch-derived connectivity also shows only the GND and `/3V3_GNSS` groups changed.
|
||||
- Structural checks: orphan NC flags, NC on connected pins, dangling wire ends, dangling labels and unconnected pins without NC all stay at 0 → 0.
|
||||
|
||||
### F2: H-03 land pattern (library file `Drogheda-v6.pretty/IND-SMD_MWSA0804S.kicad_mod`)
|
||||
- **Error, with evidence:** item 18 (Sunlord MWSA50230000 Fig. 4-1 and Table 4-1).
|
||||
- **New geometry:** pads 1/2 SMD round-rect **2.75 × 5.5 mm** at **x = ∓3.375 mm** (gap 4.0, outer extent 9.5); F.Fab body **8.8 (x) × 8.2 (y)**; F.CrtYd **10.0 × 9.0 mm**; silk lines at y = ±4.21 (≥ 1.4 mm from the pads); Reference/Value at y = ∓5.5. All 11 UUIDs of the old file are kept; the name is unchanged, so L2/L6/L8/L20 keep the same footprint link and **the netlist is unaffected**.
|
||||
- **Coverage at the tolerance extremes:** the electrode spans x = 2.9…4.6 mm (B 8.4–9.2, D 1.1–1.7), inside the pad's 2.0…4.75 mm; E ≤ 5.3 mm fits inside H = 5.5 mm. The electrode is fully wetted, with a 0.35 mm toe and a 1.0 mm heel as Sunlord specifies. This land is also closer to the old SRU8028 land (outer ±4.9 mm) than the ports-pass version (±5.5 mm), so it disturbs placement less.
|
||||
- Old file backed up; sha256 `dbf53557…a71f` → **`74528135d4f69617df8570da58700bac3920827a78ec9104c3440be2c5975638`**. The KiCad MCP cannot open project-local libraries; the file parses cleanly (sexpdata) in KiCad 9 writer format, and ERC (which checks footprint links) reports 0 errors.
|
||||
|
||||
### Hashes and commits
|
||||
|
||||
| Step | File | sha256 (Mac, checked after every commit) | Staged path used |
|
||||
|---|---|---|---|
|
||||
| start | `hbox-watchdog-v6.kicad_sch` | `f73f41a8…27ee` | — (backup `_to_delete/v6-final-20260928/00-pre/`) |
|
||||
| F1 (first write) | sch | `889b3c32…1ef` | `/mnt/user-data/outputs/v6final-F1-N2-20260928a/` |
|
||||
| F2 | `IND-SMD_MWSA0804S.kicad_mod` | `74528135…5638` | `/mnt/user-data/outputs/v6final-F2-H03-20260928b/` |
|
||||
| F1 (fields horizontal, **final**) | sch | **`2b394ef927a42823bde3f2a0408860d7c6d3784ab7d7ae3e66f46681f02f5933`** | `/mnt/user-data/outputs/v6final-F1b-N2-20260928c/` |
|
||||
| PDF | `03-Architecture-Hardware/hbox-watchdog-v6-schematic.pdf` | `ae88d524…746b` (old `41241140…91b0` in `00-pre/`) | exported by the KiCad MCP |
|
||||
|
||||
The only difference between the two F1 writes is C176's own UUID; C176 was never on the PCB.
|
||||
|
||||
## 4. ERC
|
||||
|
||||
| State | Errors | Warnings | Overlaps | Crossings |
|
||||
|---|---|---|---|---|
|
||||
| Start (`f73f41a8`) | 0 | 134 | 30 | 9 |
|
||||
| After F1 + F2 (final) | 0 | 134 | 30 | 9 |
|
||||
|
||||
## 5. Final state
|
||||
|
||||
- **Schematic sha256: `2b394ef927a42823bde3f2a0408860d7c6d3784ab7d7ae3e66f46681f02f5933`**
|
||||
- Total vs the apply-pass final (`05-final.xml`): +9 parts (C175, C176, D39, R145, R146, R147, R148, TP12, U32), 0 removed, 8 pin-net changes (J10.8/11/12, U10.2/16, U14.2/3, U15.12), 0 net-class changes.
|
||||
- Final netlist: `final/netlists/final.xml` (sha256 `7b65595f…607c`; Mac copy `_to_delete/v6-final-20260928/netlists/final-b.xml`).
|
||||
|
||||
## 6. Additions to Michelle's layout list (continuing from L-62)
|
||||
|
||||
63\. **MWSA0804S land corrected (supersedes the figures in L-53).** L2/L6/L8/L20 now use pads of **2.75 × 5.5 mm at ±3.375 mm** (gap 4.0, outer extent 9.5), courtyard **10.0 × 9.0 mm**, with the body's 8.8 mm side along the pad axis. The land is smaller than the ports-pass version (11.5 × 9.7) and close to the old SRU8028 land, so neighbour spacing is easier than L-53 said. Keep L-11/L-21/L-22/L-23 distances measured to the new pads. If the ports-pass version of this footprint was already pulled into the board, refresh **only these four refs** from the library (L-45).
|
||||
|
||||
64\. **C176 (N2):** 0603 **≤ 2 mm from U28 pin 1 (IN)**, on the same layer as U28. Its GND pad goes to the GND plane through a via ≤ 1 mm away, and U28 pin 2 uses the same GND region. Feed `/3V3_GNSS` to U28.1 through the C176 pad (the cap sits between the supply trace and the pin).
|
||||
|
||||
65\. **TP8 / TP12 forced-download pads (A2):** TP12 (1V8) at 2.54 mm from TP8 (L-55), plus a **GND contact within 10 mm of TP8**, such as J9's shell tab (SH = GND) or another GND pad. Silk: "BOOT: TP8–1V8 (alt: TP8–GND)".
|
||||
|
||||
66\. **J10 LED routing check:** after Update PCB, confirm pad 12 = `/ETH_ACT_A` (to R97) and pad 11 = `/ETH_ACTLED` (to U11.27), per the Hanrun drawing (yellow A = 12, K = 11). Pad 8 = GND per the Hanrun note "Connect CHS GND to PCB Ground" (L-52).
|
||||
|
||||
## 7. Firmware notes added (FW 0.7.x `board_v6.h`)
|
||||
1. RS-485 RX hygiene (A1): flush the RX FIFO and clear LSR after each transmitted frame (LSR[6] TEMT → FCR[1]), or use EFCR[1] RXDISABLE during TX. Keep EFR[6] (auto-RTS) and EFR[7] (auto-CTS) = 0 while EFCR RTSCON = 1.
|
||||
2. PB5 (BYP_CTRL) is unconnected now (R40 DNP): configure it as output LOW or analog.
|
||||
3. Modem forced download: try TP8–TP12 (1.8 V) first; if J9 does not enumerate the download port, use TP8–GND (A2).
|
||||
|
||||
## 8. Anything that still blocks a port or the order
|
||||
**Nothing in the schematic.** Remaining conditions:
|
||||
|
||||
- **Layout:** L-49…L-66, especially L-63 (use the corrected MWSA land before routing the switchers) and L-64.
|
||||
- **Library pass (optional):** `Drogheda-sym:TPS2552DBV` is still embedded-only (from the apply pass).
|
||||
- **Order logistics:** pre-order THVD1410DR (C2671345, JLC pre-order category), U21 and J14; buy the P11/P12 mating plugs.
|
||||
- **Bench, first board:** both J10 LEDs light with link up; RS-485 idles in receive during MCU reset and in DFU; RS-485 loopback with EFCR = 0x10 (checking the A1 FIFO handling); RS-232 and H4 checks; J9 download mode (TP8–TP12, then TP8–GND if needed); L6/L8/L20 solder joints inspected on the new land.
|
||||
|
||||
## 9. Files
|
||||
- This report: `/home/claude/v6audit/final/2026-09-28_Drogheda_EinarBoard-v6_Final-Check_v1.0.md`
|
||||
- Final netlist: `final/netlists/final.xml`; start: `netlists/00-start.xml`; intermediate: `netlists/01-N2.xml`
|
||||
- Final schematic copy: `final/hbox-watchdog-v6.kicad_sch.final`; footprint: `final/IND-SMD_MWSA0804S.kicad_mod.final`; PDF: `final/hbox-watchdog-v6-schematic.pdf`; BOM: `final/bom_final_ungrouped.csv`
|
||||
- Proof: `final/out/F1-N2/` (expected written before the edit, edit log, output), `final/out/F2-H03/`, `final/work/diff_*.json`, `final/work/fdiff.py`
|
||||
- Scripts: `final/tools/gF1_n2.py`
|
||||
- Datasheet evidence: `final/evidence/` (Hanrun p.1/p.2, Sunlord Fig. 4-1 body and land, SCTF p.1/p.2, sheet crop of U28/C176)
|
||||
- Mac backups: `kicad/_to_delete/v6-final-20260928/` (`00-pre/` sch and old PDF, `01-N2/` post and post-b, `02-H03-land/` pre and post footprint, `netlists/`, BOM, new PDF)
|
||||
- Git (for Leo; nothing was run here): in the `kicad` submodule commit `hbox-watchdog-v6.kicad_sch` and `Drogheda-v6.pretty/IND-SMD_MWSA0804S.kicad_mod`, then bump the parent gitlink with `git -c diff.ignoreSubmodules=none commit …`. If KiCad is open on v6, close it without saving before Update PCB.
|
||||
|
||||
## 10. F3: LFP-HT backup-pack straps (mirror of V5.6)
|
||||
|
||||
**Resumen (ES):** v6 quedó con los mismos estrapes del cargador que V5.6 para el paquete LFP-HT 26650: JP2 puenteado 2-3
|
||||
(F2 a GND) y R55 = 5.6 k (C23189). Flotación **3.50 V** (antes 4.00 V Li-ion). Netlist: 0 cambios de pin o de red.
|
||||
ERC 0 errores (135 avisos). Esquemático `d58a89ba…e7b`.
|
||||
|
||||
**Reason.** On 28-Sep Leo chose a high-temperature LiFePO4 26650 pack for V5.6, and v6 uses the same pack family. v6 was still
|
||||
strapped Li-ion (JP2 F2 high, R55 10 k): an LFP pack would have floated at **4.00 V instead of about 3.50 V** (overcharge hazard).
|
||||
|
||||
| Ref | V5.6 (reference) | v6 before | v6 after |
|
||||
|---|---|---|---|
|
||||
| JP2 (F2) | `Jumper:SolderJumper_3_Bridged23`, fp `Drogheda:SolderJumper-3_P1.3mm_Bridged23_RoundedPad1.0x1.5mm`, value `F2:LFP (2-3)` | Bridged12, `F2:Li-ion` | **= V5.6**, Note "LFP-HT (F2 low), same as V5.6" |
|
||||
| R55 (RNTB) | 5.6k/1 % 0603, C23189, `/VEH5V`–`/NTC` | 10k/1 %, C25804 | **5.6k/1 %, C23189** |
|
||||
| JP3 (F1), JP4 (F0) | F1 = 0, F0 = 1 | same | unchanged |
|
||||
|
||||
- **Netlist confirmation:** U6.12 F2 = `/F2_SEL` = {JP2.2}; U6.13 F1 = {JP3.2}; U6.14 F0 = {JP4.2}; U6.17 NTC = {R55.2, P3.3, R137.1}; R55.1 on `/VEH5V` (the RBIAS of the ADI datasheet).
|
||||
- **Float voltage** (ADI LTC4040 datasheet, pin-function table): F2 = 0 selects LiFePO4; (F1, F0) = (0, 1) → **3.50 V**.
|
||||
- **Charge window** with R55 = 5.6 k and a 10 k B3380 NTC: hot pause **+60 °C**, cold ≈ **+8 °C** on v6 (the F-51 tap R137/R138 shifts the cold trip about 2 °C).
|
||||
- **Proof:** expected changes written before the edit; netlist diff: 0 added, 0 removed, 0 pin-net, 0 membership and 0 class changes; only JP2 value/footprint/lib/Note and R55 value/LCSC/Note changed (plus JP2's footprint-filter text, which follows the symbol swap exactly as on V5.6).
|
||||
- **ERC:** 0 errors, 135 warnings (+1: the embedded Bridged23 symbol is not in the KiCad library, as on V5.6).
|
||||
- **Hashes:** sch `2b394ef9…2f5933` → **`d58a89ba5a5ac46419edf9d68672a8208d825a16387298d0167e21399cd41e7b`**; PDF `3e073181…4362`; PCB `6ddec80d…` untouched.
|
||||
- **Layout L-67 (safety):** after Update PCB confirm JP2 is the Bridged23 footprint with copper on pads 2-3 and no 1-2 bridge left; silk "F2: LFP".
|
||||
- **Firmware / bench:** measure `/F2_SEL` = 0 V, `/F1_SEL` = 0 V, `/F0_SEL` = MAIN5V on the first board before connecting a pack; rescale the PC5 NTC conversion (RBIAS 5.6 k, β 3380); raise the `CHRG_EN` hot cut in step with +60 °C; LFP-appropriate SoC thresholds or coulomb counting.
|
||||
@ -131,6 +131,6 @@ La lupa busca por unidad (H00xx), conector (P15, J10), evento (MODEM_DARK) o pro
|
||||
| <span class="badge-v55">V5.5</span> | 15 unidades en campo · fw 0.6.0 |
|
||||
| <span class="badge-v56">V5.6</span> | Esquemático cerrado · PCB en layout · pedido pendiente |
|
||||
| <span class="badge-v6">v6</span> | En diseño (GNSS + 4G a bordo) — no pedir |
|
||||
| <span class="badge-fw">firmware 0.6.1</span> | En desarrollo |
|
||||
| <span class="badge-fw">firmware 0.6.1</span> | Publicado 29-sep, pendiente de prueba de banco (H0027, H0008) · [notas de versión](descargas/notas-de-version.md) |
|
||||
|
||||
Reglas de trabajo: [Guía del ingeniero](guia-ingeniero.md). Fuente: repositorio Drogheda. Contacto: leo@helgen.tech
|
||||
|
||||
@ -2,21 +2,21 @@
|
||||
title: "Manuales por tarjeta"
|
||||
project: Project Drogheda
|
||||
date: 2026-09-29
|
||||
version: "1.1"
|
||||
version: "1.2"
|
||||
tags: [project-drogheda, hardware, einarboard, manual, indice]
|
||||
author: Helgen Technologies
|
||||
---
|
||||
|
||||
# Manuales por tarjeta
|
||||
|
||||
Cada manual cubre cómo reconocer la tarjeta, conectores, puentes, botones, LEDs, flasheo y limitaciones. El binario lleva la tarjeta en el nombre; reglas en [Descargas](../descargas/index.md#firmware-del-hbox-que-binario-va-en-que-tarjeta).
|
||||
Cada manual cubre cómo reconocer la tarjeta, conectores, puentes, botones, LEDs, flasheo y limitaciones. El binario lleva la tarjeta en el nombre; reglas en [Descargas](../descargas/index.md#firmware-del-hbox-que-binario-va-en-que-tarjeta); qué cambia entre versiones, en las [notas de versión](../descargas/notas-de-version.md).
|
||||
|
||||
| Tarjeta | Nombre | Estado (sep-2026) | Firmware | Proyecto KiCad | Manual |
|
||||
|---|---|---|---|---|---|
|
||||
| V3 | EinarBoard 1.0 (Blackpill en zócalo) | 10 pzas jul-2026; 3 unidades en campo (RTK-003/006/014); registro congelado | `hbox-tarjetaV3_4.0.0.bin` | `hbox-watchdog-v3-PROD` | [Manual V3](manual-tarjeta-V3.md) |
|
||||
| V4 | EinarBoard 2.0 (Blackpill + Ethernet + serie) | Fabricada ago-2026; en prueba con 0.6.0 | `hbox-tarjetaV4_0.6.0.bin` | `hbox-watchdog-v4` | [Manual V4](manual-tarjeta-V4.md) |
|
||||
| V5.5 | EinarBoard 4.0 (serigrafía) / HBOX v5, MCU soldado | 15 pzas 22-ago-2026; en ensamble y campo | `hbox-v5-bringup_0.6.0.bin` | `hbox-watchdog-v5` (tag `v5.5-as-fabbed`) | [Manual V5](manual-tarjeta-V5.md) |
|
||||
| V5.6 | HBOX v5 + ECO 27/28-sep (módem controlado por MCU, LFP, sensores) | Esquemático cerrado; PCB en layout; pedido pendiente | `hbox-v5-bringup_0.6.0.bin` (0.6.x para las funciones nuevas) | `hbox-watchdog-v5` | [Manual V5](manual-tarjeta-V5.md) §9 |
|
||||
| V4 | EinarBoard 2.0 (Blackpill + Ethernet + serie) | Fabricada ago-2026; en prueba con 0.6.1 | `hbox-tarjetaV4_0.6.1.bin` | `hbox-watchdog-v4` | [Manual V4](manual-tarjeta-V4.md) |
|
||||
| V5.5 | EinarBoard 4.0 (serigrafía) / HBOX v5, MCU soldado | 15 pzas 22-ago-2026; en ensamble y campo | `hbox-v5-bringup_0.6.1.bin` | `hbox-watchdog-v5` (tag `v5.5-as-fabbed`) | [Manual V5](manual-tarjeta-V5.md) |
|
||||
| V5.6 | HBOX v5 + ECO 27/28-sep (módem controlado por MCU, LFP, sensores) | Esquemático cerrado; PCB en layout; pedido pendiente | `hbox-v5-bringup_0.6.1.bin` solo con paquete Li-ion; firmware propio de V5.6 previsto en 0.7.0 | `hbox-watchdog-v5` | [Manual V5](manual-tarjeta-V5.md) §9 |
|
||||
| v6 | GNSS + 4G a bordo | En diseño; no pedir | — | `hbox-watchdog-v6` | [Manual v6](manual-tarjeta-v6.md) |
|
||||
|
||||
Documentos de ingeniería: [Tarjetas y hardware](../hardware/index.md).
|
||||
@ -27,3 +27,4 @@ Documentos de ingeniería: [Tarjetas y hardware](../hardware/index.md).
|
||||
|---|---|---|
|
||||
| 1.0 | 2026-09-29 | Primera versión. |
|
||||
| 1.1 | 2026-09-29 | Edición breve; estado V5.6 alineado con la portada. |
|
||||
| 1.2 | 2026-09-29 | Firmware vigente 0.6.1 en V4 y V5.5 (V5.6 solo con paquete Li-ion); enlace a las notas de versión. |
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
title: "Manual de tarjeta — EinarBoard V4 (EinarBoard 2.0)"
|
||||
project: Project Drogheda
|
||||
date: 2026-09-29
|
||||
version: "1.1"
|
||||
version: "1.2"
|
||||
tags: [project-drogheda, hardware, einarboard, v4, manual, tecnicos, blackpill]
|
||||
author: Helgen Technologies
|
||||
audience: técnicos de banco y de campo
|
||||
@ -19,7 +19,7 @@ Blackpill en zócalo + Ethernet y puertos serie. Es el diseño de la V5 con el M
|
||||
| Tamaño | 155 × 100 mm (20 mm más ancha que la V3, lado derecho) |
|
||||
| MCU | WeAct Blackpill STM32F411CEU6 en zócalos J1/J2 (J1 con pads renumerados: corrige la errata E-J1 de la V3) |
|
||||
| Fabricación | JLCPCB, orden preparada 02/03-ago-2026 (lote Y5) <!-- VERIFICAR: número de tarjetas fabricadas y fecha de entrega --> |
|
||||
| Firmware | `hbox-tarjetaV4_0.6.0.bin` (mismo sketch `hbox_v5_bringup` compilado con `-DHBOX_BOARD_V4` para Blackpill). SHA-256 `1458470bbdd95b49…` |
|
||||
| Firmware | `hbox-tarjetaV4_0.6.1.bin` (mismo sketch `hbox_v5_bringup` compilado con `-DHBOX_BOARD_V4` para Blackpill). SHA-256 `ef43a901ae9a875e…`. Cambios por versión: [notas de versión](../descargas/notas-de-version.md) |
|
||||
| Paquete | Li-ion 18650 1S4P · JP2 en 1-2 (`F2:Li-ion`) · R55 10 k |
|
||||
|
||||
<!-- foto: vista superior V4 con Blackpill sentado, RJ45 arriba-izquierda, clemas P15/P16 abajo, P14 a la derecha -->
|
||||
@ -79,7 +79,7 @@ Puente de reset del módem (necesario para que el MCU resetee el módem): diodo
|
||||
|
||||
## 5. Flasheo
|
||||
|
||||
Solo el USB-C del Blackpill, nada en P2 (con el W5500 alimentado, `ETH_INT` = PB2 = BOOT1 puede impedir el DFU). KEY (BOOT0) + NRST (o SW1) → `0483:DF11`. Solo `hbox-tarjetaV4_…` ([Descargas](../descargas/index.md#firmware-del-hbox-que-binario-va-en-que-tarjeta)). La consola debe decir `board=EinarBoard v4 (HBOX v4)`; si dice `v5`, es el binario equivocado. Procedimiento: [V4 — flasheo](../procedimientos/v4-prueba-fw-0.5.6.md#flasheo-de-060).
|
||||
Solo el USB-C del Blackpill, nada en P2 (con el W5500 alimentado, `ETH_INT` = PB2 = BOOT1 puede impedir el DFU). KEY (BOOT0) + NRST (o SW1) → `0483:DF11`. Solo `hbox-tarjetaV4_…` ([Descargas](../descargas/index.md#firmware-del-hbox-que-binario-va-en-que-tarjeta)). La consola debe decir `board=EinarBoard v4 (HBOX v4)`; si dice `v5`, es el binario equivocado. Procedimiento: [V4 — flasheo](../procedimientos/v4-prueba-fw-0.5.6.md#flasheo).
|
||||
|
||||
## 6. Consola y autotest
|
||||
|
||||
@ -101,12 +101,12 @@ Iguales a la V5 (mismo firmware): teclas `h l r s t i g v P Y n A B M R C`, lín
|
||||
## 8. Limitaciones conocidas (iguales a V5.5)
|
||||
|
||||
- Módem oscuro en batería: no arranca sobre el boost; solo SW4G1 (o el puente 0.5.6 + `M`) o los 24 V lo reviven. Firmware ≥ 0.5.9: sin ciclos de etapa en batería; reset del MCU al volver el 5 V.
|
||||
- Cargador: apagado en firmware < 0.6.0; el gobernador de 0.6.0 lo habilita con 24 V y riel estable.
|
||||
- Cargador: apagado en firmware < 0.6.0; desde 0.6.0 un gobernador lo habilita con 24 V y riel estable, y 0.6.1 ya no lo corta por las ráfagas del módem. Con cable o fuente débiles hasta P2 la carga avanza despacio o se estanca ([límite de la ruta de 5 V](../descargas/notas-de-version.md#el-limite-de-la-ruta-de-5-v)).
|
||||
- Ethernet y serie sin prueba en hardware real.
|
||||
|
||||
## 9. Procedimientos relacionados
|
||||
|
||||
[V4 — preparación y prueba con firmware 0.6.0](../procedimientos/v4-prueba-fw-0.5.6.md) · [Política de ventilador (banco)](../procedimientos/fan-policy-bench-test.md) · [Acta V4](../formularios/v4.html) · [Reflasheo de unidades](../procedimientos/reflasheo-unidades.md) · [Prueba módem en batería](../procedimientos/prueba-bateria-modem.md) · [Manual V5](manual-tarjeta-V5.md).
|
||||
[V4 — preparación y prueba con firmware 0.6.1](../procedimientos/v4-prueba-fw-0.5.6.md) · [Política de ventilador (banco)](../procedimientos/fan-policy-bench-test.md) · [Acta V4](../formularios/v4.html) · [Reflasheo de unidades](../procedimientos/reflasheo-unidades.md) · [Prueba módem en batería](../procedimientos/prueba-bateria-modem.md) · [Manual V5](manual-tarjeta-V5.md).
|
||||
|
||||
## Historial de revisiones
|
||||
|
||||
@ -114,5 +114,6 @@ Iguales a la V5 (mismo firmware): teclas `h l r s t i g v P Y n A B M R C`, lín
|
||||
|---|---|---|
|
||||
| 1.0 | 2026-09-29 | Primera versión. |
|
||||
| 1.1 | 2026-09-29 | Edición breve; puente y flasheo remiten al procedimiento V4 (el manual listaba 1N5819, que el procedimiento prohíbe). |
|
||||
| 1.2 | 2026-09-29 | Firmware 0.6.1. |
|
||||
|
||||
Versiones anteriores en git.
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
title: "Manual de tarjeta — EinarBoard V5 (V5.5 y V5.6)"
|
||||
project: Project Drogheda
|
||||
date: 2026-09-29
|
||||
version: "1.1"
|
||||
version: "1.2"
|
||||
tags: [project-drogheda, hardware, einarboard, v5, v5.5, v5.6, manual, tecnicos]
|
||||
author: Helgen Technologies
|
||||
audience: técnicos de banco y de campo
|
||||
@ -16,7 +16,7 @@ Valores de ingeniería: [hoja de datos V5.6](../hardware/v56-datasheet.md). Pin
|
||||
|---|---|---|
|
||||
| Estado | 15 tarjetas fabricadas (JLCPCB, 22-ago-2026), en ensamble y en campo | Esquemático listo (ECO 27/28-sep); PCB y pedido pendientes |
|
||||
| Proyecto KiCad | `kicad/hbox-watchdog-v5.*` (etiqueta git `v5.5-as-fabbed`) | `kicad/hbox-watchdog-v5.*` (ECO aplicada) |
|
||||
| Firmware | `hbox-v5-bringup_0.6.0.bin` | `hbox-v5-bringup_0.6.0.bin` (0.6.x añadirá el control del módem) |
|
||||
| Firmware | `hbox-v5-bringup_0.6.1.bin` | `hbox-v5-bringup_0.6.1.bin` solo con paquete Li-ion; el firmware propio de V5.6 (control del módem, paquete LFP) está previsto en 0.7.0 |
|
||||
| Paquete de batería | Li-ion 18650 1S4P · JP2 en 1-2 · R55 10 k | LFP-HT 26650 · JP2 en 2-3 · R55 5.6 k · NTC B3380 |
|
||||
|
||||
## 1. Identificación
|
||||
@ -93,7 +93,7 @@ V5.5 igual al [pinout V5.6](../hardware/v56-pinout.md) salvo lo listado en §9.
|
||||
|
||||
## 6. Flasheo
|
||||
|
||||
DFU por J11, solo USB, sin P1/P2 ni batería: mantén SW2, pulsa y suelta SW1, suelta SW2 (`STM32 BOOTLOADER`, `0483:DF11`). Procedimiento completo: [prueba y flasheo §5](../procedimientos/v5-prueba-y-flasheo.md#5-flasheo-por-usb-dfu-j11-5-min). Binario: [Descargas](../descargas/index.md). La consola debe decir `hbox_v5_bringup 0.6.0` y `board=EinarBoard v5 (HBOX v5)`.
|
||||
DFU por J11, solo USB, sin P1/P2 ni batería: mantén SW2, pulsa y suelta SW1, suelta SW2 (`STM32 BOOTLOADER`, `0483:DF11`). Procedimiento completo: [prueba y flasheo §5](../procedimientos/v5-prueba-y-flasheo.md#5-flasheo-por-usb-dfu-j11-5-min). Binario: [Descargas](../descargas/index.md). La consola debe decir `hbox-v5-bringup 0.6.1` y `board=EinarBoard v5 (HBOX v5)`.
|
||||
|
||||
Nunca flashees `blackpillrtkcode` (V3) en una V5: usa PB12–PB15 como LEDs y en la V5 son el SPI del W5500.
|
||||
|
||||
@ -150,14 +150,14 @@ En V5.6 el escaneo I²C (`i`) muestra además 0x49 (U18, sensor del módem).
|
||||
|
||||
## 10. Ethernet y puertos serie
|
||||
|
||||
- Ethernet (J10): solo con el build de banco `0.6.0-eth`; DHCP o `192.168.7.2/24`, TCP a `192.168.7.1:5010` con NMEA + `$PHLG` + `$PHEV` + `$PHID`. Tecla `E`.
|
||||
- RS-485 (P15) / RS-232 (P16): 0.6.0 solo comprueba que el SC16IS752 responde; loopback previsto en 0.6.1.
|
||||
- Ethernet (J10): solo con el build de banco `0.6.1-eth` (el `0.6.0-eth` se bloqueaba 4–5 s cada 5 s con cable directo y sin DHCP); DHCP o `192.168.7.2/24`, TCP a `192.168.7.1:5010` con NMEA + `$PHLG` + `$PHEV` + `$PHID`. Tecla `E`.
|
||||
- RS-485 (P15) / RS-232 (P16): 0.6.0 y 0.6.1 solo comprueban que el SC16IS752 responde; el lazo (loopback) queda para un build posterior (0.6.1 salió como arreglo del cargador).
|
||||
- Procedimiento: [Ethernet y puertos serie](../procedimientos/v5-prueba-ethernet-serie.md), obligatorio en una V5.5 antes de pedir la V5.6.
|
||||
|
||||
## 11. Limitaciones de la V5.5
|
||||
|
||||
- Módem oscuro en batería: si el módem se apaga en batería (ciclo de etapa, brown-out) no arranca sobre el boost del LTC4040; solo lo reviven SW4G1 o los 24 V. Por eso el firmware ≥ 0.5.9 nunca cicla la etapa en batería y resetea el MCU al volver el 5 V ([hallazgos](../procedimientos/prueba-bateria-modem.md#3-hallazgos-2527-sep)).
|
||||
- Hasta 0.5.9 el cargador estaba apagado por firmware. 0.6.0 carga con 24 V, etapa ON > 120 s y riel ≥ 5.05 V, y corta bajo 4.90 V. Reflashea unidades con firmware anterior.
|
||||
- Hasta 0.5.9 el cargador estaba apagado por firmware. Desde 0.6.0 carga con 24 V, etapa ON > 120 s y riel ≥ 5.05 V. 0.6.0, con la ruta de 5 V justa, cortaba la carga en cada ráfaga del módem; 0.6.1 la corta solo si el riel no la sostiene (media de 200 ms bajo 4.90 V durante 1 s o bajo 4.85 V, o una muestra bajo 4.70 V). Reflashea unidades con firmware anterior ([notas de versión](../descargas/notas-de-version.md)).
|
||||
- La consola no sabe si el módem está vivo: `modem=vivo|SOSPECHOSO|?` es una inferencia por RTCM y caídas del riel.
|
||||
- Ethernet y serie no se han probado en hardware real (sep-2026).
|
||||
- Y2: la pieza dice 3.6864; el esquemático V5.6 dice `1.8432MHz` <!-- VERIFICAR el campo Value en KiCad; la pieza LCSC C2238 es de 3.6864 MHz -->.
|
||||
@ -170,5 +170,6 @@ Procedimientos V5: [Producción](../produccion/index.md) · [Taller](../taller/i
|
||||
|---|---|---|
|
||||
| 1.0 | 2026-09-29 | Primera versión (V5.5 fabricada + V5.6 en esquemático). |
|
||||
| 1.1 | 2026-09-29 | Edición breve; flasheo, química/JP2 y JP5 remiten a su procedimiento. |
|
||||
| 1.2 | 2026-09-29 | Firmware 0.6.1: cargador, Ethernet de banco `0.6.1-eth`; el lazo serie no está en 0.6.1; en V5.6, 0.6.1 solo con paquete Li-ion. |
|
||||
|
||||
Versiones anteriores en git.
|
||||
|
||||
@ -4,29 +4,33 @@ tags: [project-drogheda, hbox, procedimiento, bateria, modem, ltc4040, v5, v4, f
|
||||
date: 2026-09-26
|
||||
project: Project Drogheda
|
||||
author: Helgen Technologies
|
||||
version: 1.3
|
||||
version: 1.4
|
||||
---
|
||||
|
||||
# Prueba de banco — módem 4G en modo batería
|
||||
|
||||
!!! abstract "Para quién · Cuándo · Tiempo · Necesitas"
|
||||
- Para quién: laboratorio QRO.
|
||||
- Cuándo: al validar un firmware nuevo en una unidad V5.5 completa, o cuando una unidad en batería deja de reportar. V4: usa el [procedimiento V4](v4-prueba-fw-0.5.6.md) y su [acta](../formularios/v4.html) (en la V4 el USB de la Blackpill alimenta el riel de 5 V y la prueba en batería no vale con un cable normal).
|
||||
- Tiempo: ~45 min por unidad; la aceptación (§2) incluye una noche completa.
|
||||
- Cuándo: al validar un firmware nuevo en una unidad V5.5 completa, o cuando una unidad en batería deja de reportar. V4: usa el [procedimiento V4](v4-prueba-fw-0.5.6.md) y su [acta](../formularios/v4.html) (el §1, cargador, vale también para V4) (en la V4 el USB de la Blackpill alimenta el riel de 5 V y la prueba en batería no vale con un cable normal).
|
||||
- Tiempo: ~1 h 15 min por unidad, más dos noches: una cargando en 24 V (§1) y otra en batería (§2).
|
||||
- Necesitas: unidad completa con batería, fuente de 24 V, laptop grabando la consola, dos multímetros, monitor abierto, [acta de esta prueba](../formularios/prueba-bateria.html).
|
||||
|
||||
!!! danger "No se hace"
|
||||
No cambies el firmware, no muevas JP2/JP3/JP4 ni el trimmer del SD-15B: la prueba vale porque la unidad está como en campo. Nunca conectes la fuente de banco a P4 con la batería puesta.
|
||||
|
||||
## 1. Cargador (0.6.0)
|
||||
## 1. Cargador (0.6.1)
|
||||
|
||||
Misma unidad, paquete bajo, antes de la corrida en batería.
|
||||
Misma unidad, paquete bajo (menos de 3.5 V), antes de la corrida en batería. Vale también para la V4, con la consola en el cable sin 5 V del [procedimiento V4](v4-prueba-fw-0.5.6.md). Qué cambió en el gobernador y por qué: [notas de versión](../descargas/notas-de-version.md).
|
||||
|
||||
1. 24 V + etapa ON, consola abierta. Los primeros 120 s `STAT` dice `carga=HOLDOFF`; luego `carga=PROVING n/30s` y a los ~150 s `EVT CARGA ON: riel 5.xx V estable 30 s`. Siguiente `STAT`: `ltc=CARGANDO`; el monitor muestra 🔌 CARGANDO.
|
||||
2. Multímetro en P2 durante 10 min; anota el mínimo. Si el riel baja de 4.90 V en una ráfaga LTE: `CARGA cortada … enfriamiento 60 s`, `carga=COOLDOWN faltan Ns`, y reintenta. Anota `cortes=` a la hora y `vbat` inicial y final (debe subir). Enfriamientos que llegan a 30 min: la fuente no da 2.4 A + etapa; V5.6 o fuente de 4 A.
|
||||
3. Quita 24 V: `carga=BATT`, `CARGA OFF: BATT` (nunca carga en batería). Al volver 24 V: reset y a los ~150 s carga otra vez.
|
||||
1. 24 V + etapa ON, consola abierta. Los primeros 120 s `STAT` dice `carga=HOLDOFF`; luego `carga=PROVING n/30s` y a los ~150 s `EVT up=… CARGA ON: riel 5.xx V estable 30 s`. 5 s después, `EVT up=… CARGA: riel 5.2x -> 5.0x V con el cargador (caida 0.xx V)`: anota la caída (esperado < 0.10 V; con más de 0.15 V añade `RUTA DE 5 V DEBIL`). Siguiente `STAT`: `ltc=CARGANDO`; el monitor muestra 🔌 CARGANDO o «cargó N %».
|
||||
2. 30 min sin tocar, multímetro en P2 (anota el mínimo). En `STAT`: `cortes=0`, `duty=` cerca de 100 % y `cargado=` subiendo; `vbat` inicial y final (debe subir). Las ráfagas del módem ya no cortan la carga.
|
||||
3. Quita 24 V con la carga puesta, espera ~5 s (con menos de 3 s cuenta como corte; con 10 s o más hay reset) y reconecta: `CARGA OFF: se fue el 5 V … no cuenta como corte`, `cortes=` sin cambio, `carga=WAIT` con cuenta atrás y vuelve a cargar. Con 10 s o más en batería, al volver: reset del MCU y de nuevo 120 s de `HOLDOFF`. En batería nunca carga (`carga=BATT`).
|
||||
4. Solo con fuente de banco en P2 (nunca más de 5.5 V): con la carga puesta baja la fuente hasta ~4.85 V medidos en P2 → `CARGA cortada (SOSTENIDO)`, `carga=SHED` 3 s y luego `carga=COOLDOWN faltan Ns` (60 s); sube la fuente y la carga vuelve sola. Cada corte contado duplica la espera (tope 30 min; vuelve a 60 s tras 10 min cargando bien).
|
||||
5. Noche completa en 24 V (o fuente de banco a 5.40 V en P2): en la mañana `cortes=` sin subir durante la noche y el monitor en «casi lleno» o ✅ CARGADA.
|
||||
|
||||
## 2. Aceptación (0.5.9 y 0.6.0)
|
||||
Cortes `SOSTENIDO` sin tocar la fuente: la ruta de 5 V no da la corriente de carga (hasta ~2.8 A con la etapa). Con la carga puesta la media del riel en P2 debe quedar en 4.90 V o más, o sea R hasta P2 ≤ (V fuente − 4.90 V) / 2.8 A: 0.14 Ω a 5.30 V, 0.18 Ω a 5.40 V ([límite de la ruta de 5 V](../descargas/notas-de-version.md#el-limite-de-la-ruta-de-5-v)). Se corrige en la fuente o el cable, no en el firmware. Con H0027 (~0.15 Ω a 5.30 V) empiezan cuando el paquete llega a ~3.6 V: por eso el paso 2 va con el paquete bajo 3.5 V y la noche con la fuente a 5.40 V.
|
||||
|
||||
## 2. Aceptación (0.5.9 y 0.6.x)
|
||||
|
||||
Misma unidad, consola abierta.
|
||||
|
||||
@ -36,7 +40,7 @@ Misma unidad, consola abierta.
|
||||
4. Vuelve 24 V: `5 V de vuelta … reset del MCU`, etapa ON a los ~3 s, el módem enciende; a los 2 min `modem=vivo`.
|
||||
5. Noche completa en batería desde 24 V, sin tocar. En la mañana: módem vivo antes de volver 24 V y hora del corte de 3.40 V (`SLEEP`) si llegó: autonomía real.
|
||||
|
||||
Con `sag5`/`sagb` de 1–3 se fijan `MODEM_SAG5_V` / `MODEM_SAGB_V` para 0.5.10 (auto-reset en 24 V; reset condicional al volver el 5 V).
|
||||
Con `sag5`/`sagb` de 1–3 se fijan `MODEM_SAG5_V` / `MODEM_SAGB_V` para la versión que actúe (auto-reset en 24 V; reset condicional al volver el 5 V).
|
||||
|
||||
## 3. Hallazgos 25–27 sep
|
||||
|
||||
@ -103,7 +107,7 @@ Con el módem oscuro en 24 V, tecla `R`. Si enciende igual que con P10, sigue co
|
||||
|
||||
25-sep: en batería con el módem oscuro, al volver 24 V el simpleRTK2B revive y el módem sigue oscuro hasta un reset. Mide 3V3_MODEM: ~3.3 V con el módem apagado = latch por subvoltaje. Causa (26-sep): con la etapa OFF el MCU sostenía el riel del módem por el UART del GNSS (PA2 → simpleRTK2B → DIN_4G). 0.5.5 dejó ese UART en alta impedancia y cicla la etapa 10 s al volver el 5 V; no bastó (3V3_MODEM en reposo ~1 V en C43+). Lo revive un pulso en `SW4G1` o un reset por P10 con 24 V; un ciclo de etapa (`P`/`P`+`Y`, 5–60 s) nunca. Por eso 0.5.7 resetea el MCU en cada despertar y al volver el 5 V.
|
||||
|
||||
Puente (0.5.6+, sigue en el firmware): 3 s después de cada encendido de etapa el MCU pulsa el reset del módem por U13 P7.
|
||||
Puente (0.5.6+, sigue en el firmware): 5 s después de cada encendido de etapa (3 s hasta 0.5.7) el MCU pulsa el reset del módem por U13 P7.
|
||||
|
||||
```
|
||||
U13 pin 12 (P7) ──|<── SW4G1 pad 1 (MODEM_RST) diodo Schottky de señal BAT54 (o BAT85/BAT43/1N5711) — no 1N5819
|
||||
@ -134,5 +138,6 @@ Todo va en el [acta de la prueba](../formularios/prueba-bateria.html): configura
|
||||
| 1.1 | 2026-09-27 | Resultado 26-sep (hipótesis A), aceptación 0.5.8 → 0.5.9 y prueba del cargador 0.6.0. |
|
||||
| 1.2 | 2026-09-29 | Reordenado: estado actual primero. |
|
||||
| 1.3 | 2026-09-29 | Edición breve; los hallazgos 26/27-sep viven aquí (Descargas solo los resume). |
|
||||
| 1.4 | 2026-09-29 | §1 para el gobernador 0.6.1: 30 min sin cortes, desconexión, corte SOSTENIDO, noche y regla de la ruta de 5 V; pulso `MODEM_RST` a 5 s. |
|
||||
|
||||
Versiones anteriores en git.
|
||||
|
||||
@ -4,7 +4,7 @@ tags: [project-drogheda, hbox, procedimiento, reflasheo, firmware, dfu, v3, v4,
|
||||
date: 2026-09-18
|
||||
project: Project Drogheda
|
||||
author: Helgen Technologies
|
||||
version: 1.2
|
||||
version: 1.3
|
||||
---
|
||||
|
||||
# Reflasheo de unidades HBOX — solo en taller
|
||||
@ -104,8 +104,8 @@ arduino-cli compile \
|
||||
--fqbn "STMicroelectronics:stm32:GenF4:pnum=BLACKPILL_F411CE,usb=CDCgen,xserial=generic,rtlib=nanofp" \
|
||||
--build-property "build.extra_flags=-DHBOX_BOARD_V4" \
|
||||
--output-dir release/ hbox_v5_bringup/
|
||||
mv release/hbox_v5_bringup.ino.bin release/hbox-tarjetaV4_0.6.0.bin
|
||||
shasum -a 256 release/hbox-tarjetaV4_0.6.0.bin | tee -a release/SHA256SUMS
|
||||
mv release/hbox_v5_bringup.ino.bin release/hbox-tarjetaV4_0.6.1.bin
|
||||
shasum -a 256 release/hbox-tarjetaV4_0.6.1.bin | tee -a release/SHA256SUMS
|
||||
```
|
||||
|
||||
El `.ino` trae por omisión `TARGET_EINARBOARD 1` y `TARGET_PROTO 0`, correcto para la flota (EinarBoard 1.0 con v2/v3, según `V4-PLAN.md`). Solo se cambia, editando el `.ino`, para una tarjeta de protoboard.
|
||||
@ -119,7 +119,8 @@ Antes de publicar en [Descargas](../descargas/index.md):
|
||||
- [ ] Probado en banco en hardware real, no solo compilado.
|
||||
- [ ] Polaridad del control de carga verificada sobre la tarjeta.
|
||||
- [ ] Nombre con tarjeta y versión (`hbox-tarjetaV3_X.Y.Z.bin`); nunca se infiere una de la otra.
|
||||
- [ ] Copiado a `docs/descargas/` de `hbox-docs` (los `.bin` de campo están en `.gitignore`); `SHA256SUMS.txt` lo regenera `sync-docs.sh`.
|
||||
- [ ] Copiado a `docs/descargas/` de `hbox-docs` (los `.bin` de campo están en `.gitignore`) con su línea en el `MAP` de `scripts/sync-docs.sh`; la versión anterior pasa a `superseded/` en el `MAP` y con `mv` (el script no borra). `SHA256SUMS.txt` lo regenera `sync-docs.sh`.
|
||||
- [ ] [Notas de versión](../descargas/notas-de-version.md): qué cambia respecto a la versión anterior y por qué.
|
||||
- [ ] Anotado en el `CHANGELOG.md` del firmware con fecha y quién lo probó.
|
||||
- [ ] Tabla de Descargas actualizada; publicado con `./scripts/deploy.sh`.
|
||||
|
||||
@ -130,5 +131,6 @@ Antes de publicar en [Descargas](../descargas/index.md):
|
||||
| 1.0 | 2026-09-18 | Primera versión. |
|
||||
| 1.1 | 2026-09-29 | Encabezado uniforme; enlaces a manuales y al acta. |
|
||||
| 1.2 | 2026-09-29 | Edición breve. Tabla de binarios y verificación SHA-256 → Descargas; la lista "antes de publicar" vive solo aquí. |
|
||||
| 1.3 | 2026-09-29 | Ejemplo con 0.6.1; publicar incluye el `MAP` de `sync-docs.sh`, mover la versión anterior a `superseded/` y las notas de versión. |
|
||||
|
||||
Versiones anteriores en git.
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
---
|
||||
title: "V4 — preparación y prueba con firmware 0.6.0"
|
||||
title: "V4 — preparación y prueba con firmware 0.6.1"
|
||||
tags: [project-drogheda, hbox, procedimiento, v4, firmware, bateria, modem, dfu]
|
||||
date: 2026-09-26
|
||||
project: Project Drogheda
|
||||
author: Helgen Technologies
|
||||
version: 1.3
|
||||
version: 1.4
|
||||
---
|
||||
|
||||
# V4 — preparación y prueba con firmware 0.6.0
|
||||
# V4 — preparación y prueba con firmware 0.6.1
|
||||
|
||||
!!! abstract "Para quién · Cuándo · Tiempo · Necesitas"
|
||||
- Para quién: técnico de banco.
|
||||
@ -17,7 +17,7 @@ version: 1.3
|
||||
|
||||
Orden: tres preparativos (puente de reset del módem; interruptores del simpleRTK2B, cable sin 5 V y batería), flasheo, y tres pruebas (24 V, batería, regreso de 24 V). Conectores y botones: [manual V4](../manuales/manual-tarjeta-V4.md). En V5.5 la prueba equivalente es [módem 4G en batería](prueba-bateria-modem.md).
|
||||
|
||||
El procedimiento se escribió para 0.5.6. Puente, `M`, `R` y DFU solo con USB no cambian con 0.6.0. Historial de versiones: [Descargas](../descargas/index.md).
|
||||
El procedimiento se escribió para 0.5.6. Puente, `M`, `R` y DFU solo con USB no cambian con 0.6.1. Qué cambió en cada versión: [notas de versión](../descargas/notas-de-version.md).
|
||||
|
||||
!!! warning "Reglas"
|
||||
- Todo cambio de hardware (soldar, mover interruptores, poner o quitar módulos) sin energía: sin 24 V, batería desconectada, sin USB.
|
||||
@ -28,7 +28,7 @@ El procedimiento se escribió para 0.5.6. Puente, `M`, `R` y DFU solo con USB no
|
||||
|
||||
## Preparación 1 — Puente de reset del módem
|
||||
|
||||
3 s después de cada encendido de etapa el firmware reinicia el módem como si se pulsara 4G NTRIP RESET. Necesita un diodo entre U13 y ese botón. Una vez por tarjeta, sin energía.
|
||||
5 s después de cada encendido de etapa (3 s hasta 0.5.7) el firmware reinicia el módem como si se pulsara 4G NTRIP RESET. Necesita un diodo entre U13 y ese botón. Una vez por tarjeta, sin energía.
|
||||
|
||||
```
|
||||
U13 pata 12 (P7) ──|<── SW4G1, pad que va a RESET (J7)
|
||||
@ -59,14 +59,14 @@ Cable de consola sin 5 V (una vez). En la V4 el 5 V del USB de la Blackpill est
|
||||
|
||||
Batería: mide en su conector; debe tener ≥ 3.80 V (3.14 V, como en el último reporte, es descargada). Cárgala por fuera con el cargador Li-ion de 1 celda, o fuente de banco a 4.00 V con límite 1 A directo al conector, polaridad verificada, sin dejarla sola, hasta que la corriente baje de 0.1 A. Si se calienta o se infla, detente y avisa.
|
||||
|
||||
## Flasheo de 0.6.0
|
||||
## Flasheo
|
||||
|
||||
Archivo [`hbox-tarjetaV4_0.6.0.bin`](../descargas/hbox-tarjetaV4_0.6.0.bin), nunca el `hbox-v5-bringup_…`. SHA-256: `1458470bbdd95b490969976402bf2144a773a991b7650c55e3281687ba77b2e3` ([cómo verificar](../descargas/index.md#verifica-el-sha-256)).
|
||||
Archivo [`hbox-tarjetaV4_0.6.1.bin`](../descargas/hbox-tarjetaV4_0.6.1.bin) (0.6.1), nunca el `hbox-v5-bringup_…`. SHA-256: `ef43a901ae9a875e6346ae8f84cc5f150a2419ff7cd577fe8f69780236840757` ([cómo verificar](../descargas/index.md#verifica-el-sha-256)).
|
||||
|
||||
1. Sin 24 V y con la batería desconectada, cable normal a la Blackpill.
|
||||
2. DFU: mantén BOOT0, pulsa y suelta NRST, suelta BOOT0. Debe aparecer `STM32 BOOTLOADER` (0483:DF11).
|
||||
3. `dfu-util -a 0 -s 0x08000000:leave -D hbox-tarjetaV4_0.6.0.bin` (o STM32CubeProgrammer → USB → Connect → Download en `0x08000000`).
|
||||
4. Consola a 115200: `hbox-v5-bringup 0.6.0`, `board=EinarBoard v4 (HBOX v4)` y `>>> BOARD OK`. Si no viste el arranque: `t` (la línea empieza con `$PHLG,0.6.0,`) y `r` repite los tests.
|
||||
3. `dfu-util -a 0 -s 0x08000000:leave -D hbox-tarjetaV4_0.6.1.bin` (o STM32CubeProgrammer → USB → Connect → Download en `0x08000000`).
|
||||
4. Consola a 115200: `hbox-v5-bringup 0.6.1`, `board=EinarBoard v4 (HBOX v4)` y `>>> BOARD OK`. Si no viste el arranque: `t` (la línea empieza con `$PHLG,0.6.1,`) y `r` repite los tests.
|
||||
5. Retira el cable normal. Desde aquí, solo el cable sin 5 V.
|
||||
|
||||
Sin `STM32 BOOTLOADER` tras dos intentos: el USB también alimenta el W5500, cuya interrupción llega a `BOOT1`. Sin energía, saca la Blackpill, flashéala suelta y reinsértala con su USB-C del lado de la etiqueta E-CSn (B12 en E-CSn, pin R en NRST). Si no coincide, no la energices.
|
||||
@ -77,7 +77,7 @@ Sin `STM32 BOOTLOADER` tras dos intentos: el USB también alimenta el W5500, cuy
|
||||
2. P2 (salida del SD-15B): 5.1–5.3 V. Con 0 V detente: SD-15B o arnés.
|
||||
3. `s`: `v5=5.xx(ok)`, `stack=ON`, `mrst=1` o más; al poco, `modoB=ON` y `gga=` con satélites.
|
||||
4. Puente: multímetro en el pad RESET de SW4G1 contra GND (alto con el módem encendido). Teclea `M`: baja de 0.4 V medio segundo (usa MIN/MAX), los LEDs del módem se apagan y vuelven, y la consola dice `MODEM_RST operador`. No baja: diodo al revés o sin soldar. Se queda en 0.4–0.7 V: el diodo no es Schottky.
|
||||
5. Espera registro del módem y LEDs UART del simpleRTK2B en parpadeo rápido (correcciones). En el monitor: `0.6.0` y ⚡ VEHÍCULO.
|
||||
5. Espera registro del módem y LEDs UART del simpleRTK2B en parpadeo rápido (correcciones). En el monitor: `0.6.1` y ⚡ VEHÍCULO; a los ~2.5 min Energía pasa de «espera de arranque» y «comprobando riel» a 🔌 CARGANDO (o «casi lleno» / ✅ CARGADA con la batería llena).
|
||||
6. Opcional: con el módem oscuro en 24 V, `R` (reset por software) debe encenderlo.
|
||||
|
||||
Si algo falla, no pases a batería: marca "me detengo" en el acta y ve al cierre.
|
||||
@ -85,7 +85,7 @@ Si algo falla, no pases a batería: marca "me detengo" en el acta y ve al cierre
|
||||
## Prueba B — En batería
|
||||
|
||||
!!! note "Pendiente de ingeniería"
|
||||
Los pasos 2–5 describen el ciclo de 10 min de 0.5.6–0.5.7. Desde 0.5.9 la etapa y el módem siguen encendidos en batería, sin ventanas (ver [Descargas](../descargas/index.md)). Con 0.6.0 registra en el acta lo que ocurra y avisa a ingeniería.
|
||||
Los pasos 2–5 describen el ciclo de 10 min de 0.5.6–0.5.7. Desde 0.5.9 la etapa y el módem siguen encendidos en batería, sin ventanas (ver [Descargas](../descargas/index.md)). Con 0.6.1 registra en el acta lo que ocurra y avisa a ingeniería.
|
||||
|
||||
1. Con todo funcionando, quita 24 V (la batería queda) y anota la hora: `V5 PERDIDO` y `BACKUP inicio … modo reporte cada 10 min`. La etapa sigue unos 2 min.
|
||||
2. `DUTY reposo … etapa OFF` y `STACK OFF reason=duty_sleep`. A los 30 s mide:
|
||||
@ -130,5 +130,6 @@ Todo va en el [acta de prueba V4](../formularios/v4.html), con el log completo d
|
||||
| 1.1 | 2026-09-27 | Notas de 0.5.7, 0.5.9 y 0.6.0. |
|
||||
| 1.2 | 2026-09-29 | SHA-256 de 0.6.0 corregido; encabezado uniforme. |
|
||||
| 1.3 | 2026-09-29 | Edición breve; tabla de versiones → Descargas; aviso de que la Prueba B describe el ciclo de 0.5.6–0.5.7. |
|
||||
| 1.4 | 2026-09-29 | Firmware 0.6.1: archivo, SHA-256, consola y monitor; pulso `MODEM_RST` a 5 s; enlace a las notas de versión. |
|
||||
|
||||
Versiones anteriores en git.
|
||||
|
||||
@ -4,7 +4,7 @@ tags: [project-drogheda, hardware, hbox, v5, v5.6, configuracion, ntrip, etherne
|
||||
project: Project Drogheda
|
||||
author: Helgen Technologies
|
||||
date: 2026-09-29
|
||||
version: 1.1
|
||||
version: 1.2
|
||||
status: ACTIVO — toda unidad V5.5 / V5.6 antes de embarcar o de reinstalar
|
||||
audience: técnicos de banco
|
||||
---
|
||||
@ -24,7 +24,7 @@ Una unidad está configurada cuando cumple las siete filas:
|
||||
| 1 | Módem 4G | Parámetros cargados (APN, caster, mountpoint, ID de estación) y registrado en Telcel | 1 |
|
||||
| 2 | simpleRTK2B (ZED-F9P) | Configuración Helgen en flash; RTK FIX (`fix=4`) con cielo | 2 |
|
||||
| 3 | Identidad | Aparece en el monitor como `H00xx` con posición y Salud | 3 |
|
||||
| 4 | Ethernet (si lo lleva) | Enlace y espejo TCP probados con `0.6.0-eth` | 4 |
|
||||
| 4 | Ethernet (si lo lleva) | Enlace y espejo TCP probados con el build de banco `0.6.1-eth` | 4 |
|
||||
| 5 | Puertos serie (si los lleva) | `[PASS] SC16IS752` y niveles correctos en P15/P16 | 4 |
|
||||
| 6 | Paquete de batería | Química = JP2; `ltc=CARGANDO` | 5 |
|
||||
| 7 | Firmware y consola | Versión vigente y `STAT` limpio | 6 |
|
||||
@ -116,5 +116,6 @@ V5.6: su firmware (`MODEM_EN`, `tchg`, `tcell`, `tmodem`) aún no existe; hasta
|
||||
|---|---|---|
|
||||
| 1.0 | 2026-09-29 | Primera versión: define "unidad configurada" para V5.5/V5.6. |
|
||||
| 1.1 | 2026-09-29 | Edición breve. Parámetros del módem → Descargas; Ethernet/serie y JP5 → prueba de Ethernet y serie; química/JP2 → ensamble §2; tabla de firmware → Descargas. |
|
||||
| 1.2 | 2026-09-29 | Ethernet con el build de banco 0.6.1-eth. |
|
||||
|
||||
Versiones anteriores en git.
|
||||
|
||||
@ -4,7 +4,7 @@ tags: [project-drogheda, hardware, hbox, v5, v5.6, ethernet, w5500, rs485, rs232
|
||||
project: Project Drogheda
|
||||
author: Helgen Technologies
|
||||
date: 2026-09-29
|
||||
version: 1.1
|
||||
version: 1.2
|
||||
status: ACTIVO — obligatoria en al menos una V5.5 antes de pedir la V5.6; después, en toda unidad con RJ45 o clemas serie
|
||||
audience: técnicos de banco
|
||||
---
|
||||
@ -15,14 +15,14 @@ audience: técnicos de banco
|
||||
- Para quién: técnicos de banco.
|
||||
- Cuándo: al menos una V5.5 antes de pedir la V5.6 (Ethernet nunca se había probado en tarjeta real y la V5.6 copia el bloque); después, toda unidad V5.5/V5.6 con RJ45 o clemas serie en el panel, dentro de la [configuración de la unidad](v5-configuracion-unidad.md).
|
||||
- Tiempo: Ethernet 15 min · serie 15 min.
|
||||
- Necesitas: unidad V5 ensamblada (o tarjeta + simpleRTK2B para ver NMEA); 24 V al GX16 (o 5.3 V / 3 A en P2); laptop con terminal serie a 115200 grabando y `nc` (macOS/Linux) o `ncat` (Windows); binario de banco `hbox-v5-bringup_0.6.0-eth.bin` (lo compila ingeniería con `-DENABLE_ETH=1` y entrega su SHA-256) <!-- VERIFICAR: nombre y SHA-256 del binario -eth publicado -->; cable Ethernet directo cat 5e de 1–3 m (el W5500 hace Auto-MDIX); adaptadores USB-RS485 y USB-RS232 (DB9 macho) con 3 cables con puntera; multímetro; desarmador plano 2.5 mm; [acta Ethernet y puertos serie](../formularios/ethernet-serie.html).
|
||||
- Necesitas: unidad V5 ensamblada (o tarjeta + simpleRTK2B para ver NMEA); 24 V al GX16 (o 5.3 V / 3 A en P2); laptop con terminal serie a 115200 grabando y `nc` (macOS/Linux) o `ncat` (Windows); binario de banco `hbox-v5-bringup_0.6.1-eth.bin` (lo compila ingeniería con `-DENABLE_ETH=1` y entrega su SHA-256; no uses el `0.6.0-eth`: con cable directo y sin DHCP se bloqueaba 4–5 s cada 5 s) <!-- VERIFICAR: nombre y SHA-256 del binario -eth publicado -->; cable Ethernet directo cat 5e de 1–3 m (el W5500 hace Auto-MDIX); adaptadores USB-RS485 y USB-RS232 (DB9 macho) con 3 cables con puntera; multímetro; desarmador plano 2.5 mm; [acta Ethernet y puertos serie](../formularios/ethernet-serie.html).
|
||||
|
||||
!!! warning "Reglas"
|
||||
1. Nunca pruebes Ethernet solo en batería ni solo por USB: el W5500 cuelga de `3V3_ETH`, que sale del 5 V del sistema. Sin 5 V el firmware lo deja en reset.
|
||||
2. 5 V del sistema ≥ 5.2 V (SD-15B o fuente a ~5.3 V). Con menos, la ráfaga LTE lleva el riel al PFI 4.60 V del LTC4040 y la tarjeta se reinicia.
|
||||
3. Con fuente de banco en P2 y sin 24 V, sin paquete de batería. Lo normal: 24 V al GX16 y el SD-15B interno.
|
||||
|
||||
## A. Ethernet (build `0.6.0-eth`)
|
||||
## A. Ethernet (build `0.6.1-eth`)
|
||||
|
||||
### A1. Laptop (una vez)
|
||||
|
||||
@ -38,10 +38,10 @@ audience: técnicos de banco
|
||||
### A2. Flasheo del build de banco
|
||||
|
||||
1. DFU por J11, solo USB, sin 24 V ([flasheo §5](v5-prueba-y-flasheo.md#5-flasheo-por-usb-dfu-j11-5-min)).
|
||||
2. `dfu-util -a 0 -s 0x08000000:leave -D hbox-v5-bringup_0.6.0-eth.bin` o STM32CubeProgrammer.
|
||||
3. Terminal en J11: primera línea `hbox-v5-bringup 0.6.0-eth`; la ayuda (`h`) lista `E=Ethernet on/off`.
|
||||
2. `dfu-util -a 0 -s 0x08000000:leave -D hbox-v5-bringup_0.6.1-eth.bin` o STM32CubeProgrammer.
|
||||
3. Terminal en J11: primera línea `hbox-v5-bringup 0.6.1-eth`; la ayuda (`h`) lista `E=Ethernet on/off`.
|
||||
|
||||
El build `-eth` es solo de banco: al terminar reflashea `hbox-v5-bringup_0.6.0.bin` (ver C).
|
||||
El build `-eth` es solo de banco: al terminar reflashea el binario V5 vigente de [Descargas](../descargas/index.md) (hoy `hbox-v5-bringup_0.6.1.bin`; ver C).
|
||||
|
||||
### A3. Secuencia
|
||||
|
||||
@ -60,8 +60,8 @@ El build `-eth` es solo de banco: al terminar reflashea `hbox-v5-bringup_0.6.0.b
|
||||
3. En `nc` llega primero la identidad y luego el flujo. `$PHID` se repite cada 5 min; con la etapa apagada o sin simpleRTK2B solo llegan `$PHLG`/`$PHEV`.
|
||||
|
||||
```
|
||||
$PHID,<UID 24 hex>,0.6.0-eth,EinarBoard v5 (HBOX v5),02:48:42:xx:xx:xx,<up_s>*CS
|
||||
$PHLG,0.6.0-eth,RUN,…
|
||||
$PHID,<UID 24 hex>,0.6.1-eth,EinarBoard v5 (HBOX v5),02:48:42:xx:xx:xx,<up_s>*CS
|
||||
$PHLG,0.6.1-eth,RUN,…
|
||||
$GNGGA,…
|
||||
$GNRMC,…
|
||||
```
|
||||
@ -101,8 +101,8 @@ El build `-eth` es solo de banco: al terminar reflashea `hbox-v5-bringup_0.6.0.b
|
||||
|
||||
| Firmware | Prueba | Secciones |
|
||||
|---|---|---|
|
||||
| 0.6.0 / 0.6.0-eth | Presencia del SC16IS752 y niveles estáticos | B1, B2 |
|
||||
| 0.6.1 (planeado) | Lazo interno y eco externo a 9600 8N1 | B3, B4 |
|
||||
| 0.6.0 y 0.6.1 (y sus `-eth`) | Presencia del SC16IS752 y niveles estáticos | B1, B2 |
|
||||
| Build con lazo serie (planeado; no es 0.6.1) | Lazo interno y eco externo a 9600 8N1 | B3, B4 |
|
||||
|
||||
### B1. Presencia (0.6.x)
|
||||
|
||||
@ -125,11 +125,11 @@ Tarjeta energizada (USB basta). Teclea `r` y busca:
|
||||
| P15.1 – P15.2 con JP5 cerrado | 0 V ± 0.2 (driver desactivado, línea terminada) <!-- VERIFICAR: estado por defecto de SER_DEA (DE/~RE de U14) tras reset del SC16IS752; si el driver arranca activo se leerá ≈ +2 V (marca) --> | ≈ 0 con JP5 abierto también es normal |
|
||||
| Ohms P15.1–P15.2, tarjeta apagada | JP5 abierto > 10 kΩ · cerrado ≈ 120 Ω (R82) | — |
|
||||
|
||||
### B3. Lazo interno (0.6.1)
|
||||
### B3. Lazo interno (build con lazo, planeado)
|
||||
|
||||
No cablees P15 con P16: son eléctricamente distintos. El lazo de 0.6.1 une TX→RX de cada canal dentro del SC16IS752 (MCR bit 4), sin cable: tecla de consola de 0.6.1 <!-- VERIFICAR: tecla y texto de salida del auto-test de lazo en 0.6.1 --> → `[PASS] SER_LOOP_A` / `[PASS] SER_LOOP_B`. Prueba U10 y el cristal, no los transceptores ni las clemas.
|
||||
No cablees P15 con P16: son eléctricamente distintos. El lazo une TX→RX de cada canal dentro del SC16IS752 (MCR bit 4), sin cable: tecla de consola del build con lazo <!-- VERIFICAR: tecla y texto de salida del auto-test de lazo cuando exista ese build --> → `[PASS] SER_LOOP_A` / `[PASS] SER_LOOP_B`. Prueba U10 y el cristal, no los transceptores ni las clemas.
|
||||
|
||||
### B4. Eco externo con adaptadores (0.6.1, 9600 8N1)
|
||||
### B4. Eco externo con adaptadores (build con lazo, 9600 8N1)
|
||||
|
||||
En modo eco, lo que entra por un puerto sale por el mismo.
|
||||
|
||||
@ -154,10 +154,10 @@ RS-232 (P16):
|
||||
| Presencia U10 | `[PASS] SC16IS752 … SPR rd=0xA5` | 0.6.0+ |
|
||||
| Niveles RS-232 | P16.1 en −5…−6.5 V en reposo | 0.6.0+ |
|
||||
| Niveles RS-485 | A y B con nivel (no 0/0); 120 Ω A-B solo con JP5 cerrado | 0.6.0+ |
|
||||
| Lazo interno | `SER_LOOP_A` y `SER_LOOP_B` en PASS | 0.6.1 |
|
||||
| Eco RS-485 / RS-232 | 10/10 idénticas a 9600 8N1 | 0.6.1 |
|
||||
| Lazo interno | `SER_LOOP_A` y `SER_LOOP_B` en PASS | build con lazo |
|
||||
| Eco RS-485 / RS-232 | 10/10 idénticas a 9600 8N1 | build con lazo |
|
||||
|
||||
Sin 0.6.1 el resultado se registra como "presencia + niveles OK". Basta para ordenar la V5.6 (el bloque serie no cambia). El eco se agrega al mismo acta cuando salga 0.6.1.
|
||||
Hasta que salga el build con lazo el resultado se registra como "presencia + niveles OK". Basta para ordenar la V5.6 (el bloque serie no cambia). El eco se agrega al mismo acta cuando salga ese build.
|
||||
|
||||
## Conexión en la instalación
|
||||
|
||||
@ -173,16 +173,16 @@ Sin 0.6.1 el resultado se registra como "presencia + niveles OK". Basta para ord
|
||||
|
||||
## C. Cierre
|
||||
|
||||
- [ ] Si la unidad se embarca, reflashea `hbox-v5-bringup_0.6.0.bin` y anótalo en el [acta de reflasheo](../formularios/reflasheo.html).
|
||||
- [ ] Si la unidad se embarca, reflashea el binario V5 vigente (`hbox-v5-bringup_0.6.1.bin`) y anótalo en el [acta de reflasheo](../formularios/reflasheo.html).
|
||||
- [ ] Retira cable y adaptadores; tapas ciegas en J10/P15/P16 que el panel no use.
|
||||
- [ ] Envía el [acta Ethernet y puertos serie](../formularios/ethernet-serie.html) con los dos logs.
|
||||
|
||||
## Anexo — notas de ingeniería
|
||||
|
||||
- `ethService()`: `RST` alto → 150 ms → `Ethernet.begin` estático (prueba el chip y lee el PHY) → con cable, DHCP con 4 s (K1 liberado mientras, `relayDisengage("eth_dhcp")`) o estática → `connect()` con timeout 300 ms, reintento 5 s. Escrituras no bloqueantes (`availableForWrite`); descartes en `drop=`. MAC `02:48:42:` + hash del UID. Eventos en banda: `ETH_HW`, `ETH_UP`, `ETH_LINK`, `ETH_CONN`, `ETH_DISC`, `ETH_OFF`.
|
||||
- `ethService()`: `RST` alto → 150 ms → `Ethernet.begin` estático (prueba el chip y lee el PHY) → con cable, DHCP con 4 s (K1 liberado mientras, `relayDisengage("eth_dhcp")`) o estática → `connect()` con timeout 300 ms, reintento 5 s. Desde 0.6.1-eth: nunca `Ethernet.maintain()` tras un connect fallido (sin lease, la librería re-corría el DHCP entero: 4–5 s bloqueado cada 5 s); renovación del lease una vez por minuto solo si hubo DHCP; el cargador se pausa durante el DHCP; W5500 ausente: reintento cada 10 min tras 3 fallos. Escrituras no bloqueantes (`availableForWrite`); descartes en `drop=`. MAC `02:48:42:` + hash del UID. Eventos en banda: `ETH_HW`, `ETH_UP`, `ETH_LINK`, `ETH_CONN`, `ETH_DISC`, `ETH_OFF`.
|
||||
- Defaults del build: DHCP, y si no hay respuesta en 4 s estática 192.168.7.2/24 (`-DETH_DHCP=0`, `-DETH_IP=192,168,1,50`); servidor 192.168.7.1:5010, reintento 5 s (`-DETH_SERVER_IP=`, `-DETH_SERVER_PORT=`); activo solo con 5 V, nunca en batería ni por USB. IP y servidor son banderas de compilación: otro valor = otro `.bin` de ingeniería. No hay build de campo con Ethernet y el servidor htracker no escucha el espejo; la unidad reporta por 4G.
|
||||
- V5.6 añade R112 4.7 k pull-down en `ETH_RST` (PA15) y C90 4.7 µF / C91 10 nF. `W5500 NO responde` intermitente en V5.5: sospecha PA15 flotando antes de que el firmware tome el pin.
|
||||
- SC16IS752: 0x4D (A1 = A0 = GND, I²C), IRQ en PB8 (R81 10 k), Y2 3.6864 MHz (`XTAL_FREQ 3686400` → 9600 = divisor 24). Canal A → U14 SP3485 (DE y ~RE unidos en `SER_DEA`); canal B → U15 MAX3232 (canal 2 sin usar: T2IN y R2IN a GND). En 0.6.0 no hay tráfico de aplicación y el protocolo con el equipo del cliente está por definir.
|
||||
- SC16IS752: 0x4D (A1 = A0 = GND, I²C), IRQ en PB8 (R81 10 k), Y2 3.6864 MHz (`XTAL_FREQ 3686400` → 9600 = divisor 24). Canal A → U14 SP3485 (DE y ~RE unidos en `SER_DEA`); canal B → U15 MAX3232 (canal 2 sin usar: T2IN y R2IN a GND). En 0.6.0 y 0.6.1 no hay tráfico de aplicación y el protocolo con el equipo del cliente está por definir.
|
||||
- Netlist V5.6 (`p5ntc-after.xml`): P15.1 `RS485_A`, P15.2 `RS485_B`, P15.3 GND; JP5.1 `RS485_T` (R82 120 Ω → A), JP5.2 `RS485_B`; P16.1 `RS232_TX` (T1OUT), P16.2 `RS232_RX` (R1IN), P16.3 GND; J10 1/2 TX±, 3/6 RX±, 4 TCT (3V3_ETH), 5 RCT, 7/8 NC, 9–12 LEDs.
|
||||
|
||||
## Historial de revisiones
|
||||
@ -191,5 +191,6 @@ Sin 0.6.1 el resultado se registra como "presencia + niveles OK". Basta para ord
|
||||
|---|---|---|
|
||||
| 1.0 | 2026-09-29 | Primera versión: Ethernet con `0.6.0-eth` y puertos serie (presencia, niveles, lazo y eco para 0.6.1). |
|
||||
| 1.1 | 2026-09-29 | Edición breve; recibe de la configuración de la unidad la tabla de conexión, la regla de JP5 y los defaults de Ethernet. |
|
||||
| 1.2 | 2026-09-29 | Build de banco 0.6.1-eth (el 0.6.0-eth se bloqueaba sin DHCP). Lazo y eco serie: build posterior (0.6.1 salió como arreglo del cargador). |
|
||||
|
||||
Versiones anteriores en git.
|
||||
|
||||
@ -71,7 +71,7 @@ const STREAMS = [
|
||||
{ tipo:'prueba-v5', prefijo:'V5', desde:1, n:30, pad:2, titulo:'Tarjetas EinarBoard — V5', form:'formularios/v5.html' },
|
||||
{ tipo:'modulo-ard', prefijo:'ARD', desde:1, n:30, pad:3, titulo:'Módulos simpleRTK2B Pro — ARD', form:'formularios/ardusimple.html', usoClave:'ard' },
|
||||
{ tipo:'modulo-4g', prefijo:'RTK', desde:1, n:30, pad:4, titulo:'Módems 4G NTRIP Master — RTK', form:'formularios/modem4g.html', usoClave:'modem' },
|
||||
{ tipo:'prueba-v4', prefijo:'V4', desde:1, n:15, pad:2, titulo:'Tarjetas EinarBoard — V4 (fw 0.6.0)', form:'formularios/v4.html' },
|
||||
{ tipo:'prueba-v4', prefijo:'V4', desde:1, n:15, pad:2, titulo:'Tarjetas EinarBoard — V4 (fw 0.6.x)', form:'formularios/v4.html' },
|
||||
];
|
||||
const TABLAS = [
|
||||
{ tipo:'integracion', titulo:'Integración ArduSimple + 4G (parejas)', form:'formularios/integracion.html', cols:[['ard','ArduSimple'],['modem','4G (RTK-)']] },
|
||||
|
||||
@ -12,7 +12,7 @@ Unidad o tarjeta en la mesa. Antes de tocarla, abre su [expediente](../unidad.ht
|
||||
| Reflasheo | Después de subir la captura del diagnóstico | [Reflasheo de unidades](../procedimientos/reflasheo-unidades.md) | [Reflasheo y configuración](../formularios/reflasheo.html) |
|
||||
| Módem 4G en batería | Validar firmware o unidad que no reporta en batería | [Módem 4G en batería](../procedimientos/prueba-bateria-modem.md) | [Módem en batería](../formularios/prueba-bateria.html) |
|
||||
| Ethernet y puertos serie | El cliente usa Ethernet, RS-485 o RS-232 | [Ethernet y puertos serie](../procedimientos/v5-prueba-ethernet-serie.md) | [Ethernet y serie](../formularios/ethernet-serie.html) |
|
||||
| Tarjeta V4 | Preparación y prueba con 0.6.0 | [Preparación y prueba V4](../procedimientos/v4-prueba-fw-0.5.6.md) | [Prueba V4](../formularios/v4.html) |
|
||||
| Tarjeta V4 | Preparación y prueba con 0.6.1 | [Preparación y prueba V4](../procedimientos/v4-prueba-fw-0.5.6.md) | [Prueba V4](../formularios/v4.html) |
|
||||
|
||||
- [Manual V5](../manuales/manual-tarjeta-V5.md) · [Manual V4](../manuales/manual-tarjeta-V4.md) · [Pinout V5.6](../hardware/v56-pinout.md)
|
||||
- [Tablero de producción](../tablero.html)
|
||||
|
||||
@ -91,7 +91,7 @@ nav:
|
||||
- "Prueba: Ethernet y puertos serie":
|
||||
- procedimientos/v5-prueba-ethernet-serie.md
|
||||
- "Acta: Ethernet y puertos serie": formularios/ethernet-serie.html
|
||||
- "V4 — preparación y prueba con 0.6.0":
|
||||
- "V4 — preparación y prueba con 0.6.1":
|
||||
- procedimientos/v4-prueba-fw-0.5.6.md
|
||||
- "Acta de prueba V4": formularios/v4.html
|
||||
|
||||
@ -130,6 +130,12 @@ nav:
|
||||
- "Guía de ensamble (PDF)": montaje/assembly-guide.md
|
||||
- "v6 — en diseño, no pedir":
|
||||
- "Manual de la tarjeta v6": manuales/manual-tarjeta-v6.md
|
||||
- "▶ Próximos pasos para ordenar (29-sep)": hardware/v6-proximos-pasos.md
|
||||
- "✅ Plan de corrección y estado (28-sep)": hardware/v6-plan-correccion.md
|
||||
- "Cambios de esquemático — resumen de 3 pasadas": hardware/v6-cambios-resumen.md
|
||||
- "Puertos y sin nueva versión (inglés)": hardware/v6-puertos-sin-nueva-version.md
|
||||
- "Revisión final (inglés)": hardware/v6-revision-final.md
|
||||
- "Auditoría completa v6 (inglés)": hardware/v6-full-audit.md
|
||||
- "Auditoría completa v6": hardware/v6-auditoria-completa.md
|
||||
- "Cambios al esquemático v6": hardware/v6-cambios-esquematico.md
|
||||
- "Revisión v6 contra lecciones V5.5": hardware/v6-revision-lecciones-v55.md
|
||||
@ -145,6 +151,7 @@ nav:
|
||||
- "Ficha técnica HBOX (PDF)": manuales/Drogheda-HBOX-Datasheet_v2.0.pdf
|
||||
- "Descargas":
|
||||
- descargas/index.md
|
||||
- "Notas de versión del firmware": descargas/notas-de-version.md
|
||||
- "README firmware bring-up v5": descargas/hbox-v5-bringup-README.md
|
||||
- "Git y archivos de diseño":
|
||||
- "Guía Git": git/guia-git-es.md
|
||||
|
||||
@ -25,7 +25,10 @@ declare -a MAP=(
|
||||
"03-Architecture-Hardware/kicad/docs/GIT-GUIDE_Colaboradores-Externos_ES.md|docs/git/guia-git-es.md"
|
||||
"03-Architecture-Hardware/kicad/docs/GIT-GUIDE_External-Collaborators_EN.md|docs/git/git-guide-en.md"
|
||||
# Descargas para técnicos (firmware de bring-up v5)
|
||||
"04-Source-Code/firmware/hbox_v5_bringup/release/hbox-v5-bringup_0.6.0.bin|docs/descargas/hbox-v5-bringup_0.6.0.bin"
|
||||
# Versión nueva: su .bin va a docs/descargas/ y la anterior a docs/descargas/superseded/. El script no borra:
|
||||
# el .bin anterior que quedó en docs/descargas/ se mueve a mano (mv) a superseded/.
|
||||
"04-Source-Code/firmware/hbox_v5_bringup/release/hbox-v5-bringup_0.6.1.bin|docs/descargas/hbox-v5-bringup_0.6.1.bin"
|
||||
"04-Source-Code/firmware/hbox_v5_bringup/release/hbox-v5-bringup_0.6.0.bin|docs/descargas/superseded/hbox-v5-bringup_0.6.0.bin"
|
||||
"04-Source-Code/firmware/hbox_v5_bringup/release/hbox-v5-bringup_0.5.9.bin|docs/descargas/superseded/hbox-v5-bringup_0.5.9.bin"
|
||||
"04-Source-Code/firmware/hbox_v5_bringup/release/hbox-v5-bringup_0.5.8.bin|docs/descargas/superseded/hbox-v5-bringup_0.5.8.bin"
|
||||
"04-Source-Code/firmware/hbox_v5_bringup/release/hbox-v5-bringup_0.5.7.bin|docs/descargas/superseded/hbox-v5-bringup_0.5.7.bin"
|
||||
@ -38,7 +41,8 @@ declare -a MAP=(
|
||||
"04-Source-Code/firmware/hbox_v5_bringup/release/superseded/hbox-v5-bringup_0.4.0.bin|docs/descargas/superseded/hbox-v5-bringup_0.4.0.bin"
|
||||
"04-Source-Code/firmware/release/hbox-tarjetaV3_3.0.4.bin|docs/descargas/superseded/hbox-tarjetaV3_3.0.4.bin"
|
||||
"04-Source-Code/firmware/release/hbox-tarjetaV3_4.0.0.bin|docs/descargas/hbox-tarjetaV3_4.0.0.bin"
|
||||
"04-Source-Code/firmware/release/hbox-tarjetaV4_0.6.0.bin|docs/descargas/hbox-tarjetaV4_0.6.0.bin"
|
||||
"04-Source-Code/firmware/release/hbox-tarjetaV4_0.6.1.bin|docs/descargas/hbox-tarjetaV4_0.6.1.bin"
|
||||
"04-Source-Code/firmware/release/hbox-tarjetaV4_0.6.0.bin|docs/descargas/superseded/hbox-tarjetaV4_0.6.0.bin"
|
||||
"04-Source-Code/firmware/release/hbox-tarjetaV4_0.5.9.bin|docs/descargas/superseded/hbox-tarjetaV4_0.5.9.bin"
|
||||
"04-Source-Code/firmware/release/hbox-tarjetaV4_0.5.8.bin|docs/descargas/superseded/hbox-tarjetaV4_0.5.8.bin"
|
||||
# Documentación 2026-09-29: datasheet, pinout V5.6, manuales por tarjeta, procedimientos de configuración/Ethernet/serie, manual de cliente
|
||||
@ -63,6 +67,12 @@ declare -a MAP=(
|
||||
"03-Architecture-Hardware/2026-09-28_Drogheda_EinarBoard-v6_Schematic-Change-Report_v1.0.md|docs/hardware/v6-cambios-esquematico.md"
|
||||
"03-Architecture-Hardware/2026-09-28_Drogheda_EinarBoard-v6_Review-vs-V5.5-Lessons_v1.0.md|docs/hardware/v6-revision-lecciones-v55.md"
|
||||
"03-Architecture-Hardware/pinmap-v6.md|docs/hardware/v6-pinmap.md"
|
||||
"03-Architecture-Hardware/2026-09-28_Drogheda_EinarBoard-v6_Plan-de-Correccion_v1.0.md|docs/hardware/v6-plan-correccion.md"
|
||||
"03-Architecture-Hardware/2026-09-28_Drogheda_EinarBoard-v6_Cambios-Resumen_v1.0.md|docs/hardware/v6-cambios-resumen.md"
|
||||
"03-Architecture-Hardware/2026-09-28_Drogheda_EinarBoard-v6_Ports-and-No-Respin_v1.0.md|docs/hardware/v6-puertos-sin-nueva-version.md"
|
||||
"03-Architecture-Hardware/2026-09-28_Drogheda_EinarBoard-v6_Final-Check_v1.0.md|docs/hardware/v6-revision-final.md"
|
||||
"03-Architecture-Hardware/2026-09-28_Drogheda_EinarBoard-v6_Full-Audit_v1.0_EN.md|docs/hardware/v6-full-audit.md"
|
||||
"03-Architecture-Hardware/2026-09-29_Drogheda_EinarBoard-v6_Proximos-Pasos-Pedido_v1.0.md|docs/hardware/v6-proximos-pasos.md"
|
||||
"04-Source-Code/firmware/release/hbox-tarjetaV4_0.5.7.bin|docs/descargas/superseded/hbox-tarjetaV4_0.5.7.bin"
|
||||
"04-Source-Code/firmware/release/hbox-tarjetaV4_0.5.6.bin|docs/descargas/superseded/hbox-tarjetaV4_0.5.6.bin"
|
||||
"04-Source-Code/firmware/release/hbox-tarjetaV4_0.5.5.bin|docs/descargas/superseded/hbox-tarjetaV4_0.5.5.bin"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user