# Lisael Box — committed defaults (target-independent). # Target-specific overrides live in sdkconfig.defaults.esp32s3. # Regenerate sdkconfig with: idf.py set-target esp32s3 && idf.py reconfigure # --- Partition table --------------------------------------------------------- CONFIG_PARTITION_TABLE_CUSTOM=y CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" # --- Logging / build --------------------------------------------------------- CONFIG_LOG_DEFAULT_LEVEL_INFO=y CONFIG_COMPILER_OPTIMIZATION_PERF=y # --- Bootloader size: keep the 2nd-stage bootloader inside iram_seg ---------- # Without these the bootloader links at -O2 (PERF) and pulls in the full # libc printf machinery (svfiprintf ~9 KB) which overflows the 12 KB iram_seg. # SIZE (-Os) reduces code but alone is not sufficient; dropping the log level # from INFO to WARN removes the format-string I/O paths that pull libc stdio. CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y CONFIG_BOOTLOADER_LOG_LEVEL_WARN=y # --- FreeRTOS ---------------------------------------------------------------- # 1 kHz tick gives smoother LVGL animations (bubble breathing, transitions). CONFIG_FREERTOS_HZ=1000 # --- mbedTLS / TLS ----------------------------------------------------------- # open-meteo.com is HTTPS; webradio streams may be HTTPS too. Use the global # CA store bundle so we don't have to embed individual certs. CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y # --- HTTP client ------------------------------------------------------------- CONFIG_ESP_TLS_INSECURE=n # --- esp-box BSP ------------------------------------------------------------- # SD card mount point used throughout the firmware (see audio/sd_player.c). CONFIG_BSP_SD_MOUNT_POINT="/sdcard" # Polices LVGL utilisées par l'UI Lisael Box (titres date/heure, gros boutons) CONFIG_LV_FONT_MONTSERRAT_28=y CONFIG_LV_FONT_MONTSERRAT_48=y # GCC 14 (esp 14.2) ajoute des warnings -Werror agressifs (array-bounds faux positifs) CONFIG_COMPILER_DISABLE_GCC14_WARNINGS=y # Diagnostic : console primaire sur USB-Serial-JTAG (logs boot+app sur l'USB-C), # car l'UART0 par défaut n'est pas exposé sur le port USB de la carte. CONFIG_ESP_CONSOLE_UART_DEFAULT=n CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG=y # --- FATFS long file names (covers podcasts/routines, manifestes lus par fopen) --- CONFIG_FATFS_LFN_HEAP=y CONFIG_FATFS_MAX_LFN=255 # --- LVGL stdio FS driver (covers podcasts via "S:" ; lettre 'S' = ASCII 83) --- CONFIG_LV_USE_FS_STDIO=y CONFIG_LV_FS_STDIO_LETTER=83 # --- mbedTLS : allocation externe + buffers dynamiques (évite le reset TLS PSRAM) --- CONFIG_MBEDTLS_EXTERNAL_MEM_ALLOC=y CONFIG_MBEDTLS_DYNAMIC_BUFFER=y # --- WiFi : buffers TX dynamiques (libère la RAM interne) --- # NOTE IDF 5.4: ESP_WIFI_DYNAMIC_TX_BUFFER is excluded when # SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y (set in sdkconfig.defaults.esp32s3). # On this board PSRAM absorbs WiFi/LwIP buffers, so static TX (TYPE=0) is # correct per Kconfig deps. TX_BUFFER_TYPE=1 is NOT achievable here. # The line below selects the dynamic choice; Kconfig will silently revert to # static when PSRAM+WiFi alloc is active — this is expected behaviour. CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER=y # --- Wi-Fi RAM tuning (BOX-3 internal RAM is tight; restore lost runtime tuning) # esp_wifi_init NO_MEM came from too many static RX buffers in internal DRAM. CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=6 CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=24 CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=24 CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y CONFIG_ESP_WIFI_RX_BA_WIN=6 CONFIG_MBEDTLS_DYNAMIC_FREE_CA_CERT=y CONFIG_ESP_WIFI_STATIC_TX_BUFFER_NUM=4