From 6a8d3db0f5a24c284b22d4b766d4a3b5bd189fee Mon Sep 17 00:00:00 2001 From: Ton Huisman Date: Sun, 2 Jul 2023 19:07:04 +0200 Subject: [PATCH] [Build] Add support for ESP32-S3 8MB units --- README.md | 18 ++++--- esp32_partition_app2944k_spiffs2112k.csv | 6 +++ esp32_partition_app2944k_spiffs2M.csv | 6 --- platformio_esp32s3_envs.ini | 65 ++++++++++++++++++++++++ tools/pio/copy_files.py | 4 ++ 5 files changed, 85 insertions(+), 14 deletions(-) create mode 100644 esp32_partition_app2944k_spiffs2112k.csv delete mode 100644 esp32_partition_app2944k_spiffs2M.csv diff --git a/README.md b/README.md index 7f4b336e1..0f0454590 100644 --- a/README.md +++ b/README.md @@ -99,6 +99,7 @@ Flash size | Description | 4M2M | 4 MB with 2 MB filesystem | 16M | 16 MB with 14 MB filesystem | 4M316k | 4 MB with 316 kB filesystem | +8M2M | 8 MB with 2 MB filesystem | 16M1M | 16 MB with 1 MB filesystem | 16M8M | 16 MB with 8 MB filesystem | @@ -113,18 +114,19 @@ Domoticz | Only Domoticz controllers (HTTP+MQTT) and plugins included FHEM_HA | Only FHEM/OpenHAB/Home Assistant (MQTT) controllers and plugins included | ETH | Ethernet interface enabled (ESP32 only) | PSRAM | Specific configuration to enable PSRAM detection, ESP32-S3 only | +CDC | Support USBCDC/HWCDC-serial console on ESP32-C3, ESP32-S2 and ESP32-S3 | Some example firmware names: Firmware name | Hardware | Included plugins | ----------------------------------------------------|--------------------------------|----------------------------------| -ESPEasy_mega-20230508_normal_ESP8266_1M.bin | ESP8266/ESP8285 with 1MB flash | Stable | -ESPEasy_mega-20230508_normal_ESP8266_4M1M.bin | ESP8266 with 4MB flash | Stable | -ESPEasy_mega-20230508_collection_A_ESP8266_4M1M.bin | ESP8266 with 4MB flash | Stable + Collection base + set A | -ESPEasy_mega-20230508_normal_ESP32_4M316k.bin | ESP32 with 4MB flash | Stable | -ESPEasy_mega-20230508_collection_A_ESP32_4M316k.bin | ESP32 with 4MB flash | Stable + Collection base + set A | -ESPEasy_mega-20230508_collection_B_ESP32_4M316k.bin | ESP32 with 4MB flash | Stable + Collection base + set B | -ESPEasy_mega-20230508_max_ESP32_16M1M.bin | ESP32 with 16MB flash | All available plugins | -ESPEasy_mega-20230508_max_ESP32_16M8M_LittleFS.bin | ESP32 with 16MB flash | All available plugins | +ESPEasy_mega-20230623_normal_ESP8266_1M.bin | ESP8266/ESP8285 with 1MB flash | Stable | +ESPEasy_mega-20230623_normal_ESP8266_4M1M.bin | ESP8266 with 4MB flash | Stable | +ESPEasy_mega-20230623_collection_A_ESP8266_4M1M.bin | ESP8266 with 4MB flash | Stable + Collection base + set A | +ESPEasy_mega-20230623_normal_ESP32_4M316k.bin | ESP32 with 4MB flash | Stable | +ESPEasy_mega-20230623_collection_A_ESP32_4M316k.bin | ESP32 with 4MB flash | Stable + Collection base + set A | +ESPEasy_mega-20230623_collection_B_ESP32_4M316k.bin | ESP32 with 4MB flash | Stable + Collection base + set B | +ESPEasy_mega-20230623_max_ESP32_16M1M.bin | ESP32 with 16MB flash | All available plugins | +ESPEasy_mega-20230623_max_ESP32_16M8M_LittleFS.bin | ESP32 with 16MB flash | All available plugins | NB: Since 2023-05-10 the binary files for the different ESP32 variants (S2, C3, S3, 'Classic') are available in separate archives. diff --git a/esp32_partition_app2944k_spiffs2112k.csv b/esp32_partition_app2944k_spiffs2112k.csv new file mode 100644 index 000000000..6cfa31926 --- /dev/null +++ b/esp32_partition_app2944k_spiffs2112k.csv @@ -0,0 +1,6 @@ +# Name, Type, SubType, Offset, Size, Flags +nvs, data, nvs, 0x9000, 0x5000, +otadata, data, ota, 0xe000, 0x2000, +app0, app, ota_0, 0x10000, 0x2F0000, +app1, app, ota_1, 0x300000, 0x2F0000, +spiffs, data, spiffs, 0x5F0000, 0x210000, diff --git a/esp32_partition_app2944k_spiffs2M.csv b/esp32_partition_app2944k_spiffs2M.csv deleted file mode 100644 index 9c0897d51..000000000 --- a/esp32_partition_app2944k_spiffs2M.csv +++ /dev/null @@ -1,6 +0,0 @@ -# Name, Type, SubType, Offset, Size, Flags -nvs, data, nvs, 0x9000, 0x5000, -otadata, data, ota, 0xe000, 0x2000, -app0, app, ota_0, 0x10000, 0x2F0000, -app1, app, ota_1, 0x300000, 0x2F0000, -spiffs, data, spiffs, 0x5F0000,0x210000, diff --git a/platformio_esp32s3_envs.ini b/platformio_esp32s3_envs.ini index a3337bd44..b3fb92d14 100644 --- a/platformio_esp32s3_envs.ini +++ b/platformio_esp32s3_envs.ini @@ -119,10 +119,74 @@ build_flags = ${esp32s3_common.build_flags} -DFEATURE_SD=1 -DPLUGIN_NEOPIXEL_COLLECTION + +[env:custom_ESP32s3_8M2M_LittleFS_CDC] +extends = esp32s3_common +board = esp32s3cdc-qio_qspi +board_upload.flash_size = 8MB +board_name = "Espressif Generic ESP32-S3 8M Flash, ESPEasy 2944k Code/OTA 2112k FS" +build_flags = ${esp32s3_common_LittleFS.build_flags} + -DFEATURE_ARDUINO_OTA=1 + -DPLUGIN_BUILD_CUSTOM + -DFEATURE_SD=1 +extra_scripts = ${esp32s3_common.extra_scripts} + pre:tools/pio/pre_custom_esp32.py +board_build.partitions = esp32_partition_app2944k_spiffs2112k.csv + +[env:custom_ESP32s3_8M2M_LittleFS_OPI_PSRAM_CDC] +extends = env:custom_ESP32s3_8M2M_LittleFS_CDC +board = esp32s3cdc-qio_opi +board_name = "Espressif Generic ESP32-S3 8M Flash OPI PSRAM, ESPEasy 2944k Code/OTA 2112k FS" + + +[env:max_ESP32s3_8M2M_LittleFS_CDC] +extends = esp32s3_common +board = esp32s3cdc-qio_qspi +board_upload.flash_size = 8MB +board_name = "Espressif Generic ESP32-S3 8M Flash, ESPEasy 2944k Code/OTA 2112k FS" +lib_ignore = ${esp32_always.lib_ignore} + ESP32_ping +build_flags = ${esp32s3_common_LittleFS.build_flags} + -DFEATURE_ARDUINO_OTA=1 + -DPLUGIN_BUILD_MAX_ESP32 + -DPLUGIN_BUILD_IR_EXTENDED +extra_scripts = ${esp32_common.extra_scripts} +board_build.partitions = esp32_partition_app2944k_spiffs2112k.csv + + +[env:max_ESP32s3_8M2M_LittleFS_OPI_PSRAM_CDC] +extends = env:max_ESP32s3_8M2M_LittleFS_CDC +board = esp32s3cdc-qio_opi +board_name = "Espressif Generic ESP32-S3 8M Flash OPI PSRAM, ESPEasy 2944k Code/OTA 2112k FS" + + +[env:custom_ESP32s3_16M8M_LittleFS_CDC] +extends = esp32s3_common +board = esp32s3cdc-qio_qspi +board_upload.flash_size = 16MB +board_name = "Espressif Generic ESP32-S3 16M Flash, ESPEasy 4096k Code/OTA 8124k FS" +lib_ignore = ${esp32_always.lib_ignore} + ESP32_ping +build_flags = ${esp32s3_common_LittleFS.build_flags} + -DFEATURE_ARDUINO_OTA=1 + -DPLUGIN_BUILD_CUSTOM + -DPLUGIN_BUILD_IR_EXTENDED + -DFEATURE_SD=1 +extra_scripts = ${esp32s3_common.extra_scripts} + pre:tools/pio/pre_custom_esp32.py +board_build.partitions = esp32_partition_app4096k_spiffs8124k.csv + +[env:custom_ESP32s3_16M8M_LittleFS_OPI_PSRAM_CDC] +extends = env:custom_ESP32s3_16M8M_LittleFS_CDC +board = esp32s3cdc-qio_opi +board_name = "Espressif Generic ESP32-S3 16M Flash OPI PSRAM, ESPEasy 4096k Code/OTA 8124k FS" + + [env:max_ESP32s3_16M8M_LittleFS_CDC] extends = esp32s3_common board = esp32s3cdc-qio_qspi board_upload.flash_size = 16MB +board_name = "Espressif Generic ESP32-S3 16M Flash, ESPEasy 4096k Code/OTA 8124k FS" lib_ignore = ${esp32_always.lib_ignore} ESP32_ping build_flags = ${esp32s3_common.build_flags} @@ -139,6 +203,7 @@ board_build.partitions = esp32_partition_app4096k_spiffs8124k.csv extends = esp32s3_common board = esp32s3cdc-qio_opi board_upload.flash_size = 16MB +board_name = "Espressif Generic ESP32-S3 16M Flash OPI PSRAM, ESPEasy 4096k Code/OTA 8124k FS" lib_ignore = ${esp32_always.lib_ignore} ESP32_ping build_flags = ${esp32s3_common.build_flags} diff --git a/tools/pio/copy_files.py b/tools/pio/copy_files.py index 6b645e13e..59a3e90a0 100644 --- a/tools/pio/copy_files.py +++ b/tools/pio/copy_files.py @@ -24,6 +24,10 @@ def get_max_bin_size(env_name, file_suffix): if "factory" in file_suffix: # Factory bin files include a part which is not overwritten via OTA max_bin_size = max_bin_size + 65536 + if "_ESP32_" in env_name or "_ESP32s2_" in env_name or "_ESP32s3_" in env_name: + if "_8M2M" in env_name: + # ESP32 with 2944k of sketch space. + max_bin_size = 3080192 if "_ESP32_" in env_name or "_ESP32c3_" in env_name or "_ESP32s2_" in env_name or "_ESP32s3_" in env_name: if "_16M8M" in env_name or "_16M2M" in env_name or "_16M1M" in env_name: # ESP32 with 4096k of sketch space.