fcb872c226
CI / platformio (pull_request) Failing after 10m4s
- voice_pipeline : mutex play_lock pris dans play_start / rendu dans play_end
(+ tous chemins d'erreur). Sérialise TTS et musique sur le canal I2S TX
partagé ; un play_start concurrent attend 2 s puis renvoie BUSY.
- media_manager : décodage MP3 via helix (chmorgan/esp-libhelix-mp3). Refactor
playback_task en dispatcher d'extension → stream_wav / stream_mp3. stream_mp3
décode frame par frame (buffers heap), downmix stéréo→mono, volume, feed I2S.
Stack tâche 5120→8192 (le décodeur consomme de la pile).
- sdkconfig.defaults : CONFIG_FATFS_LFN_HEAP — les assets SD ont des noms > 8.3
(SCENE_WIN.mp3, sonar_hint.mp3…) ; sans LFN fopen échoue ("open failed").
Validé sur Freenove : upload SCENE_WIN.mp3 (510 Ko, stéréo) sur /sdcard →
play → helix décode 22050 Hz 2ch → downmix → I2S MAX98357A. win.mp3 22050 mono
idem. Mutex : TTS et musique ne peuvent plus se chevaucher sur le DAC.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
78 lines
3.8 KiB
Plaintext
78 lines
3.8 KiB
Plaintext
# sdkconfig.defaults — Zacus master ESP-IDF scaffold (P1 first slice)
|
|
#
|
|
# Target: Freenove ESP32-S3 WROOM N16R8 (8 MB Octal PSRAM, 16 MB flash).
|
|
# Provides the minimum config to boot, mount LittleFS, and run the inherited
|
|
# ota_server component. Voice / NPC / vision configs come in later P1 slices.
|
|
|
|
# ─── Target ──────────────────────────────────────────────────────────────────
|
|
CONFIG_IDF_TARGET="esp32s3"
|
|
CONFIG_IDF_TARGET_ESP32S3=y
|
|
|
|
# ─── Flash ───────────────────────────────────────────────────────────────────
|
|
CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y
|
|
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
|
|
CONFIG_ESPTOOLPY_FLASHFREQ_80M=y
|
|
|
|
# ─── PSRAM (Octal 80 MHz, required for esp-sr buffers in P3+) ────────────────
|
|
CONFIG_SPIRAM=y
|
|
CONFIG_SPIRAM_MODE_OCT=y
|
|
CONFIG_SPIRAM_SPEED_80M=y
|
|
CONFIG_SPIRAM_USE_MALLOC=y
|
|
CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y
|
|
|
|
# ─── Partition table (custom, supports OTA + LittleFS dual boot) ─────────────
|
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
|
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
|
|
|
|
# ─── HTTP server (used by ota_server, port 80) ───────────────────────────────
|
|
CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024
|
|
CONFIG_HTTPD_MAX_URI_LEN=512
|
|
|
|
# ─── Wi-Fi (STA + AP fallback for first-boot provisioning) ───────────────────
|
|
CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=10
|
|
CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=32
|
|
CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=32
|
|
CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y
|
|
CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y
|
|
CONFIG_ESP_WIFI_NVS_ENABLED=y
|
|
CONFIG_LWIP_LOCAL_HOSTNAME="zacus-master"
|
|
|
|
# ─── FreeRTOS ────────────────────────────────────────────────────────────────
|
|
CONFIG_FREERTOS_HZ=1000
|
|
|
|
# ─── Logging ─────────────────────────────────────────────────────────────────
|
|
CONFIG_LOG_DEFAULT_LEVEL_INFO=y
|
|
CONFIG_LOG_COLORS=y
|
|
|
|
# ─── Bootloader / OTA rollback ───────────────────────────────────────────────
|
|
CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=y
|
|
|
|
# ─── ESP-SR (slice 6 — voice_pipeline) ───────────────────────────────────────
|
|
# Standard placeholder wake-word: "Hi ESP" (wn9_hiesp). Custom Zacus model
|
|
# is out of scope here (Espressif training, P4 voice spec). Keep MultiNet
|
|
# disabled — STT happens off-device on MacStudio (whisper). Disabling MN
|
|
# saves >1 MB of flash + lots of PSRAM at runtime.
|
|
CONFIG_SR_WN_WN9_HIESP=y
|
|
CONFIG_SR_MN_CN_NONE=y
|
|
CONFIG_SR_MN_EN_NONE=y
|
|
CONFIG_MODEL_IN_FLASH=y
|
|
CONFIG_AFE_INTERFACE_V1=y
|
|
|
|
# LVGL (display_ui phase 2a) — mirrors original ui_freenove_allinone lv_conf.h:
|
|
# depth 16 + swap 0 are lvgl defaults; Montserrat 24/28 enabled. Mem pool 48KB
|
|
CONFIG_LV_MEM_SIZE_KILOBYTES=48
|
|
CONFIG_LV_FONT_MONTSERRAT_24=y
|
|
CONFIG_LV_FONT_MONTSERRAT_28=y
|
|
|
|
# LVGL file access + PNG icons (shell apps from littlefs)
|
|
CONFIG_LV_USE_FS_STDIO=y
|
|
CONFIG_LV_FS_STDIO_LETTER=76
|
|
CONFIG_LV_FS_STDIO_PATH="/littlefs"
|
|
CONFIG_LV_USE_PNG=y
|
|
|
|
# P4: FATFS Long File Names (heap) — assets sur SD ont des noms > 8.3
|
|
# (SCENE_WIN.mp3, sonar_hint.mp3, hotline_tts/…). Sans ça fopen échoue.
|
|
CONFIG_FATFS_LFN_HEAP=y
|
|
CONFIG_FATFS_MAX_LFN=255
|