chore(build): scaffold ESP-IDF project for BOX-3

Context:
  New firmware "Lisael Box" targeting the ESP32-S3-BOX-3 (8MB PSRAM,
  16MB flash, LCD+touch, ES8311 codec, microSD). Establish the ESP-IDF
  5.4/5.5 build skeleton before adding modules.

Approach:
  Standard IDF project layout with a single big factory app (4MB) since
  the binary links the esp-box BSP, LVGL 9 and ESP-ADF. ESP-ADF is not a
  managed component, so the top-level CMake injects $ADF_PATH/components
  via EXTRA_COMPONENT_DIRS and warns clearly when ADF_PATH is unset.

Changes:
  - top-level CMakeLists with ADF_PATH wiring
  - partitions.csv (16MB: factory 4MB + FAT storage)
  - sdkconfig.defaults (+ .esp32s3: octal PSRAM, 16MB, 240MHz, LVGL/PSRAM)
  - main/CMakeLists, idf_component.yml (esp-box-3 ^3.2, built-in json)
  - Kconfig.projbuild (Wi-Fi, weather lat/lon, child volume cap)
  - lisael_config.h shared constants, .gitignore

Impact:
  Buildable skeleton; modules added in following commits. Not yet
  compiled (no IDF/ADF/board available) - see README.
This commit is contained in:
Clément Saillant
2026-06-14 00:40:07 +02:00
parent 7dfea75472
commit e44efe13e0
9 changed files with 308 additions and 0 deletions
+28
View File
@@ -0,0 +1,28 @@
# 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
# --- 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"