1df3dc5971
Repo State / repo-state (push) Failing after 19s
Les deux fichiers decrivaient encore le projet Arduino d'origine (ESP32-S3, hotline WAV, ESP-NOW, pio run). Reecrits pour la realite actuelle : kit mains-libres Bluetooth HFP-HF sur ESP32 classique, build idf.py, CLI de reglage audio, organisation en components/. CLAUDE.md desormais versionne.
2.0 KiB
2.0 KiB
RTC_BL_PHONE
Firmware ESP-IDF (v5.4) d'un téléphone RTC à cadran transformé en kit mains-libres Bluetooth (HFP-HF). On décroche le combiné pour répondre/composer ; l'audio est ponté entre le SCO Bluetooth du mobile et le codec local ES8388.
Build & Flash
ESP-IDF + composants/CMake. Cible : ESP32 classique (carte A1S AudioKit, ES8388).
. $IDF_PATH/export.sh
idf.py build
idf.py -p /dev/cu.usbserial-0001 flash monitor # Ctrl+] pour quitter
Pas de PlatformIO/Arduino : le build est piloté par CMakeLists.txt racine +
main/ + components/ (auto-découverts par project.cmake).
Réglage à la volée (CLI série, 115200)
Le firmware expose une CLI texte pour régler l'audio sans reflash (persistance NVS) :
gspk N, gmic N, filt 0/1, aec 0/1/2, aecd N, aecmu N, status.
Enregistrée dans components/cli/. TUI host : tools/phone_tui.py.
Où chercher
| Tâche | Emplacement |
|---|---|
| Point d'entrée, wiring boot, power management | main/app_main.c |
| Codec ES8388 (I2C, volume, veille) | components/hal_es8388/ |
| I2S full-duplex + capture micro | components/hal_i2s/ |
| Tonalités, pont SCO, gains, filtres biquad, AEC | components/audio_router/ |
| DTMF (Goertzel) | components/dtmf/ |
| Cadran à impulsions, crochet | components/dialer/, components/hook_monitor/ |
| Machine d'état d'appel (FSM + file BT) | components/call_manager/ |
| Interface ligne SLIC (KS0835) | components/slic_ks0835/ |
| Pile Bluetooth HFP-HF (Bluedroid) | components/bt_hfp/ |
| CLI série | components/cli/ |
| Specs, plans, notes | docs/superpowers/ |
Conventions
- Drivers nouvelle API ESP-IDF v5 uniquement (
driver/i2c_master.h,driver/i2s_std.h…), jamais l'API legacy. - Audio temps réel : tâches FreeRTOS + rings + queues ; l'audio tourne sur l'horloge I2S, indépendante des polls des tâches.
- Économie d'énergie active (batterie) : codec/I2S en veille au repos, DFS + light sleep, poll des tâches adaptatif (rapide en appel, lent au repos).