From b13d90bec6e31b5fd42bd106c40ca2185f2b6590 Mon Sep 17 00:00:00 2001 From: Damian Schneider Date: Sun, 30 Nov 2025 15:35:25 +0100 Subject: [PATCH] FIX for adafruit portal S3: remove extra flash section & use default WLED partitions (#5113) * remove extra flash section, rename board file * matrixportal: change partitions to standard 8MB plus minor name adjustment (adding "for WLED") Co-authored-by: Frank <91616163+softhack007@users.noreply.github.com> --- .../adafruit_matrixportal_esp32s3_wled.json | 58 +++++++++++++++++++ platformio.ini | 20 +++---- 2 files changed, 67 insertions(+), 11 deletions(-) create mode 100644 boards/adafruit_matrixportal_esp32s3_wled.json diff --git a/boards/adafruit_matrixportal_esp32s3_wled.json b/boards/adafruit_matrixportal_esp32s3_wled.json new file mode 100644 index 00000000..3b487d0d --- /dev/null +++ b/boards/adafruit_matrixportal_esp32s3_wled.json @@ -0,0 +1,58 @@ +{ + "build": { + "arduino":{ + "ldscript": "esp32s3_out.ld", + "partitions": "default_8MB.csv" + }, + "core": "esp32", + "extra_flags": [ + "-DARDUINO_ADAFRUIT_MATRIXPORTAL_ESP32S3", + "-DARDUINO_USB_CDC_ON_BOOT=1", + "-DARDUINO_RUNNING_CORE=1", + "-DARDUINO_EVENT_RUNNING_CORE=1", + "-DBOARD_HAS_PSRAM" + ], + "f_cpu": "240000000L", + "f_flash": "80000000L", + "flash_mode": "qio", + "hwids": [ + [ + "0x239A", + "0x8125" + ], + [ + "0x239A", + "0x0125" + ], + [ + "0x239A", + "0x8126" + ] + ], + "mcu": "esp32s3", + "variant": "adafruit_matrixportal_esp32s3" + }, + "connectivity": [ + "bluetooth", + "wifi" + ], + "debug": { + "openocd_target": "esp32s3.cfg" + }, + "frameworks": [ + "arduino", + "espidf" + ], + "name": "Adafruit MatrixPortal ESP32-S3 for WLED", + "upload": { + "flash_size": "8MB", + "maximum_ram_size": 327680, + "maximum_size": 8388608, + "use_1200bps_touch": true, + "wait_for_upload_port": true, + "require_upload_port": true, + "speed": 460800 + }, + "url": "https://www.adafruit.com/product/5778", + "vendor": "Adafruit" +} diff --git a/platformio.ini b/platformio.ini index ef046f4a..946c951b 100644 --- a/platformio.ini +++ b/platformio.ini @@ -110,7 +110,7 @@ default_envs = esp01_1MB_S ;; athom_music_esp32_4MB_M - adafruit_matrixportal_esp32s3_tinyUF2 ;; HUB75 supported, uses adafruit bootloader + adafruit_matrixportal_esp32s3 ;; HUB75 supported, uses adafruit bootloader ; adafruit_matrixportal_esp32s3_legacy ;; try this if the "tinyUF2" firmware doesn't run on your board ; Go to MoonModules environments for environments @@ -3011,12 +3011,12 @@ lib_ignore = ; RAM: [=== ] 26.0% (used 85100 bytes from 327680 bytes) ; Flash: [========= ] 90.0% (used 1534269 bytes from 1703936 bytes) -[env:adafruit_matrixportal_esp32s3_legacy] +[env:adafruit_matrixportal_esp32s3_wled] ; ESP32-S3 processor, 8 MB flash, 2 MB of PSRAM, dedicated driver pins for HUB75 extends = esp32_4MB_V4_M_base platform = ${esp32.platformV4_xp} ;; 6.5.0 = first platform release supporting matrixportal platform_packages = ${esp32.platformV4_packages_xp} ;; arduino-esp32 2.0.14 needed - previous versions were missing files for matrixportal -board = adafruit_matrixportal_esp32s3 +board = adafruit_matrixportal_esp32s3_wled board_build.partitions = ${esp32.large_partitions} ;; default 8MB WLED partitions ;; board_build.f_flash = 80000000L ;; this is the default for board = adafruit_matrixportal_esp32s3 @@ -3028,7 +3028,7 @@ build_unflags = ${env:esp32S3_8MB_M.build_unflags} ;; use the same as "normal" build_flags = ${common.build_flags} ${esp32s3.build_flags} -Wno-misleading-indentation -Wno-format-truncation ${common_mm.build_flags_S} ${Speed_Flags.build_flags_V4} ;; -O2 -> optimize for speed instead of size - -D WLED_RELEASE_NAME=matrixportal_esp32s3_legacy + -D WLED_RELEASE_NAME=matrixportal_esp32s3 -D SERVERNAME='"WLED-MatrixPortalS3"' ; Serial debug enabled -DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT=1 -DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_USB_DFU_ON_BOOT=1 ;; for Hardware-CDC USB mode -D ARDUINO_USB_CDC_ON_BOOT=0 @@ -3054,14 +3054,12 @@ monitor_filters = esp32_exception_decoder ;; this buildenv uses the original bootloader and partions from adafruit [env:adafruit_matrixportal_esp32s3_tinyUF2] -extends = env:adafruit_matrixportal_esp32s3_legacy - +extends = env:adafruit_matrixportal_esp32s3_wled board_build.partitions = tools/partitions-8MB_spiffs-tinyuf2.csv ;; use original adafruit 8MB tinyUF2 partitioning - ;; we just replace WLED_RELEASE_NAME -build_unflags = ${env:adafruit_matrixportal_esp32s3_legacy.build_unflags} - -D WLED_RELEASE_NAME=matrixportal_esp32s3_legacy -build_flags = ${env:adafruit_matrixportal_esp32s3_legacy.build_flags} +build_unflags = ${env:adafruit_matrixportal_esp32s3_wled.build_unflags} + -D WLED_RELEASE_NAME=matrixportal_esp32s3 +build_flags = ${env:adafruit_matrixportal_esp32s3_wled.build_flags} -D WLED_RELEASE_NAME=matrixportal_esp32s3_tinyUF2 ; ; RAM: [== ] 18.4% (used 60456 bytes from 327680 bytes) @@ -3069,4 +3067,4 @@ build_flags = ${env:adafruit_matrixportal_esp32s3_legacy.build_flags} [env:adafruit_matrixportal_esp32s3] ;; this buildenv is just an alias for the matrixportal UF2 build, to keep 3rd party build tools happy. -extends = env:adafruit_matrixportal_esp32s3_tinyUF2 +extends = env:adafruit_matrixportal_esp32s3_wled