diff --git a/platformio_override.sample.ini b/platformio_override.sample.ini index 6f86b248..9fbb345d 100644 --- a/platformio_override.sample.ini +++ b/platformio_override.sample.ini @@ -191,6 +191,22 @@ build_flags = ${common.build_flags} ${esp8266.build_flags} ; -D HW_PIN_MISOSPI=9 +# ------------------------------------------------------------------------------ +# Optional: build flags for speed, instead of optimising for size. +# Example of usage: see [env:esp32S3_PSRAM_HUB75] +# ------------------------------------------------------------------------------ + +[Speed_Flags] +build_unflags = -Os ;; to disable standard optimization for small size +build_flags = + -O2 ;; optimize for speed + -free -fipa-pta ;; very useful, too + ;;-fsingle-precision-constant ;; makes all floating point literals "float" (default is "double") + ;;-funsafe-math-optimizations ;; less dangerous than -ffast-math; still allows the compiler to exploit FMA and reciprocals (up to 10% faster on -S3) + # Important: we need to explicitly switch off some "-O2" optimizations + -fno-jump-tables -fno-tree-switch-conversion ;; needed - firmware may crash otherwise + -freorder-blocks -Wwrite-strings -fstrict-volatile-bitfields ;; needed - recommended by espressif + # ------------------------------------------------------------------------------ # PRE-CONFIGURED DEVELOPMENT BOARDS AND CONTROLLERS @@ -564,10 +580,10 @@ build_flags = ${common.build_flags} [env:adafruit_matrixportal_esp32s3] ; ESP32-S3 processor, 8 MB flash, 2 MB of PSRAM, dedicated driver pins for HUB75 +board = adafruit_matrixportal_esp32s3 ;; adafruit recommends to use arduino-esp32 2.0.14 ;;platform = espressif32@ ~6.5.0 ;;platform_packages = platformio/framework-arduinoespressif32 @ 3.20014.231204 ;; arduino-esp32 2.0.14 -board = adafruit_matrixportal_esp32s3 platform = ${esp32s3.platform} platform_packages = upload_speed = 921600 @@ -587,21 +603,24 @@ build_flags = ${common.build_flags} ${esp32s3.build_flags} -D WLED_RELEASE_NAME= lib_deps = ${esp32s3.lib_deps} https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-DMA.git#aa28e2a ;; S3_LCD_DIV_NUM fix -board_build.partitions = tools/partitions-8MB_spiffs-tinyuf2.csv ;; supports the adafruit UF2 bootloader (recommended!) +board_build.partitions = ${esp32.large_partitions} ;; standard bootloader and 8MB Flash partitions +;; board_build.partitions = tools/partitions-8MB_spiffs-tinyuf2.csv ;; supports adafruit UF2 bootloader board_build.f_flash = 80000000L board_build.flash_mode = qio monitor_filters = esp32_exception_decoder custom_usermods = audioreactive [env:esp32S3_PSRAM_HUB75] -;; MOONHUB HUB75 adapter board +;; MOONHUB HUB75 adapter board (lilygo T7-S3 with 16MB flash and PSRAM) board = lilygo-t7-s3 platform = ${esp32s3.platform} platform_packages = upload_speed = 921600 build_unflags = ${common.build_unflags} + ${Speed_Flags.build_unflags} ;; optional: removes "-Os" so we can override with "-O2" in build_flags build_flags = ${common.build_flags} ${esp32s3.build_flags} -D WLED_RELEASE_NAME=\"esp32S3_16MB_PSRAM_HUB75\" - -DARDUINO_USB_CDC_ON_BOOT=1 -DARDUINO_USB_MODE=1 ;; for boards with USB-OTG connector only (USBCDC or "TinyUSB") + ${Speed_Flags.build_flags} ;; optional: -O2 -> optimize for speed instead of size + -DARDUINO_USB_CDC_ON_BOOT=1 ;; -DARDUINO_USB_MODE=1 ;; for boards with USB-OTG connector only (USBCDC or "TinyUSB") -DBOARD_HAS_PSRAM -DLOLIN_WIFI_FIX ; seems to work much better with this -D WLED_WATCHDOG_TIMEOUT=0 @@ -615,7 +634,8 @@ build_flags = ${common.build_flags} ${esp32s3.build_flags} -D WLED_RELEASE_NAME= lib_deps = ${esp32s3.lib_deps} https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-DMA.git#aa28e2a ;; S3_LCD_DIV_NUM fix -board_build.partitions = ${esp32.default_partitions} +;;board_build.partitions = ${esp32.large_partitions} ;; for 8MB flash +board_build.partitions = ${esp32.extreme_partitions} ;; for 16MB flash board_build.f_flash = 80000000L board_build.flash_mode = qio monitor_filters = esp32_exception_decoder