FOTA doc §11; bump hbox-docs

This commit is contained in:
Leopoldo Rodríguez 2026-10-22 17:06:54 -06:00
parent cba83c8361
commit b2158725a3
2 changed files with 22 additions and 1 deletions

View File

@ -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 | | 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 | | 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) | | 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.

@ -1 +1 @@
Subproject commit 119eee5f70bce394a720e85b0f8658921865339a Subproject commit 7d0457601f68a280da7e5c795827e2db14b299ef