From e28a1965e440f3bce3d31de2a157f205b4a453b4 Mon Sep 17 00:00:00 2001 From: fvanroie Date: Tue, 18 Oct 2022 01:09:47 +0200 Subject: [PATCH] Add support for ESP32-S3 --- tools/esp_merge_bin.py | 20 ++++++-- user_setups/esp32s3/_esp32s3.ini | 23 ++++----- user_setups/esp32s3/wt01_sc01-plus.ini | 65 ++++++++++++++++++++++++++ 3 files changed, 94 insertions(+), 14 deletions(-) create mode 100644 user_setups/esp32s3/wt01_sc01-plus.ini diff --git a/tools/esp_merge_bin.py b/tools/esp_merge_bin.py index 727dddec..13443484 100644 --- a/tools/esp_merge_bin.py +++ b/tools/esp_merge_bin.py @@ -51,10 +51,21 @@ def copy_merge_bins(source, target, env): board = env.BoardConfig() mcu = board.get("build.mcu", "esp32") + flash_mode = board.get("build.flash_mode", "dio") + f_flash = board.get("build.f_flash", "40000000L") + flash_freq = '40m' + if (f_flash == '80000000L'): + flash_freq = '80m' - bootloader = "{}tools{}sdk{}{}{}bin{}bootloader_dio_40m.bin".format(FRAMEWORK_DIR, os.path.sep, os.path.sep, mcu, os.path.sep, os.path.sep, os.path.sep) + bootloader = "{}tools{}sdk{}{}{}bin{}bootloader_{}_{}.bin".format(FRAMEWORK_DIR, os.path.sep, os.path.sep, mcu, os.path.sep, os.path.sep, flash_mode, flash_freq) + # if not os.path.isfile(bootloader): + # bootloader = "{}tools{}sdk{}bin{}bootloader_dio_40m.bin".format(FRAMEWORK_DIR, os.path.sep, os.path.sep, os.path.sep, os.path.sep, os.path.sep) if not os.path.isfile(bootloader): - bootloader = "{}tools{}sdk{}bin{}bootloader_dio_40m.bin".format(FRAMEWORK_DIR, os.path.sep, os.path.sep, os.path.sep, os.path.sep, os.path.sep) + bootloader = "{}tools{}sdk{}{}{}bin{}bootloader_{}_{}.bin".format(FRAMEWORK_DIR, os.path.sep, os.path.sep, mcu, os.path.sep, os.path.sep, flash_mode, flash_freq) + bootloader_location = '0x1000' + if (mcu == 'esp32s3'): + bootloader_location = '0x0000' + partitions = "{}{}partitions.bin".format(env.subst("$BUILD_DIR"), os.path.sep) boot_app0 = "{}tools{}partitions{}boot_app0.bin".format(FRAMEWORK_DIR, os.path.sep, os.path.sep, os.path.sep) firmware_dst ="{}firmware{}{}_full_{}_{}.bin".format(OUTPUT_DIR, os.path.sep, name, flash_size, version) @@ -79,8 +90,11 @@ def copy_merge_bins(source, target, env): print(firmware_src) print(firmware_dst) print(flash_size) + print(flash_freq) + print(f_flash) + print(flash_mode) - process = subprocess.Popen(['python', 'tools/esptool_with_merge_bin.py', '--chip', mcu, 'merge_bin', '--output', firmware_dst, '--flash_mode', 'dio', '--flash_size', flash_size, '0x1000', bootloader, '0x8000', partitions, '0xe000', boot_app0, '0x10000', firmware_src], + process = subprocess.Popen(['python', 'tools/esptool_with_merge_bin.py', '--chip', mcu, 'merge_bin', '--output', firmware_dst, '--flash_mode', 'dio', '--flash_size', flash_size, '--flash_freq', flash_freq, bootloader_location, bootloader, '0x8000', partitions, '0xe000', boot_app0, '0x10000', firmware_src], stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = process.communicate() diff --git a/user_setups/esp32s3/_esp32s3.ini b/user_setups/esp32s3/_esp32s3.ini index 06f57f50..51da5bff 100644 --- a/user_setups/esp32s3/_esp32s3.ini +++ b/user_setups/esp32s3/_esp32s3.ini @@ -1,18 +1,19 @@ ; -- Platform specific build flags [esp32s3] +board_build.mcu = esp32s3 +board_build.f_cpu = 240000000L +board_upload.flash_size = 4MB +board_upload.maximum_size = 4194304 +board_build.partitions = user_setups/esp32s2/no_ota.csv +board_build.filesystem = littlefs + ; ----- debugger check_tool = cppcheck check_flags = --enable=all debug_tool = esp-prog debug_init_break = tbreak setup -board_build.embed_files = - data/edit.htm.gz - data/style.css.gz - data/script.js.gz - data/cert/x509_crt_bundle.bin - data/static/logo.svg.gz - data/static/ace.1.9.6.min.js.gz - data/static/petite-vue.hasp.js.gz + +board_build.embed_files = ${esp32.board_build.embed_files} build_flags = ${env.build_flags} @@ -86,7 +87,7 @@ extra_scripts = ps_ram = -DBOARD_HAS_PSRAM - -mfix-esp32-psram-cache-issue ; uses 24kB + ;-mfix-esp32-psram-cache-issue ; uses 24kB -D HASP_USE_FREETYPE=1 -D LV_USE_FREETYPE=1 no_ps_ram = @@ -107,8 +108,8 @@ hspi = ; -- The Arduino ESP32 v2.0.2 with 3 available flash sizes: [arduino_esp32s3_v2] framework = arduino -;platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.5/platform-espressif32-2.0.5.zip -platform = espressif32 +platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.4.1/platform-espressif32-2.0.4.1.zip +;platform = espressif32 board_build.filesystem = littlefs ; ----- crash reporter monitor_filters = esp32_exception_decoder diff --git a/user_setups/esp32s3/wt01_sc01-plus.ini b/user_setups/esp32s3/wt01_sc01-plus.ini new file mode 100644 index 00000000..6063af52 --- /dev/null +++ b/user_setups/esp32s3/wt01_sc01-plus.ini @@ -0,0 +1,65 @@ +;***************************************************; +; WT SC01 Plus with TFT 3.5" ; +; - Custom esp32-s3 board ; +; - st7796 TFT ; +; - ft6336 touch controller ; +;***************************************************; + +[env:wt01_sc01-plus] +extends = esp32s3_8mb_v2 +board = um_tinys3 +;board = esp32s3_opi + +build_flags = + ${env.build_flags} + ${esp32.build_flags} + ${esp32.no_ps_ram} + -D HASP_MODEL="SC01 Plus" + -DARDUINO_USB_CDC_ON_BOOT + -DUSE_USB_CDC_CONSOLE + +;region -- LovyanGFX build options ------------------------ + -D LGFX_USE_V1=1 + -D WTSC01PLUS=1 + -D ST7796_DRIVER=1 + -D TOUCH_DRIVER=0x6336 + -D HASP_USE_LGFX_TOUCH=1 + -D TFT_WIDTH=320 + -D TFT_HEIGHT=480 + -D SPI_FREQUENCY=20000000 + -D INVERT_COLORS=1 + -D TFT_RD=-1 + -D TFT_WR=47 + -D TFT_RS=0 + -DESP32_PARALLEL + -D TFT_D0=9 + -D TFT_D1=46 + -D TFT_D2=3 + -D TFT_D3=8 + -D TFT_D4=18 + -D TFT_D5=17 + -D TFT_D6=16 + -D TFT_D7=15 + -D TFT_CS=-1 + -D TFT_RST=4 + -D TFT_BUSY=-1 + -D TFT_BL=-1 + -D I2C_TOUCH_FREQUENCY=400000 + -D I2C_TOUCH_ADDRESS=0x38 + -D I2C_TOUCH_PORT=1 + -D TOUCH_SDA=6 + -D TOUCH_SCL=5 +;endregion + +;region -- Library options ------------------------------- +lib_deps = + ${env.lib_deps} + ${esp32.lib_deps} + ${arduino_esp32_v2.lib_deps} + ${lovyangfx.lib_deps} + +lib_ignore = + ${env.lib_ignore} + ${esp32.lib_ignore} + ${arduino_esp32_v2.lib_ignore} +;endregion