Custom ESP32-WROOM-32E + Si3210 SLIC board replacing the ESP32-A1S
dev kit (final PLIP target, RJ9 handset). Generated via tools/
gen_si3210_lib.py (symbol + QFN-38 footprint), gen_schematic.py
(parses standard KiCad libs, 45 instances, 157 global labels on pin
ends) and gen_pcb.py (58x38mm outline, 41 footprints placed per the
plan, nets assigned, unrouted).
ERC: 0 violations. Schematic follows the spec GPIO map and the plan's
passive network. PCB placed not routed (Freerouting + DRC + gerbers
remain — see README). BOM in JLCPCB format; CP2102N/transformer/RJ9
LCSC parts marked TBD.
WARNINGS (README): the Si3210 -72V DC-DC stage is simplified and must
be checked against the Skyworks datasheet/AN35 before fab; line
protection is minimal; human review required before ordering.
Three fixes from dropped codex branch applied to correct file paths:
- I2S channel: hardcode ONLY_LEFT for mono mic consistency
- CORS: restrict to http://localhost (was wildcard *)
- AP password: harden from "usonradio" to "zacus-radio-42"
Ref: docs/debt/codex-firmware-fixes-to-apply.md
- Updated `validate_scenario.py` to handle V2 scenario YAML files, introducing new required keys and validation logic.
- Added support for legacy V1 scenarios with an option to allow migration.
- Modified `run_content_checks.sh` to validate V2 scenarios and associated audio and printables manifests.
- Introduced SceneGyrophareConfig structure for configuration parameters.
- Implemented SceneGyrophare class with methods for creating, destroying, and updating the gyrophare effect.
- Added rendering functions for background, beams, and warning triangle.
- Integrated timer for animation updates based on frame rate.
- Created a log file for ESP32 audio kit boot information.
- Added WifiCredentialsStorage class to handle loading and saving WiFi SSID and password using Preferences.
- Integrated WifiCredentialsStorage into WifiManager for automatic credential management during connection attempts.
feat(wifi): create WifiManager for enhanced WiFi handling
- Introduced WifiManager class to manage WiFi connections, including fallback AP functionality.
- Implemented methods for connecting, reconnecting, and disconnecting from WiFi networks.
- Added JSON serialization for WiFi status and scanning capabilities.
chore(tools): add autoflash script for automated flashing of devices
- Created autoflash.py script to automate the detection, building, and uploading of firmware to various devices.
- Included configuration file (flash_config.json) for defining roles and flashing methods.
docs: add README for flashing tools
- Documented usage instructions for the autoflash tool, including prerequisites and examples.
chore(tools): implement repo state collection script
- Added collect.py script to generate repository state files in Markdown and JSON formats.
- Captures changes, project kind, and impact gates for better tracking of repository modifications.
- Created AGENT_TODO 3.md to track progress on backend integration with LovyanGFX.
- Added repo-map 3.svg for visual representation of project structure.
- Configured .gitmodules for esp32-llm and esp-picotts submodules.
- Documented critical gate issues with WiFiServer.h in RC_AUTOFIX_CICD 3.md.
- Developed fiches for AudioManager and BluetoothManager detailing interfaces and usage.
- Compiled hw_validation_a252_wifi_report 3.md for hardware validation results.
- Established plan_delegation_agents 3.md outlining roles and responsibilities for project agents.
- Defined multitasking architecture in plan_multitache_rtos 3.md.
- Outlined comprehensive testing strategy in plan_tests_livraison 3.md.
- Documented automated testing protocol in protocole_test_qa_moniteur_serie 3.md.
- Clarified roles in roles_agents 3.md for effective team collaboration.
- Validated WebUI functionality in tests_webui 3.md.
- Added idf_component 3.yml for esp-picotts integration.
- Included picoacph 3.h for text-to-speech processing capabilities.
* Initial plan
* Ionisation documentaire complète — Zacus ⚡
Le dépôt a été recalibré.
Le bruit documentaire a été filtré.
Le signal narratif est désormais stable.
Refactor massif des README.
Restructuration des flux.
Localisation renforcée.
Checklists clarifiées.
Stations réalignées.
Script minute-par-minute recalibré.
Solution complète éthiquement consolidée.
Printables et outils d’image stabilisés.
Ce n’est pas une mise à jour.
C’est une stabilisation de phase.
LA 440 est propre.
LEFOU est structuré.
WIN est cohérent.
Documentation :
moins de friction,
plus de méthode,
plus d’alignement canon.
⚛ L’électron rare
⚡ unstable by design
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Clément SAILLANT <108685187+electron-rare@users.noreply.github.com>
- Removed 9 unused screen JSON files: SCENE_BROKEN, SCENE_CAMERA_SCAN, SCENE_FIREWORKS, SCENE_LA_DETECT, SCENE_MEDIA_ARCHIVE, SCENE_SIGNAL_SPIKE, SCENE_WIN, SCENE_WINNER, SCENE_WIN_ETAPE.
- Updated AGENT_TODO.md to reflect the cleanup actions and results.
- Enhanced StorageManager to handle SD card access failures with a failure streak mechanism, switching to LittleFS after repeated failures.
- Added support for aliasing long action IDs to short filenames in the generator.
- Improved scenario manager to handle different key names for action IDs in YAML files.
- Updated multiple scene JSON files to improve visual themes, effects, and transitions.
- Changed effect speeds and added missing timeline objects for better scene management.
- Enhanced SCENE_LA_DETECTOR, SCENE_LEFOU_DETECTOR, SCENE_MEDIA_MANAGER, SCENE_QR_DETECTOR, SCENE_WARNING, SCENE_WIN_ETAPE1, and SCENE_WIN_ETAPE2 with refined titles, subtitles, and symbols.
- Introduced a new user live logger script to capture serial logs during real user playtests for better debugging and analysis.
- Added a workbench export/import tool to streamline scene editing and synchronization with JSON files.
- Improved FX verificator documentation to clarify usage modes and verification processes.
- Implemented QrUnlockApp class with methods for lifecycle management (begin, start, update, stop, handleEvent) and snapshot retrieval.
- Created header file for QrUnlockApp with necessary method declarations and private members.
- Added Yamale schema for scenario template to define prompt input and optional firmware snapshot.
- Added HAL_VERIFCATOR_STATUS skill for runtime validation of camera, microphone, and amplifier states based on scene requirements.
- Introduced FX_VERIFICATOR skill to validate runtime health of FX components via serial telemetry.
- Created SCENE_VERIFICATOR skill to ensure strict and reproducible scene transitions with test triggers.
- Refactored ScenarioManager and UiManager to support new scene transition orchestration.
- Implemented SceneFxOrchestrator for explicit ownership planning of scene runtime resources.
- Enhanced scene rendering logic to apply dynamic and static state changes based on scene transitions.
- Updated resolve_ports.py to remap ESP8266 to ESP32 for single-board setups.
- Added documentation for new skills and their usage.