Files
RTC_BL_PHONE/CLAUDE.md
clement 1df3dc5971
Repo State / repo-state (push) Failing after 19s
docs: aligne README et CLAUDE.md sur le firmware ESP-IDF
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.
2026-06-21 21:54:59 +02:00

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