From b2158725a3330e5e2c0ba3b8f873f0ce263bf727 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leopoldo=20Rodr=C3=ADguez?= Date: Thu, 22 Oct 2026 17:06:54 -0600 Subject: [PATCH] =?UTF-8?q?FOTA=20doc=20=C2=A711;=20bump=20hbox-docs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ogheda_FOTA-por-4G_Factibilidad_ES_v1.0.md | 21 +++++++++++++++++++ hbox-docs | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) 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 b360e6f..238bbb5 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 @@ -233,3 +233,24 @@ actualización por USB en visita; el experimento F0-d decide si vale la pena má | b | Carrusel a 1 KB/s durante 30 min con cielo abierto | Fix 4 sostenido; `UBX-RXM-RTCM` sin fallas de CRC en los mensajes de la base | | c | `$$$AS+R?` mandado por el Modo B (MCU → K1 → DIN) | La respuesta de la app aparece en DOUT | | d | Marcos de tipos que el F9P no soporta, con `UBX-RXM-RTCM` activado en UART1 | El F9P los reporta (decide el experimento de §6) | + +## 11. Qué hace falta además del código + +Casi todo es firmware y servidor: **no hay que comprar módulos ni tocar las tarjetas**. Lo que no es código: + +| Qué | Para qué | Costo / estado | +|---|---|---| +| ST-Link V2/V3 con pinzas o pogo pins a TP3 (SWDIO), TP4 (SWCLK), TP5 (NRST) y GND | Depurar el bootloader (el salto a la ranura, la tabla de vectores) sin adivinar. V5.6, V5.7 y v6 tienen los pads, sin header | ≈ MX$200–600; revisar primero si ya hay uno (el README del firmware lo menciona) | +| Relé controlado desde la laptop (módulo de 1 canal + USB-serie, o un Blackpill) | Cortar los 24 V en momentos al azar durante la descarga, el borrado y el cambio de ranura (matriz FOTA 4) | ≈ MX$100 | +| Tarjetas de banco | Bootloader: cualquier V5.5 o V4 de banco (mismo STM32F411, misma flash). Receptor: una V5.6 del piloto (PC7), o una V5.5 de banco con un cable provisional a PC7 — solo en banco | el piloto ya va en camino | +| Compilador | El bootloader es un proyecto en C aparte, sin Arduino, para que quepa en 32 KB y no dependa del núcleo: arm-none-eabi-gcc, que ya viene dentro de STM32duino en la Mac | gratis | +| STM32CubeProgrammer / `dfu-util` | Grabar la imagen de fábrica y fijar el BOR en los *option bytes* | ya se usan | +| Llaves de firma | Dos pares Ed25519 (producción + recuperación), con las dos públicas dentro del bootloader; las privadas cifradas, fuera de línea y con respaldo. Si se pierden las dos, solo queda USB; si se filtra una, se rota con la otra | decide Leo | +| Herramienta de liberación | Script en Python (PyNaCl) en la Mac: compila las dos ranuras, firma y publica | parte de FOTA 1 | +| Caster de prueba | Un mountpoint de prueba en HelgenSRV para F0 y para desarrollar el receptor sin tocar a la flota | depende de la pregunta 1 de §9 | +| Proceso | Imagen de fábrica y procedimiento de regrabado actualizado (en V5.6+ solo imágenes de fábrica); el acta de ensamble anota versión y ranura; liberar = 2 builds + firma | parte de FOTA 1 y FOTA 4 | +| Manos en el banco | Claude escribe y compila; grabar y correr la matriz lo hace alguien en el banco (Jesús) | ≈ 3–4 días de banco en total | + +Lo delicado del software, para planear: ligar la app en `0x0801 0000` con STM32duino; mover la EEPROM al sector 3 +sin chocar con lo que usa el núcleo; el IWDG no se apaga una vez encendido (el bootloader lo refresca mientras +verifica); USART6 por DMA para no perder bytes cuando el loop se bloquea; y los 1–2 s de borrado por sector. diff --git a/hbox-docs b/hbox-docs index 119eee5..7d04576 160000 --- a/hbox-docs +++ b/hbox-docs @@ -1 +1 @@ -Subproject commit 119eee5f70bce394a720e85b0f8658921865339a +Subproject commit 7d0457601f68a280da7e5c795827e2db14b299ef