Add support for ESP32-S3

This commit is contained in:
fvanroie 2022-10-18 01:09:47 +02:00
parent d0ab4d7e96
commit e28a1965e4
3 changed files with 94 additions and 14 deletions

View File

@ -51,10 +51,21 @@ def copy_merge_bins(source, target, env):
board = env.BoardConfig() board = env.BoardConfig()
mcu = board.get("build.mcu", "esp32") 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): 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) 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) 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) 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_src)
print(firmware_dst) print(firmware_dst)
print(flash_size) 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, stdout=subprocess.PIPE,
stderr=subprocess.PIPE) stderr=subprocess.PIPE)
stdout, stderr = process.communicate() stdout, stderr = process.communicate()

View File

@ -1,18 +1,19 @@
; -- Platform specific build flags ; -- Platform specific build flags
[esp32s3] [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 ; ----- debugger
check_tool = cppcheck check_tool = cppcheck
check_flags = --enable=all check_flags = --enable=all
debug_tool = esp-prog debug_tool = esp-prog
debug_init_break = tbreak setup debug_init_break = tbreak setup
board_build.embed_files =
data/edit.htm.gz board_build.embed_files = ${esp32.board_build.embed_files}
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
build_flags = build_flags =
${env.build_flags} ${env.build_flags}
@ -86,7 +87,7 @@ extra_scripts =
ps_ram = ps_ram =
-DBOARD_HAS_PSRAM -DBOARD_HAS_PSRAM
-mfix-esp32-psram-cache-issue ; uses 24kB ;-mfix-esp32-psram-cache-issue ; uses 24kB
-D HASP_USE_FREETYPE=1 -D HASP_USE_FREETYPE=1
-D LV_USE_FREETYPE=1 -D LV_USE_FREETYPE=1
no_ps_ram = no_ps_ram =
@ -107,8 +108,8 @@ hspi =
; -- The Arduino ESP32 v2.0.2 with 3 available flash sizes: ; -- The Arduino ESP32 v2.0.2 with 3 available flash sizes:
[arduino_esp32s3_v2] [arduino_esp32s3_v2]
framework = arduino framework = arduino
;platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.5/platform-espressif32-2.0.5.zip platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.4.1/platform-espressif32-2.0.4.1.zip
platform = espressif32 ;platform = espressif32
board_build.filesystem = littlefs board_build.filesystem = littlefs
; ----- crash reporter ; ----- crash reporter
monitor_filters = esp32_exception_decoder monitor_filters = esp32_exception_decoder

View File

@ -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