Files
2026-03-17 08:22:00 +01:00

85 lines
2.6 KiB
Plaintext

# ESP-IDF sdkconfig defaults for Android Auto Nav Head Unit
# Target: ESP32-S3, WT32-SC01 Plus
# CPU at max frequency (240MHz) — critical for SW H.264 decode + I420→RGB565
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=240
# Compiler optimization for performance (-O2 for ESP-IDF C code)
CONFIG_COMPILER_OPTIMIZATION_PERF=y
# Main task stack — needs to be large for TLS + protobuf
CONFIG_ESP_MAIN_TASK_STACK_SIZE=32768
# PSRAM (2MB on WT32-SC01 Plus)
CONFIG_SPIRAM=y
CONFIG_SPIRAM_MODE_QUAD=y
CONFIG_SPIRAM_SPEED_80M=y
CONFIG_SPIRAM_USE_MALLOC=y
CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=4096
CONFIG_SPIRAM_MALLOC_RESERVE_INTERNAL=32768
CONFIG_SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY=y
CONFIG_SPIRAM_MEMTEST=n
# Data Cache — maximize for PSRAM performance (H.264 decode reads PSRAM constantly)
CONFIG_ESP32S3_DATA_CACHE_64KB=y
CONFIG_ESP32S3_DATA_CACHE_LINE_64B=y
# Instruction cache — 32KB reduces flash cache misses in hot decode/render loops
CONFIG_ESP32S3_INSTRUCTION_CACHE_32KB=y
# Flash (16MB on WT32-SC01 Plus) — 80MHz QIO for faster code fetch
CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
CONFIG_ESPTOOLPY_FLASHFREQ_80M=y
# LCD I80 bus — use PLL clock source for stable 40MHz pixel clock
CONFIG_LCD_PERIPH_CLK_SRC_PLL160M=y
# Bluetooth — DISABLED to save ~20KB DRAM
CONFIG_BT_ENABLED=n
# WiFi — minimize internal SRAM usage (leave room for DMA buffers)
CONFIG_ESP_WIFI_ENABLED=y
CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER=y
CONFIG_ESP_WIFI_TX_BUFFER_TYPE=1
CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=8
CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=6
CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=16
CONFIG_ESP_WIFI_RX_BA_WIN=4
CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP=y
# H.264 software decoder (esp_h264 component)
CONFIG_ESP_H264_DECODER_IRAM=y
CONFIG_ESP_H264_DUAL_TASK=y
CONFIG_ESP_H264_DUAL_TASK_CORE=1
CONFIG_ESP_H264_DUAL_TASK_PRIORITY=19
# TLS — mbedtls for Android Auto TLS handshake
CONFIG_MBEDTLS_TLS_CLIENT=y
CONFIG_MBEDTLS_TLS_SERVER=y
CONFIG_MBEDTLS_SSL_ALPN=y
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=n
CONFIG_MBEDTLS_HARDWARE_AES=y
CONFIG_MBEDTLS_HARDWARE_SHA=y
CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y
CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC=y
# TCP/IP — 16KB windows for video streaming
CONFIG_LWIP_MAX_SOCKETS=10
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=16384
CONFIG_LWIP_TCP_WND_DEFAULT=16384
CONFIG_LWIP_TCP_RECVMBOX_SIZE=16
# Logging — disable dynamic level checks
CONFIG_LOG_DEFAULT_LEVEL_INFO=y
CONFIG_LOG_DYNAMIC_LEVEL_CONTROL=n
CONFIG_LOG_TAG_LEVEL_IMPL_NONE=y
# FreeRTOS — 1ms ticks for responsive scheduling
CONFIG_FREERTOS_HZ=1000
# Task watchdog — 15s for heavy decode workload
CONFIG_ESP_TASK_WDT_TIMEOUT_S=15
CONFIG_ESP_INT_WDT_CHECK_CPU1=n