chore(build): archive legacy multi-target PlatformIO config

Move alternate root PlatformIO file under docs/legacy and document single-entrypoint policy for release/CI.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
L'électron rare
2026-03-11 00:03:58 +01:00
parent c58d711716
commit 226e15de7b
2 changed files with 306 additions and 0 deletions
@@ -0,0 +1,12 @@
# Legacy PlatformIO Multi-target Snapshot
`platformio.multi-target.ini` was moved out of the repository root on 2026-03-10.
Rationale:
- keep `platformio.ini` as the single release entrypoint
- avoid ambiguous root configs during firmware build/review
- preserve the old multi-target configuration for reference only
Policy:
- release and CI must target `platformio.ini` (`freenove_esp32s3_full_with_ui`)
- do not reintroduce alternate root `platformio*.ini` files
+294
View File
@@ -0,0 +1,294 @@
#
# PlatformIO Project Configuration File (global)
# Permet de builder tous les firmwares depuis la racine du projet
#
[platformio]
default_envs = freenove_esp32s3_full_with_ui
src_dir = ui_freenove_allinone
; ===================== ESP32 =====================
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
board_build.partitions = no_ota.csv
board_build.filesystem = littlefs
build_src_filter =
-<*>
+<esp32_audio/src/>
+<../libs/story/src/>
+<../libs/story/story_engine.cpp>
-<../libs/story/src/ui/mp3_ui_model_v2.cpp>
monitor_speed = 115200
monitor_filters = time, esp32_exception_decoder
monitor_echo = yes
monitor_eol = LF
monitor_rts = 0
monitor_dtr = 0
lib_deps =
earlephilhower/ESP8266Audio@^1.9.7
https://github.com/pschatzmann/arduino-audio-tools.git#v1.2.2
sensorium/Mozzi@^2.0.2
https://github.com/pschatzmann/arduino-audio-driver.git#84c7de2eb47efe43bcc769783bb1853ee8a32f21
bblanchon/ArduinoJson@^6.21.5
https://github.com/me-no-dev/AsyncTCP.git
https://github.com/me-no-dev/ESPAsyncWebServer.git
build_flags =
-I$PROJECT_DIR/protocol
-Ihardware/firmware/esp32_audio/src
-Ihardware/libs/story/src
-Ihardware/libs/story
-DCORE_DEBUG_LEVEL=1
-DUSON_STORY_V2_DEFAULT=1
-DUSON_TRACK_CATALOG_MAX_TRACKS=200
; ===================== freenove_esp32s3_full_with_ui =====================
[env:freenove_esp32s3_full_with_ui]
platform = espressif32@^6.5.0
# Physical board: ESP32-S3-WROOM-1-N16R8 (16MB flash / 16MB PSRAM)
board = esp32-s3-devkitc-1
framework = arduino
board_build.arduino.memory_type = qio_opi
board_build.psram_type = opi
upload_port = /dev/cu.usbmodem5AB907*
monitor_port = /dev/cu.usbmodem5AB907*
extra_scripts = pre:scripts/pio_prepare_webui_fonts.py
board_build.flash_size = 16MB
board_upload.flash_size = 16MB
board_upload.maximum_size = 6291456
board_upload.offset_address = 0x20000
board_build.partitions = partitions/freenove_esp32s3_app6mb_fs6mb.csv
board_build.filesystem = littlefs
build_src_filter =
-<*>
+<src/>
-<src/app/runtime_web_service?2.cpp>
-<src/ui/fonts/lv_font_ibmplexmono_bold_12?2.c>
-<src/ui/fonts/lv_font_ibmplexmono_italic_24?2.c>
-<src/ui/ui_manager_display?2.cpp>
-<src/ui/ui_manager_intro?2.cpp>
-<src/main.cpp>
-<src/scenario_manager.cpp>
-<src/ui_manager.cpp>
-<src/audio_manager.cpp>
-<src/storage_manager.cpp>
-<src/camera_manager.cpp>
-<src/button_manager.cpp>
-<src/touch_manager.cpp>
-<src/hardware_manager.cpp>
-<src/network_manager.cpp>
-<src/media_manager.cpp>
monitor_speed = 115200
monitor_filters = time, esp32_exception_decoder
monitor_echo = yes
monitor_eol = LF
monitor_rts = 0
monitor_dtr = 0
lib_deps =
bodmer/TFT_eSPI@^2.5.43
lovyan03/LovyanGFX@^1.2.7
lvgl/lvgl@^8.4.0
esphome/ESP32-audioI2S@^2.3.0
bblanchon/ArduinoJson@^6.21.5
adafruit/Adafruit NeoPixel@^1.12.3
https://github.com/alvarowolfx/ESP32QRCodeReader.git#dd07abcf062c4c1b120e0584df57c0c92ca77daf
https://github.com/codeplea/tinyexpr.git#4a7456e2eab88b4c76053c1c4157639ccb930e2b
build_flags =
-I$PROJECT_DIR/protocol
-I$PROJECT_DIR/ui_freenove_allinone/include
-I$PROJECT_DIR/lib/zacus_story_portable/include
-O2
-ffast-math
-DCORE_DEBUG_LEVEL=0
-DARDUINO_LOOP_STACK_SIZE=16384
-DZACUS_SPRINT_DIAG_MODE=1
-DBOARD_HAS_PSRAM
-DFREENOVE_USE_PSRAM=1
-DFREENOVE_PSRAM_UI_DRAW_BUFFER=1
-DFREENOVE_PSRAM_CAMERA_FRAMEBUFFER=1
-DZACUS_FW_VERSION=\"freenove_esp32s3\"
-DUSE_LVGL=1
-DUSE_AUDIO=1
-DUSE_CAM=1
-DUSE_SD=1
-DUI_COLOR_256=0
-DUI_COLOR_565=1
-DUI_FORCE_THEME_256=0
-DUI_DRAW_BUF_LINES=16
-DUI_DRAW_BUF_IN_PSRAM=1
-DUI_AUDIO_RINGBUF_IN_PSRAM=1
-DUI_CAMERA_FB_IN_PSRAM=1
-DUI_DMA_TX_IN_DRAM=1
-DUI_DMA_FLUSH_ASYNC=1
-DUI_DMA_RGB332_ASYNC_EXPERIMENTAL=0
-DUI_DMA_TRANS_BUF_LINES=1
-DUI_ENABLE_SIMD_PATH=1
-DUI_SIMD_EXPERIMENTAL=0
-DUI_SIMD_USE_ESP_DSP=1
-DUI_FULL_FRAME_BENCH=0
-DUI_DEMO_AUTORUN_WIN_ETAPE=0
-DUI_WIN_ETAPE_SIMPLIFIED=0
-DUI_FX_BACKEND_LGFX=1
-DUI_FX_DMA_BLIT=0
-DUI_BOING_SHADOW_ASM=1
-DUI_FX_SPRITE_W=160
-DUI_FX_SPRITE_H=120
-DUI_FX_TARGET_FPS=12
-DFREENOVE_ENABLE_TASK_TOPOLOGY=0
-DUI_LV_MEM_SIZE_KB=54
-DUI_FONT_PIXEL_ENABLE=1
-DUI_FONT_TITLE_XL_ENABLE=1
-DUI_ENABLE_MEM_MONITOR=0
-DUI_ENABLE_PERF_MONITOR=0
-DLV_CONF_INCLUDE_SIMPLE=1
-DFREENOVE_MEDIA_KIT
-include ui_freenove_config.h
-DTFT_RGB_ORDER=TFT_BGR
-DFREENOVE_LCD_VARIANT_FNK0102A=0
-DFREENOVE_LCD_VARIANT_FNK0102B=0
-DFREENOVE_LCD_VARIANT_FNK0102H=1
-DFREENOVE_LCD_USE_HSPI=1
-DFREENOVE_HAS_TOUCH=0
[env:freenove_esp32s3]
extends = env:freenove_esp32s3_full_with_ui
[env:freenove_esp32s3_touch]
extends = env:freenove_esp32s3_full_with_ui
build_unflags =
-DFREENOVE_HAS_TOUCH=0
build_flags =
${env:freenove_esp32s3_full_with_ui.build_flags}
-DFREENOVE_HAS_TOUCH=1
[env:esp32_release]
extends = env:esp32dev
build_unflags = -DUSON_STORY_V2_DEFAULT=1
build_flags = ${env:esp32dev.build_flags} -DUSON_STORY_V2_DEFAULT=0
; ===================== ui_rp2040_ili9488 =====================
[env:ui_rp2040_ili9488]
platform = https://github.com/maxgerhardt/platform-raspberrypi.git
board = rpipico
framework = arduino
build_src_filter =
-<*>
+<ui/rp2040_tft/src/>
monitor_speed = 115200
board_build.filesystem = littlefs
lib_deps =
bodmer/TFT_eSPI@^2.5.43
paulstoffregen/XPT2046_Touchscreen@0.0.0-alpha+sha.26b691b2c8
bblanchon/ArduinoJson@^6.21.5
lvgl/lvgl@^8.3.11
build_flags =
-I$PROJECT_DIR/protocol
-Ihardware/firmware/ui/rp2040_tft/include
-DLV_CONF_INCLUDE_SIMPLE
-DUSER_SETUP_LOADED=1
-DTFT_MISO=4
-DTFT_MOSI=3
-DTFT_SCLK=2
-DTFT_CS=5
-DTFT_DC=6
-DTFT_RST=7
-DTOUCH_CS=9
-DSPI_FREQUENCY=40000000
-DSPI_READ_FREQUENCY=20000000
-DSPI_TOUCH_FREQUENCY=2500000
-DSUPPORT_TRANSACTIONS
-DUI_LCD_SPI_HOST=0
-DUI_TOUCH_IRQ_PIN=15
-DUI_UART_RX_PIN=1
-DUI_UART_TX_PIN=0
-DUI_SERIAL_BAUD=57600
-DUI_ROTATION=1
-DILI9488_DRIVER
-DTFT_RGB_ORDER=TFT_BGR
; ===================== (ui_rp2040_ili9486) =====================
[env:ui_rp2040_ili9486]
platform = https://github.com/maxgerhardt/platform-raspberrypi.git
board = rpipico
framework = arduino
build_src_filter =
-<*>
+<ui/rp2040_tft/src/>
monitor_speed = 115200
board_build.filesystem = littlefs
lib_deps =
bodmer/TFT_eSPI@^2.5.43
paulstoffregen/XPT2046_Touchscreen@0.0.0-alpha+sha.26b691b2c8
bblanchon/ArduinoJson@^6.21.5
lvgl/lvgl@^8.3.11
build_flags =
-I$PROJECT_DIR/protocol
-Ihardware/firmware/ui/rp2040_tft/include
-DLV_CONF_INCLUDE_SIMPLE
-DUSER_SETUP_LOADED=1
-DFREENOVE_MEDIA_KIT
-include ui_freenove_config.h
-DFREENOVE_LCD_WIDTH=480
-DFREENOVE_LCD_HEIGHT=320
-DFREENOVE_TFT_CS=5
-DFREENOVE_TFT_DC=6
-DFREENOVE_TFT_RST=7
-DFREENOVE_TFT_MOSI=3
-DFREENOVE_TFT_MISO=4
-DFREENOVE_TFT_SCK=2
-DFREENOVE_TOUCH_CS=9
-DFREENOVE_TOUCH_IRQ=15
-DFREENOVE_UART_TX=0
-DFREENOVE_UART_RX=1
-DFREENOVE_LCD_ROTATION=1
-DSPI_FREQUENCY=40000000
-DSPI_READ_FREQUENCY=20000000
-DSPI_TOUCH_FREQUENCY=2500000
-DSUPPORT_TRANSACTIONS
-DUI_LCD_SPI_HOST=0
-DUI_SERIAL_BAUD=57600
-DUI_ROTATION=1
-DILI9488_DRIVER
-DTFT_RGB_ORDER=TFT_BGR
; ===================== ESP8266 OLED =====================
[env:esp8266_oled]
platform = espressif8266
board = nodemcuv2
framework = arduino
build_src_filter =
-<*>
+<ui/esp8266_oled/src/>
monitor_speed = 115200
monitor_filters = time, colorize, esp8266_exception_decoder
monitor_echo = yes
monitor_eol = LF
monitor_rts = 0
monitor_dtr = 0
lib_deps =
adafruit/Adafruit SSD1306@^2.5.13
adafruit/Adafruit GFX Library@^1.12.1
plerup/EspSoftwareSerial@^8.2.0
olikraus/U8g2@^2.36.2
bblanchon/ArduinoJson@^6.21.5
build_flags =
-Iprotocol
#
# Pour builder tous les firmwares :
# pio run
# Pour builder un firmware spécifique :
# pio run -e <nom_env>
# Pour flasher/monitorer :
# pio run -e <env> -t upload --upload-port <PORT>
# pio device monitor -e <env> --port <PORT>
#
# Voir docs/protocols/ pour la documentation centralisée
#