2026-06-24 10:04:50 +02:00
2026-02-13 13:41:44 +01:00

RTC_BL_PHONE

Firmware ESP-IDF transformant un téléphone RTC à cadran en kit mains-libres Bluetooth (HFP-HF). On décroche le combiné pour répondre ou composer, l'audio est ponté entre le SCO Bluetooth du mobile et le codec local ES8388.

Matériel

  • ESP32 classique (carte Ai-Thinker A1S AudioKit, 8 MB PSRAM)
  • Codec audio ES8388 (I2S full-duplex, I2C de contrôle)
  • Interface ligne SLIC K50835F (détection crochet/SHK, sonnerie)
  • Cadran à impulsions + détection DTMF (Goertzel)
  • Port série usuel : /dev/cu.usbserial-0001 à 115200 bauds

Fonctionnement

Rôle Hands-Free Unit (HFP-HF) : c'est l'ESP32 qui se connecte au mobile.

  • Appairage « Just Works » (sous le nom RTC_BL_PHONE), reconnexion auto au mobile appairé.
  • Appel entrant : la cloche SLIC sonne jusqu'au décroché ou la fin d'appel ; décrocher répond et ouvre le pont audio.
  • Appel sortant : décrocher → tonalité → composer (impulsion ou DTMF) → 3 s de silence → l'appel part sur le mobile.
  • Audio mSBC 16 kHz (Wide Band Speech) via le chemin HCI, avec gains réglables, filtre passe-bande voix (3003400 Hz) et annulation d'écho.
  • Économie d'énergie (sur batterie) : power-down codec/I2S au repos, DFS 160/80 MHz + light sleep, poll adaptatif des tâches.

Build & Flash

ESP-IDF v5.4 (composants + CMake).

. $IDF_PATH/export.sh
idf.py set-target esp32          # une fois
idf.py build
idf.py -p /dev/cu.usbserial-0001 flash monitor

Réglage audio à la volée (CLI série)

Tonalités/voix se règlent sans reflash via le port série (persistance NVS) :

gspk N      gain haut-parleur
gmic N      gain micro
filt 0/1    filtre passe-bande micro
aec 0/1/2   écho : off / suppression / NLMS
aecd N      retard AEC      aecmu N   pas d'adaptation NLMS
status      état courant

Une TUI host est disponible : tools/phone_tui.py.

Organisation

Domaine Emplacement
Point d'entrée, wiring boot main/app_main.c
Codec ES8388 (I2C) components/hal_es8388/
I2S full-duplex + capture micro components/hal_i2s/
Audio : tonalités, pont SCO, gains, filtres, AEC components/audio_router/
DTMF, cadran, machine d'état d'appel components/dtmf/, components/dialer/, components/hook_monitor/, components/call_manager/
Interface ligne SLIC components/slic_ks0835/
Pile Bluetooth HFP-HF components/bt_hfp/
CLI série de réglage components/cli/
Specs & plans docs/superpowers/
S
Description
esp32 bluetooth audio to rtc phone
Readme GPL-3.0 1.2 MiB
Languages
C++ 72.1%
Python 14.9%
JavaScript 8.9%
HTML 2.5%
CSS 0.9%
Other 0.7%