fix(box3): SPIFFS mount + canal WiFi configurable (relais ESP-NOW) #8

Merged
electron merged 39 commits from fix/box3-spiffs-channel into main 2026-06-13 14:44:15 +00:00
Owner

Deux bugs corrigés sur le firmware BOX-3, validés sur matériel.

  1. SPIFFS_LABEL "storage" -> "spiffs" (matche partitions.csv) : sans ça esp_vfs_spiffs_register echoue (NOT_FOUND), la BOX-3 ne persiste aucun scenario recu.
  2. CONFIG_ZACUS_WIFI_CHANNEL (defaut 0=auto) : force la BOX-3 co-canal avec le master sur reseau mesh multi-AP, prerequis ESP-NOW.

Valide : master ch6 -> relais -> BOX-3 recoit+reassemble 679 B -> SPIFFS -> hot-load OK -> reboot.

NB: le master est epingle a 7893c32 dans le monorepo alors que origin/main est a 585af36 (pointeur submodule en retard) ; cette branche part de 7893c32.

Generated with Claude Code

Deux bugs corrigés sur le firmware BOX-3, validés sur matériel. 1. SPIFFS_LABEL "storage" -> "spiffs" (matche partitions.csv) : sans ça esp_vfs_spiffs_register echoue (NOT_FOUND), la BOX-3 ne persiste aucun scenario recu. 2. CONFIG_ZACUS_WIFI_CHANNEL (defaut 0=auto) : force la BOX-3 co-canal avec le master sur reseau mesh multi-AP, prerequis ESP-NOW. Valide : master ch6 -> relais -> BOX-3 recoit+reassemble 679 B -> SPIFFS -> hot-load OK -> reboot. NB: le master est epingle a 7893c32 dans le monorepo alors que origin/main est a 585af36 (pointeur submodule en retard) ; cette branche part de 7893c32. Generated with Claude Code
electron added 39 commits 2026-06-13 13:04:29 +00:00
Ordered-scan validator for QR puzzle sequences with host-based
Unity test harness. Tests cover: correct order acceptance, reset on
wrong scan, and duplicate-of-last handling.
Rotozoom, dot sphere et ray corridor portes depuis le FxEngine
Arduino (boucles de rendu seules, sans CapsAllocator ni timelines).
Rendu 240x160 RGB565 en PSRAM double en pixels vers un lv_canvas
plein ecran derriere logo+scroller ; phases A 7s puis 3x3s ;
fallback starfield si l'alloc PSRAM echoue. Build vert (35% libre).
Trace serie du bout-en-bout melodie : note MIDI entendue,
progression pos/count du validateur, marqueur (reset) sur fausse
note, ligne dediee a la completion. Prerequis documente au test
physique P1.
Ajout des 3 dernieres scenes 3D de l'original : starfield 3D
(vol en z + trainees), voxel landscape (heightfield raycast) et
wirecube v9 (cube filaire Bresenham). L'intro tire 3 effets
distincts au hasard parmi les 6 a chaque boot (Fisher-Yates),
sans rallonger les 16 s. Build vert.
Sur carte, la boucle display (vTaskDelay 10 ms + rendu LVGL)
tourne sous 100 Hz : le dt fixe de 10 ms faisait trainer
l'horloge virtuelle derriere la deadline murale et la phase FX
ne demarrait jamais. Mesure du dt reel par delta de ticks
(borne 100 ms) + log de l'ordre des FX tires. Verifie sur
FNK0102H : intro fx order=0,2,3 a t=9.6s, 35 s sans panic.
scenario_mesh_peer_count() cable sur le stub sante (espnow_peers
restait a 0) ; reponse POST /game/peers construite avant
cJSON_Delete (use-after-free observe sur carte : alias illisible).
Teste sur FNK0102H : register live + NVS recharge au boot
(espnow_peers=2), relay -> timeout/unknown_peer attendus.
Frames courtes commandes/evenements sur la pile scenario_mesh
(sentinel seq=0xFFFF + kind, retrocompatible : les anciens
recepteurs les jettent via le check malformed). API additive
send_text/set_text_cb (dispatch hors callback WiFi via tache
dediee). Master : POST /game/espnow/cmd {peer|broadcast,command}
+ log des CMD/EVT recus. Teste sur FNK0102H : broadcast ESP_OK,
unicast sans recepteur ESP_ERR_TIMEOUT, alias inconnu 404.
Spec : docs/superpowers/specs/2026-06-11-espnow-cmd-evt-design.md
fix(box3): SPIFFS mount + canal WiFi configurable pour relais ESP-NOW
CI / platformio (pull_request) Failing after 3m54s
2517cef7db
scenario_server.c : SPIFFS_LABEL valait "storage" alors que la partition
s'appelle "spiffs" (partitions.csv) → esp_vfs_spiffs_register échouait en
ESP_ERR_NOT_FOUND, la BOX-3 ne pouvait persister aucun scénario reçu (HTTP
500 + relais ESP-NOW sans effet). Corrigé en "spiffs".

main.c + Kconfig.projbuild : ajout de CONFIG_ZACUS_WIFI_CHANNEL (défaut
0 = auto) câblé sur wifi_config.sta.channel. Sur réseau multi-AP / mesh
(même SSID sur plusieurs canaux), permet de forcer la BOX-3 co-canal avec
le master — prérequis ESP-NOW.

Validé sur matériel : master (ch6) → POST /game/scenario/relay → la BOX-3
reçoit + réassemble (679 B) via scenario_mesh, monte SPIFFS, hot-load OK,
reboot pour appliquer.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
electron merged commit c7485f272f into main 2026-06-13 14:44:15 +00:00
Sign in to join this conversation.