diff --git a/02-Architecture-Software/2026-10-22_Drogheda_FOTA-por-4G_Factibilidad_ES_v1.0.md b/02-Architecture-Software/2026-10-22_Drogheda_FOTA-por-4G_Factibilidad_ES_v1.0.md index 330853a..b360e6f 100644 --- a/02-Architecture-Software/2026-10-22_Drogheda_FOTA-por-4G_Factibilidad_ES_v1.0.md +++ b/02-Architecture-Software/2026-10-22_Drogheda_FOTA-por-4G_Factibilidad_ES_v1.0.md @@ -28,6 +28,10 @@ Por eso la propuesta **D-22-6** (§9): la imagen de fábrica de las 108 / 322 y A/B y el receptor desde el primer día. Los pilotos (5 + 5 y los 20 de la v6) no lo necesitan: se regraban por USB en el banco. +![FOTA por 4G: cómo llega el firmware a cada versión de la tarjeta](img/2026-10-22_Drogheda_FOTA-4G-Caminos-por-Tarjeta_v1.0.png) + +*Figura: caminos de bajada (azul) y subida (naranja) en cada versión, el servidor que hace falta y el mapa de flash común. Fuente editable: `img/2026-10-22_Drogheda_FOTA-4G-Caminos-por-Tarjeta_v1.0.html`.* + ## 1. Qué hace falta para actualizar por aire (cualquier tarjeta) 1. **Camino de bajada hasta el MCU** — que los bytes que manda el servidor lleguen a un RX del STM32. diff --git a/02-Architecture-Software/img/2026-10-22_Drogheda_FOTA-4G-Caminos-por-Tarjeta_v1.0.html b/02-Architecture-Software/img/2026-10-22_Drogheda_FOTA-4G-Caminos-por-Tarjeta_v1.0.html new file mode 100644 index 0000000..32debc4 --- /dev/null +++ b/02-Architecture-Software/img/2026-10-22_Drogheda_FOTA-4G-Caminos-por-Tarjeta_v1.0.html @@ -0,0 +1,290 @@ + + + + + + + + + + + + + +FOTA por 4G — cómo llega el firmware a cada versión de la EinarBoard +22-oct-2026 · Helgen / Drogheda · sin hardware nuevo en V5.6, V5.7 ni v6 · propuesta D-22-6 · detalle: hardware/fota-4g-factibilidad + + + +Servidor de Helgen (HelgenSRV) + + +Llave de firma +Ed25519, fuera del repo +y del servidor (la guarda Leo) + + +Imagen firmada +manifiesto: versión · tarjeta · ranura +tamaño · SHA-256 · firma + + +Campañas en htracker +banco → 1 por sitio → 10 % → todas +lee $PHLG · manda CONFIRMAR + + +Caster de Helgen + inyector +relevo de la base RTK + marcos RTCM 4xxx +con pedazos · ≤ 1 KB/s · solo a las unidades objetivo + + +Servidor HTTPS de imágenes +TLS · descarga por rangos +(solo la v6) + + + + + + + + + +NTRIP: la corrección +solo llega al F9P + +UDP: NMEA ++ $PHLG + + +NTRIP: corrección + marcos 4xxx +(pedazos de la imagen, CONFIRMAR) + +UDP: NMEA + $PHLG +(versión · ranura · tengo/total · estado) + + +HTTPS: +imagen + +UDP: NMEA + $PHLG +confirmación por HTTPS + + + +V3 · V4 · V5.5 +33 unidades + +✗ Por 4G no: no hay RX del módem al MCU + + +4G NTRIP Master +XBee · Telit + app ArduSimple + + + +DOUT + +ZED-F9P · RX2 +usa la corrección + + + + +V5.5: PC7 NC +Blackpill: sin PC7 + + +Modo B +(subida sí) + + +F0-d + + +STM32F411 +Blackpill (V3/V4) · RET6 soldado (V5.5) + +Cómo sí +① USB (DFU en J11) en cada visita — lo de hoy +② Reemplazarlas por V5.6 / V5.7 si siguen en +servicio después del primer trimestre +③ Experimento F0-d: el F9P reporta el tipo de +cada marco (UBX-RXM-RTCM → PA3), ≈ 75 B/s; +igual requiere 1 visita para el bootloader +④ Cable DOUT → PC7 en la V5.5: no (vibración) + + + +V5.6 · V5.7 +108 + 322 (piloto 5 + 5) + +✓ Sin hardware nuevo · falta firmware y el caster con inyector + + +4G NTRIP Master +zócalo XBee · MODEM_EN PC3 · RST PC1 + + + +DOUT_4G · 115200 + + +ZED-F9P · RX2 +descarta los 4xxx + + +R111 1 k + + +PC7 · USART6_RX (DMA) + + + +STM32F411RET6 +arma los marcos 4xxx · verifica · escribe la ranura B + + + +PA9 + +K1 (PB5) +NO = MCU, Modo B ($PHLG) +NC = F9P directo si el MCU cae + +DIN_4G + +Ya está en la tarjeta +Toma RTCM en PC7 (R111) · Modo B por K1 · control del módem · +respaldo LTC4040 para escribir la flash +Falta +Bootloader A/B + receptor en el firmware (FOTA 1–2) · +caster con inyector y campañas (FOTA 3) · matriz de banco (FOTA 4) +Por validar en banco (F0) +a: el marco 4xxx sale por DOUT · b: RTK fijo con carrusel · c: $$$AS+R? por Modo B +De regalo: parámetros del módem ($$$AS+X, con regreso automático) y config. del F9P a distancia. + + + +v6 +130 + reemplazos (piloto 20) + +✓ Sin hardware nuevo · va dentro de FW-3 + + +A7670SA (soldado) +HTTP(S) · sistema de archivos · CFOTA + + + +AT: PC6 → R148 0 Ω → U23 → RXD + + +TXD → U24 → R106 → PC7 + + +STM32F411RET6 +HTTPACTION / HTTPREAD → ranura B · RTCM al F9P por USART2 + +Ya está en la tarjeta +UART completo con el módem (K1 DNP) · +PWRKEY PC8 · PWR_EN PC10 · RST PC11 · LTC4040 +Falta +FOTA dentro de FW-3 (socket NTRIP no transparente +para dejar libre el canal AT) · servidor HTTPS +Sin K1: si el MCU cae, nada reporta → +el bootloader regresa solo, sin esperar al servidor + + + + +Común a V5.6, V5.7 y v6 — bootloader A/B y mapa de flash del STM32F411 (512 KB) + + + + + + + + + + + boot + Ranura A · 192 KB · sectores 4–5 + corre hoy (0.6.2 = 96 KB, en verde) + Ranura B · 256 KB · sectores 6–7 + aquí se escribe la imagen nueva + sect. 0–1 · 32 KB · bootloader (nunca por aire) + sect. 2 · 16 KB · metadatos (ranura activa, prueba) + sect. 3 · 16 KB · EEPROM (hoy en el último sector) + Dos builds por versión (build.flash_offset): el servidor manda + el de la ranura que no corre. Cambiar de imagen = escribir un + registro de metadatos; regresar es inmediato. Borrar 128 KB detiene + el núcleo ≈ 1–2 s: K1 suelto (la NMEA sigue), borrado al inicio, + nunca con batería baja. + + + + + + 1 · Descarga + a la ranura libre, por pedazos + + + 2 · Verifica + SHA-256 + Ed25519 + tarjeta + + + 3 · Arranca en prueba + contador en BKP12R–13R + + + ¿CONFIRMAR del servidor en 30 min? + (la unidad sana: NMEA 1 Hz + $PHLG con la versión nueva) + + + sí → confirmada + + + no, o 3 reinicios → regresa a la anterior + + +Siempre: DFU por USB en J11 (memoria de sistema del STM32, no se borra) → en el peor caso una visita, nunca una unidad inservible. +Nunca por aire: firmware del F9P · app del 4G NTRIP Master (643 KB) · el propio bootloader. +Compuerta (D-22-6): la imagen de fábrica de las 108 / 322 y de las 130 v6 lleva bootloader + receptor, y no se graba sin FOTA 4 aprobada en banco. + + + + bajada (imagen) + subida (estado) + comandos AT / flujo + no existe + experimento + + + + diff --git a/02-Architecture-Software/img/2026-10-22_Drogheda_FOTA-4G-Caminos-por-Tarjeta_v1.0.png b/02-Architecture-Software/img/2026-10-22_Drogheda_FOTA-4G-Caminos-por-Tarjeta_v1.0.png new file mode 100644 index 0000000..180bb07 Binary files /dev/null and b/02-Architecture-Software/img/2026-10-22_Drogheda_FOTA-4G-Caminos-por-Tarjeta_v1.0.png differ diff --git a/CLAUDE.md b/CLAUDE.md index d71377e..fb849b6 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -463,6 +463,7 @@ Master app (643 KB), the bootloader. **Proposal D-22-6 (Leo decides):** the fact bootloader + receiver and is not flashed until the FOTA 4 bench matrix passes; FOTA stays out of 0.7.0 (29-oct). Pieces F0–F4 ≈ 3 weeks (Claude, Gibran, Jesús). Open: caster software on HelgenSRV, per-unit NTRIP users, key custody, V4/V5.5 lifetime. Canonical: `02-Architecture-Software/2026-10-22_Drogheda_FOTA-por-4G_Factibilidad_ES_v1.0.md` (site `hardware/fota-4g-factibilidad/`); +figure `02-Architecture-Software/img/2026-10-22_Drogheda_FOTA-4G-Caminos-por-Tarjeta_v1.0.png` (paths per board + common flash map); lote `2026-10-22_fota-4g`. --- diff --git a/hbox-docs b/hbox-docs index e1681a8..4ba4c71 160000 --- a/hbox-docs +++ b/hbox-docs @@ -1 +1 @@ -Subproject commit e1681a869306b79349e1ad02d078687b0f90aafa +Subproject commit 4ba4c712d5162989311198ec590bdcbb6a5e7340