diff --git a/boards.txt b/boards.txt
index 9b11c39428f..89a8c3d3e1e 100644
--- a/boards.txt
+++ b/boards.txt
@@ -6398,6 +6398,7 @@ onehorse32dev.menu.DebugLevel.verbose=Verbose
 onehorse32dev.menu.DebugLevel.verbose.build.code_debug=5
 
 ##############################################################
+# Adafruit ESP32 Feather
 
 featheresp32.name=Adafruit ESP32 Feather
 
@@ -6425,17 +6426,71 @@ featheresp32.build.variant=feather_esp32
 featheresp32.build.board=FEATHER_ESP32
 
 featheresp32.build.f_cpu=240000000L
-featheresp32.build.flash_mode=dio
 featheresp32.build.flash_size=4MB
+featheresp32.build.flash_freq=80m
+featheresp32.build.flash_mode=dio
 featheresp32.build.boot=dio
 featheresp32.build.partitions=default
 featheresp32.build.defines=
+featheresp32.build.loop_core=
+featheresp32.build.event_core=
+
+featheresp32.menu.LoopCore.1=Core 1
+featheresp32.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1
+featheresp32.menu.LoopCore.0=Core 0
+featheresp32.menu.LoopCore.0.build.loop_core=-DARDUINO_RUNNING_CORE=0
+
+featheresp32.menu.EventsCore.1=Core 1
+featheresp32.menu.EventsCore.1.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
+featheresp32.menu.EventsCore.0=Core 0
+featheresp32.menu.EventsCore.0.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=0
+
+featheresp32.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
+featheresp32.menu.PartitionScheme.default.build.partitions=default
+featheresp32.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
+featheresp32.menu.PartitionScheme.defaultffat.build.partitions=default_ffat
+featheresp32.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS)
+featheresp32.menu.PartitionScheme.minimal.build.partitions=minimal
+featheresp32.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS)
+featheresp32.menu.PartitionScheme.no_ota.build.partitions=no_ota
+featheresp32.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
+featheresp32.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS)
+featheresp32.menu.PartitionScheme.noota_3g.build.partitions=noota_3g
+featheresp32.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576
+featheresp32.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS)
+featheresp32.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat
+featheresp32.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152
+featheresp32.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS)
+featheresp32.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat
+featheresp32.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576
+featheresp32.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
+featheresp32.menu.PartitionScheme.huge_app.build.partitions=huge_app
+featheresp32.menu.PartitionScheme.huge_app.upload.maximum_size=3145728
+featheresp32.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
+featheresp32.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
+featheresp32.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
+
+featheresp32.menu.CPUFreq.240=240MHz (WiFi/BT)
+featheresp32.menu.CPUFreq.240.build.f_cpu=240000000L
+featheresp32.menu.CPUFreq.160=160MHz (WiFi/BT)
+featheresp32.menu.CPUFreq.160.build.f_cpu=160000000L
+featheresp32.menu.CPUFreq.80=80MHz (WiFi/BT)
+featheresp32.menu.CPUFreq.80.build.f_cpu=80000000L
+featheresp32.menu.CPUFreq.40=40MHz
+featheresp32.menu.CPUFreq.40.build.f_cpu=40000000L
+featheresp32.menu.CPUFreq.20=20MHz
+featheresp32.menu.CPUFreq.20.build.f_cpu=20000000L
+featheresp32.menu.CPUFreq.10=10MHz
+featheresp32.menu.CPUFreq.10.build.f_cpu=10000000L
 
 featheresp32.menu.FlashFreq.80=80MHz
 featheresp32.menu.FlashFreq.80.build.flash_freq=80m
 featheresp32.menu.FlashFreq.40=40MHz
 featheresp32.menu.FlashFreq.40.build.flash_freq=40m
 
+featheresp32.menu.FlashSize.4M=4MB (32Mb)
+featheresp32.menu.FlashSize.4M.build.flash_size=4MB
+
 featheresp32.menu.UploadSpeed.921600=921600
 featheresp32.menu.UploadSpeed.921600.upload.speed=921600
 featheresp32.menu.UploadSpeed.115200=115200
@@ -6464,24 +6519,16 @@ featheresp32.menu.DebugLevel.debug.build.code_debug=4
 featheresp32.menu.DebugLevel.verbose=Verbose
 featheresp32.menu.DebugLevel.verbose.build.code_debug=5
 
-featheresp32.menu.PartitionScheme.default=Default
-featheresp32.menu.PartitionScheme.default.build.partitions=default
-featheresp32.menu.PartitionScheme.no_ota=No OTA (Large APP)
-featheresp32.menu.PartitionScheme.no_ota.build.partitions=no_ota
-featheresp32.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
-featheresp32.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (Large APPS with OTA)
-featheresp32.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
-featheresp32.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
-
 ##############################################################
+# Adafruit Metro ESP32-S2
 
 adafruit_metro_esp32s2.name=Adafruit Metro ESP32-S2
 adafruit_metro_esp32s2.vid.0=0x239A
 adafruit_metro_esp32s2.pid.0=0x80DF
 adafruit_metro_esp32s2.vid.1=0x239A
 adafruit_metro_esp32s2.pid.1=0x00DF
-adafruit_metro_esp32s2.vid.1=0x239A
-adafruit_metro_esp32s2.pid.1=0x80E0
+adafruit_metro_esp32s2.vid.2=0x239A
+adafruit_metro_esp32s2.pid.2=0x80E0
 
 adafruit_metro_esp32s2.bootloader.tool=esptool_py
 adafruit_metro_esp32s2.bootloader.tool.default=esptool_py
@@ -6514,7 +6561,7 @@ adafruit_metro_esp32s2.build.dfu_on_boot=0
 adafruit_metro_esp32s2.build.f_cpu=240000000L
 adafruit_metro_esp32s2.build.flash_size=4MB
 adafruit_metro_esp32s2.build.flash_freq=80m
-adafruit_metro_esp32s2.build.flash_mode=qio
+adafruit_metro_esp32s2.build.flash_mode=dio
 adafruit_metro_esp32s2.build.boot=qio
 adafruit_metro_esp32s2.build.partitions=default
 adafruit_metro_esp32s2.build.defines=
@@ -6609,14 +6656,6 @@ adafruit_metro_esp32s2.menu.FlashFreq.40.build.flash_freq=40m
 
 adafruit_metro_esp32s2.menu.FlashSize.4M=4MB (32Mb)
 adafruit_metro_esp32s2.menu.FlashSize.4M.build.flash_size=4MB
-adafruit_metro_esp32s2.menu.FlashSize.8M=8MB (64Mb)
-adafruit_metro_esp32s2.menu.FlashSize.8M.build.flash_size=8MB
-adafruit_metro_esp32s2.menu.FlashSize.8M.build.partitions=default_8MB
-adafruit_metro_esp32s2.menu.FlashSize.2M=2MB (16Mb)
-adafruit_metro_esp32s2.menu.FlashSize.2M.build.flash_size=2MB
-adafruit_metro_esp32s2.menu.FlashSize.2M.build.partitions=minimal
-adafruit_metro_esp32s2.menu.FlashSize.16M=16MB (128Mb)
-adafruit_metro_esp32s2.menu.FlashSize.16M.build.flash_size=16MB
 
 adafruit_metro_esp32s2.menu.UploadSpeed.921600=921600
 adafruit_metro_esp32s2.menu.UploadSpeed.921600.upload.speed=921600
@@ -6647,14 +6686,15 @@ adafruit_metro_esp32s2.menu.DebugLevel.verbose=Verbose
 adafruit_metro_esp32s2.menu.DebugLevel.verbose.build.code_debug=5
 
 ##############################################################
+# Adafruit MagTag 2.9"
 
 adafruit_magtag29_esp32s2.name=Adafruit MagTag 2.9"
 adafruit_magtag29_esp32s2.vid.0=0x239A
 adafruit_magtag29_esp32s2.pid.0=0x80E5
 adafruit_magtag29_esp32s2.vid.1=0x239A
 adafruit_magtag29_esp32s2.pid.1=0x00E5
-adafruit_magtag29_esp32s2.vid.1=0x239A
-adafruit_magtag29_esp32s2.pid.1=0x80E6
+adafruit_magtag29_esp32s2.vid.2=0x239A
+adafruit_magtag29_esp32s2.pid.2=0x80E6
 
 adafruit_magtag29_esp32s2.bootloader.tool=esptool_py
 adafruit_magtag29_esp32s2.bootloader.tool.default=esptool_py
@@ -6687,7 +6727,7 @@ adafruit_magtag29_esp32s2.build.dfu_on_boot=0
 adafruit_magtag29_esp32s2.build.f_cpu=240000000L
 adafruit_magtag29_esp32s2.build.flash_size=4MB
 adafruit_magtag29_esp32s2.build.flash_freq=80m
-adafruit_magtag29_esp32s2.build.flash_mode=qio
+adafruit_magtag29_esp32s2.build.flash_mode=dio
 adafruit_magtag29_esp32s2.build.boot=qio
 adafruit_magtag29_esp32s2.build.partitions=default
 adafruit_magtag29_esp32s2.build.defines=
@@ -6782,14 +6822,6 @@ adafruit_magtag29_esp32s2.menu.FlashFreq.40.build.flash_freq=40m
 
 adafruit_magtag29_esp32s2.menu.FlashSize.4M=4MB (32Mb)
 adafruit_magtag29_esp32s2.menu.FlashSize.4M.build.flash_size=4MB
-adafruit_magtag29_esp32s2.menu.FlashSize.8M=8MB (64Mb)
-adafruit_magtag29_esp32s2.menu.FlashSize.8M.build.flash_size=8MB
-adafruit_magtag29_esp32s2.menu.FlashSize.8M.build.partitions=default_8MB
-adafruit_magtag29_esp32s2.menu.FlashSize.2M=2MB (16Mb)
-adafruit_magtag29_esp32s2.menu.FlashSize.2M.build.flash_size=2MB
-adafruit_magtag29_esp32s2.menu.FlashSize.2M.build.partitions=minimal
-adafruit_magtag29_esp32s2.menu.FlashSize.16M=16MB (128Mb)
-adafruit_magtag29_esp32s2.menu.FlashSize.16M.build.flash_size=16MB
 
 adafruit_magtag29_esp32s2.menu.UploadSpeed.921600=921600
 adafruit_magtag29_esp32s2.menu.UploadSpeed.921600.upload.speed=921600
@@ -6820,14 +6852,15 @@ adafruit_magtag29_esp32s2.menu.DebugLevel.verbose=Verbose
 adafruit_magtag29_esp32s2.menu.DebugLevel.verbose.build.code_debug=5
 
 ##############################################################
+# Adafruit FunHouse
 
 adafruit_funhouse_esp32s2.name=Adafruit FunHouse
 adafruit_funhouse_esp32s2.vid.0=0x239A
 adafruit_funhouse_esp32s2.pid.0=0x80F9
 adafruit_funhouse_esp32s2.vid.1=0x239A
 adafruit_funhouse_esp32s2.pid.1=0x00F9
-adafruit_funhouse_esp32s2.vid.1=0x239A
-adafruit_funhouse_esp32s2.pid.1=0x80FA
+adafruit_funhouse_esp32s2.vid.2=0x239A
+adafruit_funhouse_esp32s2.pid.2=0x80FA
 
 adafruit_funhouse_esp32s2.bootloader.tool=esptool_py
 adafruit_funhouse_esp32s2.bootloader.tool.default=esptool_py
@@ -6860,7 +6893,7 @@ adafruit_funhouse_esp32s2.build.dfu_on_boot=0
 adafruit_funhouse_esp32s2.build.f_cpu=240000000L
 adafruit_funhouse_esp32s2.build.flash_size=4MB
 adafruit_funhouse_esp32s2.build.flash_freq=80m
-adafruit_funhouse_esp32s2.build.flash_mode=qio
+adafruit_funhouse_esp32s2.build.flash_mode=dio
 adafruit_funhouse_esp32s2.build.boot=qio
 adafruit_funhouse_esp32s2.build.partitions=default
 adafruit_funhouse_esp32s2.build.defines=
@@ -6955,14 +6988,6 @@ adafruit_funhouse_esp32s2.menu.FlashFreq.40.build.flash_freq=40m
 
 adafruit_funhouse_esp32s2.menu.FlashSize.4M=4MB (32Mb)
 adafruit_funhouse_esp32s2.menu.FlashSize.4M.build.flash_size=4MB
-adafruit_funhouse_esp32s2.menu.FlashSize.8M=8MB (64Mb)
-adafruit_funhouse_esp32s2.menu.FlashSize.8M.build.flash_size=8MB
-adafruit_funhouse_esp32s2.menu.FlashSize.8M.build.partitions=default_8MB
-adafruit_funhouse_esp32s2.menu.FlashSize.2M=2MB (16Mb)
-adafruit_funhouse_esp32s2.menu.FlashSize.2M.build.flash_size=2MB
-adafruit_funhouse_esp32s2.menu.FlashSize.2M.build.partitions=minimal
-adafruit_funhouse_esp32s2.menu.FlashSize.16M=16MB (128Mb)
-adafruit_funhouse_esp32s2.menu.FlashSize.16M.build.flash_size=16MB
 
 adafruit_funhouse_esp32s2.menu.UploadSpeed.921600=921600
 adafruit_funhouse_esp32s2.menu.UploadSpeed.921600.upload.speed=921600
@@ -6993,14 +7018,15 @@ adafruit_funhouse_esp32s2.menu.DebugLevel.verbose=Verbose
 adafruit_funhouse_esp32s2.menu.DebugLevel.verbose.build.code_debug=5
 
 ##############################################################
+# Adafruit Feather ESP32-S2
 
 adafruit_feather_esp32s2.name=Adafruit Feather ESP32-S2
 adafruit_feather_esp32s2.vid.0=0x239A
 adafruit_feather_esp32s2.pid.0=0x80EB
 adafruit_feather_esp32s2.vid.1=0x239A
 adafruit_feather_esp32s2.pid.1=0x00EB
-adafruit_feather_esp32s2.vid.1=0x239A
-adafruit_feather_esp32s2.pid.1=0x80EC
+adafruit_feather_esp32s2.vid.2=0x239A
+adafruit_feather_esp32s2.pid.2=0x80EC
 
 adafruit_feather_esp32s2.bootloader.tool=esptool_py
 adafruit_feather_esp32s2.bootloader.tool.default=esptool_py
@@ -7033,7 +7059,7 @@ adafruit_feather_esp32s2.build.dfu_on_boot=0
 adafruit_feather_esp32s2.build.f_cpu=240000000L
 adafruit_feather_esp32s2.build.flash_size=4MB
 adafruit_feather_esp32s2.build.flash_freq=80m
-adafruit_feather_esp32s2.build.flash_mode=qio
+adafruit_feather_esp32s2.build.flash_mode=dio
 adafruit_feather_esp32s2.build.boot=qio
 adafruit_feather_esp32s2.build.partitions=default
 adafruit_feather_esp32s2.build.defines=
@@ -7128,14 +7154,6 @@ adafruit_feather_esp32s2.menu.FlashFreq.40.build.flash_freq=40m
 
 adafruit_feather_esp32s2.menu.FlashSize.4M=4MB (32Mb)
 adafruit_feather_esp32s2.menu.FlashSize.4M.build.flash_size=4MB
-adafruit_feather_esp32s2.menu.FlashSize.8M=8MB (64Mb)
-adafruit_feather_esp32s2.menu.FlashSize.8M.build.flash_size=8MB
-adafruit_feather_esp32s2.menu.FlashSize.8M.build.partitions=default_8MB
-adafruit_feather_esp32s2.menu.FlashSize.2M=2MB (16Mb)
-adafruit_feather_esp32s2.menu.FlashSize.2M.build.flash_size=2MB
-adafruit_feather_esp32s2.menu.FlashSize.2M.build.partitions=minimal
-adafruit_feather_esp32s2.menu.FlashSize.16M=16MB (128Mb)
-adafruit_feather_esp32s2.menu.FlashSize.16M.build.flash_size=16MB
 
 adafruit_feather_esp32s2.menu.UploadSpeed.921600=921600
 adafruit_feather_esp32s2.menu.UploadSpeed.921600.upload.speed=921600
@@ -7166,14 +7184,15 @@ adafruit_feather_esp32s2.menu.DebugLevel.verbose=Verbose
 adafruit_feather_esp32s2.menu.DebugLevel.verbose.build.code_debug=5
 
 ##############################################################
+# Adafruit Feather ESP32-S2 TFT
 
 adafruit_feather_esp32s2_tft.name=Adafruit Feather ESP32-S2 TFT
 adafruit_feather_esp32s2_tft.vid.0=0x239A
 adafruit_feather_esp32s2_tft.pid.0=0x810F
 adafruit_feather_esp32s2_tft.vid.1=0x239A
 adafruit_feather_esp32s2_tft.pid.1=0x010F
-adafruit_feather_esp32s2_tft.vid.1=0x239A
-adafruit_feather_esp32s2_tft.pid.1=0x8110
+adafruit_feather_esp32s2_tft.vid.2=0x239A
+adafruit_feather_esp32s2_tft.pid.2=0x8110
 
 adafruit_feather_esp32s2_tft.bootloader.tool=esptool_py
 adafruit_feather_esp32s2_tft.bootloader.tool.default=esptool_py
@@ -7200,13 +7219,13 @@ adafruit_feather_esp32s2_tft.build.core=esp32
 adafruit_feather_esp32s2_tft.build.variant=adafruit_feather_esp32s2_tft
 adafruit_feather_esp32s2_tft.build.board=ADAFRUIT_FEATHER_ESP32S2_TFT
 
-adafruit_feather_esp32s2_tft.build.cdc_on_boot=0
+adafruit_feather_esp32s2_tft.build.cdc_on_boot=1
 adafruit_feather_esp32s2_tft.build.msc_on_boot=0
 adafruit_feather_esp32s2_tft.build.dfu_on_boot=0
 adafruit_feather_esp32s2_tft.build.f_cpu=240000000L
 adafruit_feather_esp32s2_tft.build.flash_size=4MB
 adafruit_feather_esp32s2_tft.build.flash_freq=80m
-adafruit_feather_esp32s2_tft.build.flash_mode=qio
+adafruit_feather_esp32s2_tft.build.flash_mode=dio
 adafruit_feather_esp32s2_tft.build.boot=qio
 adafruit_feather_esp32s2_tft.build.partitions=default
 adafruit_feather_esp32s2_tft.build.defines=
@@ -7226,6 +7245,13 @@ adafruit_feather_esp32s2_tft.menu.DFUOnBoot.default.build.dfu_on_boot=0
 adafruit_feather_esp32s2_tft.menu.DFUOnBoot.dfu=Enabled
 adafruit_feather_esp32s2_tft.menu.DFUOnBoot.dfu.build.dfu_on_boot=1
 
+adafruit_feather_esp32s2_tft.menu.UploadMode.cdc=Internal USB
+adafruit_feather_esp32s2_tft.menu.UploadMode.cdc.upload.use_1200bps_touch=true
+adafruit_feather_esp32s2_tft.menu.UploadMode.cdc.upload.wait_for_upload_port=true
+adafruit_feather_esp32s2_tft.menu.UploadMode.default=UART0
+adafruit_feather_esp32s2_tft.menu.UploadMode.default.upload.use_1200bps_touch=false
+adafruit_feather_esp32s2_tft.menu.UploadMode.default.upload.wait_for_upload_port=false
+
 adafruit_feather_esp32s2_tft.menu.PSRAM.enabled=Enabled
 adafruit_feather_esp32s2_tft.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM
 adafruit_feather_esp32s2_tft.menu.PSRAM.disabled=Disabled
@@ -7294,14 +7320,6 @@ adafruit_feather_esp32s2_tft.menu.FlashFreq.40.build.flash_freq=40m
 
 adafruit_feather_esp32s2_tft.menu.FlashSize.4M=4MB (32Mb)
 adafruit_feather_esp32s2_tft.menu.FlashSize.4M.build.flash_size=4MB
-adafruit_feather_esp32s2_tft.menu.FlashSize.8M=8MB (64Mb)
-adafruit_feather_esp32s2_tft.menu.FlashSize.8M.build.flash_size=8MB
-adafruit_feather_esp32s2_tft.menu.FlashSize.8M.build.partitions=default_8MB
-adafruit_feather_esp32s2_tft.menu.FlashSize.2M=2MB (16Mb)
-adafruit_feather_esp32s2_tft.menu.FlashSize.2M.build.flash_size=2MB
-adafruit_feather_esp32s2_tft.menu.FlashSize.2M.build.partitions=minimal
-adafruit_feather_esp32s2_tft.menu.FlashSize.16M=16MB (128Mb)
-adafruit_feather_esp32s2_tft.menu.FlashSize.16M.build.flash_size=16MB
 
 adafruit_feather_esp32s2_tft.menu.UploadSpeed.921600=921600
 adafruit_feather_esp32s2_tft.menu.UploadSpeed.921600.upload.speed=921600
@@ -7332,14 +7350,15 @@ adafruit_feather_esp32s2_tft.menu.DebugLevel.verbose=Verbose
 adafruit_feather_esp32s2_tft.menu.DebugLevel.verbose.build.code_debug=5
 
 ##############################################################
+# Adafruit QT Py ESP32-S2
 
 adafruit_qtpy_esp32s2.name=Adafruit QT Py ESP32-S2
 adafruit_qtpy_esp32s2.vid.0=0x239A
 adafruit_qtpy_esp32s2.pid.0=0x8111
 adafruit_qtpy_esp32s2.vid.1=0x239A
 adafruit_qtpy_esp32s2.pid.1=0x0111
-adafruit_qtpy_esp32s2.vid.1=0x239A
-adafruit_qtpy_esp32s2.pid.1=0x8112
+adafruit_qtpy_esp32s2.vid.2=0x239A
+adafruit_qtpy_esp32s2.pid.2=0x8112
 
 adafruit_qtpy_esp32s2.bootloader.tool=esptool_py
 adafruit_qtpy_esp32s2.bootloader.tool.default=esptool_py
@@ -7366,13 +7385,13 @@ adafruit_qtpy_esp32s2.build.core=esp32
 adafruit_qtpy_esp32s2.build.variant=adafruit_qtpy_esp32s2
 adafruit_qtpy_esp32s2.build.board=ADAFRUIT_QTPY_ESP32S2
 
-adafruit_qtpy_esp32s2.build.cdc_on_boot=0
+adafruit_qtpy_esp32s2.build.cdc_on_boot=1
 adafruit_qtpy_esp32s2.build.msc_on_boot=0
 adafruit_qtpy_esp32s2.build.dfu_on_boot=0
 adafruit_qtpy_esp32s2.build.f_cpu=240000000L
 adafruit_qtpy_esp32s2.build.flash_size=4MB
 adafruit_qtpy_esp32s2.build.flash_freq=80m
-adafruit_qtpy_esp32s2.build.flash_mode=qio
+adafruit_qtpy_esp32s2.build.flash_mode=dio
 adafruit_qtpy_esp32s2.build.boot=qio
 adafruit_qtpy_esp32s2.build.partitions=default
 adafruit_qtpy_esp32s2.build.defines=
@@ -7392,6 +7411,13 @@ adafruit_qtpy_esp32s2.menu.DFUOnBoot.default.build.dfu_on_boot=0
 adafruit_qtpy_esp32s2.menu.DFUOnBoot.dfu=Enabled
 adafruit_qtpy_esp32s2.menu.DFUOnBoot.dfu.build.dfu_on_boot=1
 
+adafruit_qtpy_esp32s2.menu.UploadMode.cdc=Internal USB
+adafruit_qtpy_esp32s2.menu.UploadMode.cdc.upload.use_1200bps_touch=true
+adafruit_qtpy_esp32s2.menu.UploadMode.cdc.upload.wait_for_upload_port=true
+adafruit_qtpy_esp32s2.menu.UploadMode.default=UART0
+adafruit_qtpy_esp32s2.menu.UploadMode.default.upload.use_1200bps_touch=false
+adafruit_qtpy_esp32s2.menu.UploadMode.default.upload.wait_for_upload_port=false
+
 adafruit_qtpy_esp32s2.menu.PSRAM.enabled=Enabled
 adafruit_qtpy_esp32s2.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM
 adafruit_qtpy_esp32s2.menu.PSRAM.disabled=Disabled
@@ -7460,14 +7486,6 @@ adafruit_qtpy_esp32s2.menu.FlashFreq.40.build.flash_freq=40m
 
 adafruit_qtpy_esp32s2.menu.FlashSize.4M=4MB (32Mb)
 adafruit_qtpy_esp32s2.menu.FlashSize.4M.build.flash_size=4MB
-adafruit_qtpy_esp32s2.menu.FlashSize.8M=8MB (64Mb)
-adafruit_qtpy_esp32s2.menu.FlashSize.8M.build.flash_size=8MB
-adafruit_qtpy_esp32s2.menu.FlashSize.8M.build.partitions=default_8MB
-adafruit_qtpy_esp32s2.menu.FlashSize.2M=2MB (16Mb)
-adafruit_qtpy_esp32s2.menu.FlashSize.2M.build.flash_size=2MB
-adafruit_qtpy_esp32s2.menu.FlashSize.2M.build.partitions=minimal
-adafruit_qtpy_esp32s2.menu.FlashSize.16M=16MB (128Mb)
-adafruit_qtpy_esp32s2.menu.FlashSize.16M.build.flash_size=16MB
 
 adafruit_qtpy_esp32s2.menu.UploadSpeed.921600=921600
 adafruit_qtpy_esp32s2.menu.UploadSpeed.921600.upload.speed=921600
@@ -7498,6 +7516,7 @@ adafruit_qtpy_esp32s2.menu.DebugLevel.verbose=Verbose
 adafruit_qtpy_esp32s2.menu.DebugLevel.verbose.build.code_debug=5
 
 ##############################################################
+# Adafruit QT Py ESP32-C3
 
 adafruit_qtpy_esp32c3.name=Adafruit QT Py ESP32-C3
 adafruit_qtpy_esp32c3.vid.0=0x303a
@@ -7521,19 +7540,19 @@ adafruit_qtpy_esp32c3.serial.disableDTR=false
 adafruit_qtpy_esp32c3.serial.disableRTS=false
 
 adafruit_qtpy_esp32c3.build.tarch=riscv32
+adafruit_qtpy_esp32c3.build.bootloader_addr=0x0
 adafruit_qtpy_esp32c3.build.target=esp
 adafruit_qtpy_esp32c3.build.mcu=esp32c3
 adafruit_qtpy_esp32c3.build.core=esp32
 adafruit_qtpy_esp32c3.build.variant=adafruit_qtpy_esp32c3
 adafruit_qtpy_esp32c3.build.board=ADAFRUIT_QTPY_ESP32C3
-adafruit_qtpy_esp32c3.build.bootloader_addr=0x0
 
-adafruit_qtpy_esp32c3.build.cdc_on_boot=0
+adafruit_qtpy_esp32c3.build.cdc_on_boot=1
 adafruit_qtpy_esp32c3.build.f_cpu=160000000L
 adafruit_qtpy_esp32c3.build.flash_size=4MB
 adafruit_qtpy_esp32c3.build.flash_freq=80m
-adafruit_qtpy_esp32c3.build.flash_mode=dout
-adafruit_qtpy_esp32c3.build.boot=dout
+adafruit_qtpy_esp32c3.build.flash_mode=dio
+adafruit_qtpy_esp32c3.build.boot=qio
 adafruit_qtpy_esp32c3.build.partitions=default
 adafruit_qtpy_esp32c3.build.defines=
 
@@ -7578,9 +7597,6 @@ adafruit_qtpy_esp32c3.menu.CPUFreq.20.build.f_cpu=20000000L
 adafruit_qtpy_esp32c3.menu.CPUFreq.10=10MHz
 adafruit_qtpy_esp32c3.menu.CPUFreq.10.build.f_cpu=10000000L
 
-adafruit_qtpy_esp32c3.menu.FlashMode.dout=DOUT
-adafruit_qtpy_esp32c3.menu.FlashMode.dout.build.flash_mode=dout
-adafruit_qtpy_esp32c3.menu.FlashMode.dout.build.boot=dout
 adafruit_qtpy_esp32c3.menu.FlashMode.qio=QIO
 adafruit_qtpy_esp32c3.menu.FlashMode.qio.build.flash_mode=dio
 adafruit_qtpy_esp32c3.menu.FlashMode.qio.build.boot=qio
@@ -7590,6 +7606,9 @@ adafruit_qtpy_esp32c3.menu.FlashMode.dio.build.boot=dio
 adafruit_qtpy_esp32c3.menu.FlashMode.qout=QOUT
 adafruit_qtpy_esp32c3.menu.FlashMode.qout.build.flash_mode=dout
 adafruit_qtpy_esp32c3.menu.FlashMode.qout.build.boot=qout
+adafruit_qtpy_esp32c3.menu.FlashMode.dout=DOUT
+adafruit_qtpy_esp32c3.menu.FlashMode.dout.build.flash_mode=dout
+adafruit_qtpy_esp32c3.menu.FlashMode.dout.build.boot=dout
 
 adafruit_qtpy_esp32c3.menu.FlashFreq.80=80MHz
 adafruit_qtpy_esp32c3.menu.FlashFreq.80.build.flash_freq=80m
@@ -7598,14 +7617,7 @@ adafruit_qtpy_esp32c3.menu.FlashFreq.40.build.flash_freq=40m
 
 adafruit_qtpy_esp32c3.menu.FlashSize.4M=4MB (32Mb)
 adafruit_qtpy_esp32c3.menu.FlashSize.4M.build.flash_size=4MB
-adafruit_qtpy_esp32c3.menu.FlashSize.2M=2MB (16Mb)
-adafruit_qtpy_esp32c3.menu.FlashSize.2M.build.flash_size=2MB
-adafruit_qtpy_esp32c3.menu.FlashSize.2M.build.partitions=minimal
 
-adafruit_qtpy_esp32c3.menu.UploadSpeed.115200=115200
-adafruit_qtpy_esp32c3.menu.UploadSpeed.115200.upload.speed=115200
-adafruit_qtpy_esp32c3.menu.UploadSpeed.921600=921600
-adafruit_qtpy_esp32c3.menu.UploadSpeed.921600.upload.speed=921600
 adafruit_qtpy_esp32c3.menu.UploadSpeed.921600=921600
 adafruit_qtpy_esp32c3.menu.UploadSpeed.921600.upload.speed=921600
 adafruit_qtpy_esp32c3.menu.UploadSpeed.115200=115200
@@ -7635,6 +7647,7 @@ adafruit_qtpy_esp32c3.menu.DebugLevel.verbose=Verbose
 adafruit_qtpy_esp32c3.menu.DebugLevel.verbose.build.code_debug=5
 
 ##############################################################
+# Adafruit QT Py ESP32
 
 adafruit_qtpy_esp32_pico.name=Adafruit QT Py ESP32
 
@@ -7668,15 +7681,48 @@ adafruit_qtpy_esp32_pico.build.flash_mode=dio
 adafruit_qtpy_esp32_pico.build.boot=dio
 adafruit_qtpy_esp32_pico.build.partitions=default
 adafruit_qtpy_esp32_pico.build.defines=
+adafruit_qtpy_esp32_pico.build.loop_core=
+adafruit_qtpy_esp32_pico.build.event_core=
+
+adafruit_qtpy_esp32_pico.menu.LoopCore.1=Core 1
+adafruit_qtpy_esp32_pico.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1
+adafruit_qtpy_esp32_pico.menu.LoopCore.0=Core 0
+adafruit_qtpy_esp32_pico.menu.LoopCore.0.build.loop_core=-DARDUINO_RUNNING_CORE=0
+
+adafruit_qtpy_esp32_pico.menu.EventsCore.1=Core 1
+adafruit_qtpy_esp32_pico.menu.EventsCore.1.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
+adafruit_qtpy_esp32_pico.menu.EventsCore.0=Core 0
+adafruit_qtpy_esp32_pico.menu.EventsCore.0.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=0
+
+adafruit_qtpy_esp32_pico.menu.PSRAM.enabled=Enabled
+adafruit_qtpy_esp32_pico.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue -mfix-esp32-psram-cache-strategy=memw
+adafruit_qtpy_esp32_pico.menu.PSRAM.disabled=Disabled
+adafruit_qtpy_esp32_pico.menu.PSRAM.disabled.build.defines=
 
-adafruit_qtpy_esp32_pico.menu.PartitionScheme.default=Default
-adafruit_qtpy_esp32_pico.menu.PartitionScheme.default.build.partitions=default
-adafruit_qtpy_esp32_pico.menu.PartitionScheme.no_ota=No OTA (Large APP)
-adafruit_qtpy_esp32_pico.menu.PartitionScheme.no_ota.build.partitions=no_ota
-adafruit_qtpy_esp32_pico.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
-adafruit_qtpy_esp32_pico.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (Large APPS with OTA)
-adafruit_qtpy_esp32_pico.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
-adafruit_qtpy_esp32_pico.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
+adafruit_qtpy_esp32_pico.menu.PartitionScheme.default_8MB=Default (3MB APP/1.5MB SPIFFS)
+adafruit_qtpy_esp32_pico.menu.PartitionScheme.default_8MB.build.partitions=default_8MB
+adafruit_qtpy_esp32_pico.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336
+
+adafruit_qtpy_esp32_pico.menu.CPUFreq.240=240MHz (WiFi/BT)
+adafruit_qtpy_esp32_pico.menu.CPUFreq.240.build.f_cpu=240000000L
+adafruit_qtpy_esp32_pico.menu.CPUFreq.160=160MHz (WiFi/BT)
+adafruit_qtpy_esp32_pico.menu.CPUFreq.160.build.f_cpu=160000000L
+adafruit_qtpy_esp32_pico.menu.CPUFreq.80=80MHz (WiFi/BT)
+adafruit_qtpy_esp32_pico.menu.CPUFreq.80.build.f_cpu=80000000L
+adafruit_qtpy_esp32_pico.menu.CPUFreq.40=40MHz
+adafruit_qtpy_esp32_pico.menu.CPUFreq.40.build.f_cpu=40000000L
+adafruit_qtpy_esp32_pico.menu.CPUFreq.20=20MHz
+adafruit_qtpy_esp32_pico.menu.CPUFreq.20.build.f_cpu=20000000L
+adafruit_qtpy_esp32_pico.menu.CPUFreq.10=10MHz
+adafruit_qtpy_esp32_pico.menu.CPUFreq.10.build.f_cpu=10000000L
+
+adafruit_qtpy_esp32_pico.menu.FlashFreq.80=80MHz
+adafruit_qtpy_esp32_pico.menu.FlashFreq.80.build.flash_freq=80m
+adafruit_qtpy_esp32_pico.menu.FlashFreq.40=40MHz
+adafruit_qtpy_esp32_pico.menu.FlashFreq.40.build.flash_freq=40m
+
+adafruit_qtpy_esp32_pico.menu.FlashSize.8M=8MB (64Mb)
+adafruit_qtpy_esp32_pico.menu.FlashSize.8M.build.flash_size=8MB
 
 adafruit_qtpy_esp32_pico.menu.UploadSpeed.921600=921600
 adafruit_qtpy_esp32_pico.menu.UploadSpeed.921600.upload.speed=921600
@@ -7693,13 +7739,6 @@ adafruit_qtpy_esp32_pico.menu.UploadSpeed.460800.upload.speed=460800
 adafruit_qtpy_esp32_pico.menu.UploadSpeed.512000.windows=512000
 adafruit_qtpy_esp32_pico.menu.UploadSpeed.512000.upload.speed=512000
 
-adafruit_qtpy_esp32_pico.menu.PSRAM.enabled=Enabled
-adafruit_qtpy_esp32_pico.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue -mfix-esp32-psram-cache-strategy=memw
-adafruit_qtpy_esp32_pico.menu.PSRAM.enabled.build.extra_libs=
-adafruit_qtpy_esp32_pico.menu.PSRAM.disabled=Disabled
-adafruit_qtpy_esp32_pico.menu.PSRAM.disabled.build.defines=
-adafruit_qtpy_esp32_pico.menu.PSRAM.disabled.build.extra_libs=
-
 adafruit_qtpy_esp32_pico.menu.DebugLevel.none=None
 adafruit_qtpy_esp32_pico.menu.DebugLevel.none.build.code_debug=0
 adafruit_qtpy_esp32_pico.menu.DebugLevel.error=Error
@@ -7714,6 +7753,7 @@ adafruit_qtpy_esp32_pico.menu.DebugLevel.verbose=Verbose
 adafruit_qtpy_esp32_pico.menu.DebugLevel.verbose.build.code_debug=5
 
 ##############################################################
+# Adafruit Feather ESP32 V2
 
 adafruit_feather_esp32_v2.name=Adafruit Feather ESP32 V2
 
@@ -7747,15 +7787,48 @@ adafruit_feather_esp32_v2.build.flash_mode=dio
 adafruit_feather_esp32_v2.build.boot=dio
 adafruit_feather_esp32_v2.build.partitions=default
 adafruit_feather_esp32_v2.build.defines=
+adafruit_feather_esp32_v2.build.loop_core=
+adafruit_feather_esp32_v2.build.event_core=
+
+adafruit_feather_esp32_v2.menu.LoopCore.1=Core 1
+adafruit_feather_esp32_v2.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1
+adafruit_feather_esp32_v2.menu.LoopCore.0=Core 0
+adafruit_feather_esp32_v2.menu.LoopCore.0.build.loop_core=-DARDUINO_RUNNING_CORE=0
+
+adafruit_feather_esp32_v2.menu.EventsCore.1=Core 1
+adafruit_feather_esp32_v2.menu.EventsCore.1.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
+adafruit_feather_esp32_v2.menu.EventsCore.0=Core 0
+adafruit_feather_esp32_v2.menu.EventsCore.0.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=0
 
-adafruit_feather_esp32_v2.menu.PartitionScheme.default=Default
-adafruit_feather_esp32_v2.menu.PartitionScheme.default.build.partitions=default
-adafruit_feather_esp32_v2.menu.PartitionScheme.no_ota=No OTA (Large APP)
-adafruit_feather_esp32_v2.menu.PartitionScheme.no_ota.build.partitions=no_ota
-adafruit_feather_esp32_v2.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
-adafruit_feather_esp32_v2.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (Large APPS with OTA)
-adafruit_feather_esp32_v2.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
-adafruit_feather_esp32_v2.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
+adafruit_feather_esp32_v2.menu.PSRAM.enabled=Enabled
+adafruit_feather_esp32_v2.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue -mfix-esp32-psram-cache-strategy=memw
+adafruit_feather_esp32_v2.menu.PSRAM.disabled=Disabled
+adafruit_feather_esp32_v2.menu.PSRAM.disabled.build.defines=
+
+adafruit_feather_esp32_v2.menu.PartitionScheme.default_8MB=Default (3MB APP/1.5MB SPIFFS)
+adafruit_feather_esp32_v2.menu.PartitionScheme.default_8MB.build.partitions=default_8MB
+adafruit_feather_esp32_v2.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336
+
+adafruit_feather_esp32_v2.menu.CPUFreq.240=240MHz (WiFi/BT)
+adafruit_feather_esp32_v2.menu.CPUFreq.240.build.f_cpu=240000000L
+adafruit_feather_esp32_v2.menu.CPUFreq.160=160MHz (WiFi/BT)
+adafruit_feather_esp32_v2.menu.CPUFreq.160.build.f_cpu=160000000L
+adafruit_feather_esp32_v2.menu.CPUFreq.80=80MHz (WiFi/BT)
+adafruit_feather_esp32_v2.menu.CPUFreq.80.build.f_cpu=80000000L
+adafruit_feather_esp32_v2.menu.CPUFreq.40=40MHz
+adafruit_feather_esp32_v2.menu.CPUFreq.40.build.f_cpu=40000000L
+adafruit_feather_esp32_v2.menu.CPUFreq.20=20MHz
+adafruit_feather_esp32_v2.menu.CPUFreq.20.build.f_cpu=20000000L
+adafruit_feather_esp32_v2.menu.CPUFreq.10=10MHz
+adafruit_feather_esp32_v2.menu.CPUFreq.10.build.f_cpu=10000000L
+
+adafruit_feather_esp32_v2.menu.FlashFreq.80=80MHz
+adafruit_feather_esp32_v2.menu.FlashFreq.80.build.flash_freq=80m
+adafruit_feather_esp32_v2.menu.FlashFreq.40=40MHz
+adafruit_feather_esp32_v2.menu.FlashFreq.40.build.flash_freq=40m
+
+adafruit_feather_esp32_v2.menu.FlashSize.8M=8MB (64Mb)
+adafruit_feather_esp32_v2.menu.FlashSize.8M.build.flash_size=8MB
 
 adafruit_feather_esp32_v2.menu.UploadSpeed.921600=921600
 adafruit_feather_esp32_v2.menu.UploadSpeed.921600.upload.speed=921600
@@ -7772,13 +7845,6 @@ adafruit_feather_esp32_v2.menu.UploadSpeed.460800.upload.speed=460800
 adafruit_feather_esp32_v2.menu.UploadSpeed.512000.windows=512000
 adafruit_feather_esp32_v2.menu.UploadSpeed.512000.upload.speed=512000
 
-adafruit_feather_esp32_v2.menu.PSRAM.enabled=Enabled
-adafruit_feather_esp32_v2.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue -mfix-esp32-psram-cache-strategy=memw
-adafruit_feather_esp32_v2.menu.PSRAM.enabled.build.extra_libs=
-adafruit_feather_esp32_v2.menu.PSRAM.disabled=Disabled
-adafruit_feather_esp32_v2.menu.PSRAM.disabled.build.defines=
-adafruit_feather_esp32_v2.menu.PSRAM.disabled.build.extra_libs=
-
 adafruit_feather_esp32_v2.menu.DebugLevel.none=None
 adafruit_feather_esp32_v2.menu.DebugLevel.none.build.code_debug=0
 adafruit_feather_esp32_v2.menu.DebugLevel.error=Error
@@ -7792,16 +7858,16 @@ adafruit_feather_esp32_v2.menu.DebugLevel.debug.build.code_debug=4
 adafruit_feather_esp32_v2.menu.DebugLevel.verbose=Verbose
 adafruit_feather_esp32_v2.menu.DebugLevel.verbose.build.code_debug=5
 
-
 ##############################################################
+# Adafruit Feather ESP32-S3 2MB PSRAM
 
 adafruit_feather_esp32s3.name=Adafruit Feather ESP32-S3 2MB PSRAM
 adafruit_feather_esp32s3.vid.0=0x239A
 adafruit_feather_esp32s3.pid.0=0x811B
 adafruit_feather_esp32s3.vid.1=0x239A
 adafruit_feather_esp32s3.pid.1=0x011B
-adafruit_feather_esp32s3.vid.1=0x239A
-adafruit_feather_esp32s3.pid.1=0x811C
+adafruit_feather_esp32s3.vid.2=0x239A
+adafruit_feather_esp32s3.pid.2=0x811C
 
 adafruit_feather_esp32s3.bootloader.tool=esptool_py
 adafruit_feather_esp32s3.bootloader.tool.default=esptool_py
@@ -7828,7 +7894,7 @@ adafruit_feather_esp32s3.build.core=esp32
 adafruit_feather_esp32s3.build.variant=adafruit_feather_esp32s3
 adafruit_feather_esp32s3.build.board=ADAFRUIT_FEATHER_ESP32S3
 
-adafruit_feather_esp32s3.build.usb_mode=1
+adafruit_feather_esp32s3.build.usb_mode=0
 adafruit_feather_esp32s3.build.cdc_on_boot=1
 adafruit_feather_esp32s3.build.msc_on_boot=0
 adafruit_feather_esp32s3.build.dfu_on_boot=0
@@ -7845,31 +7911,6 @@ adafruit_feather_esp32s3.build.flash_type=qio
 adafruit_feather_esp32s3.build.psram_type=qspi
 adafruit_feather_esp32s3.build.memory_type={build.flash_type}_{build.psram_type}
 
-adafruit_feather_esp32s3.menu.FlashMode.qio=QIO 80MHz
-adafruit_feather_esp32s3.menu.FlashMode.qio.build.flash_mode=dio
-adafruit_feather_esp32s3.menu.FlashMode.qio.build.boot=qio
-adafruit_feather_esp32s3.menu.FlashMode.qio.build.boot_freq=80m
-adafruit_feather_esp32s3.menu.FlashMode.qio.build.flash_freq=80m
-adafruit_feather_esp32s3.menu.FlashMode.qio.build.flash_type=qio
-adafruit_feather_esp32s3.menu.FlashMode.qio120=QIO 120MHz
-adafruit_feather_esp32s3.menu.FlashMode.qio120.build.flash_mode=dio
-adafruit_feather_esp32s3.menu.FlashMode.qio120.build.boot=qio
-adafruit_feather_esp32s3.menu.FlashMode.qio120.build.boot_freq=120m
-adafruit_feather_esp32s3.menu.FlashMode.qio120.build.flash_freq=80m
-adafruit_feather_esp32s3.menu.FlashMode.qio120.build.flash_type=qio
-adafruit_feather_esp32s3.menu.FlashMode.dio=DIO 80MHz
-adafruit_feather_esp32s3.menu.FlashMode.dio.build.flash_mode=dio
-adafruit_feather_esp32s3.menu.FlashMode.dio.build.boot=dio
-adafruit_feather_esp32s3.menu.FlashMode.dio.build.boot_freq=80m
-adafruit_feather_esp32s3.menu.FlashMode.dio.build.flash_freq=80m
-adafruit_feather_esp32s3.menu.FlashMode.dio.build.flash_type=qio
-adafruit_feather_esp32s3.menu.FlashMode.opi=OPI 80MHz
-adafruit_feather_esp32s3.menu.FlashMode.opi.build.flash_mode=dout
-adafruit_feather_esp32s3.menu.FlashMode.opi.build.boot=opi
-adafruit_feather_esp32s3.menu.FlashMode.opi.build.boot_freq=80m
-adafruit_feather_esp32s3.menu.FlashMode.opi.build.flash_freq=80m
-adafruit_feather_esp32s3.menu.FlashMode.opi.build.flash_type=opi
-
 adafruit_feather_esp32s3.menu.LoopCore.1=Core 1
 adafruit_feather_esp32s3.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1
 adafruit_feather_esp32s3.menu.LoopCore.0=Core 0
@@ -7907,10 +7948,45 @@ adafruit_feather_esp32s3.menu.UploadMode.default=UART0 / Hardware CDC
 adafruit_feather_esp32s3.menu.UploadMode.default.upload.use_1200bps_touch=false
 adafruit_feather_esp32s3.menu.UploadMode.default.upload.wait_for_upload_port=false
 
+adafruit_feather_esp32s3.menu.PSRAM.enabled=QSPI PSRAM
+adafruit_feather_esp32s3.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM
+adafruit_feather_esp32s3.menu.PSRAM.enabled.build.psram_type=qspi
+adafruit_feather_esp32s3.menu.PSRAM.disabled=Disabled
+adafruit_feather_esp32s3.menu.PSRAM.disabled.build.defines=
+adafruit_feather_esp32s3.menu.PSRAM.disabled.build.psram_type=qspi
+adafruit_feather_esp32s3.menu.PSRAM.opi=OPI PSRAM
+adafruit_feather_esp32s3.menu.PSRAM.opi.build.defines=-DBOARD_HAS_PSRAM
+adafruit_feather_esp32s3.menu.PSRAM.opi.build.psram_type=opi
+
+adafruit_feather_esp32s3.menu.PartitionScheme.tinyuf2=TinyUF2 4MB (1.3MB APP/960KB FFAT)
+adafruit_feather_esp32s3.menu.PartitionScheme.tinyuf2.build.custom_bootloader=bootloader-tinyuf2
+adafruit_feather_esp32s3.menu.PartitionScheme.tinyuf2.build.custom_partitions=partitions-4MB-tinyuf2
+adafruit_feather_esp32s3.menu.PartitionScheme.tinyuf2.upload.maximum_size=1441792
+adafruit_feather_esp32s3.menu.PartitionScheme.tinyuf2.upload.extra_flags=0x2d0000 "{runtime.platform.path}/variants/{build.variant}/tinyuf2.bin"
 adafruit_feather_esp32s3.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
 adafruit_feather_esp32s3.menu.PartitionScheme.default.build.partitions=default
 adafruit_feather_esp32s3.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
 adafruit_feather_esp32s3.menu.PartitionScheme.defaultffat.build.partitions=default_ffat
+adafruit_feather_esp32s3.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS)
+adafruit_feather_esp32s3.menu.PartitionScheme.minimal.build.partitions=minimal
+adafruit_feather_esp32s3.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS)
+adafruit_feather_esp32s3.menu.PartitionScheme.no_ota.build.partitions=no_ota
+adafruit_feather_esp32s3.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
+adafruit_feather_esp32s3.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS)
+adafruit_feather_esp32s3.menu.PartitionScheme.noota_3g.build.partitions=noota_3g
+adafruit_feather_esp32s3.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576
+adafruit_feather_esp32s3.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS)
+adafruit_feather_esp32s3.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat
+adafruit_feather_esp32s3.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152
+adafruit_feather_esp32s3.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS)
+adafruit_feather_esp32s3.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat
+adafruit_feather_esp32s3.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576
+adafruit_feather_esp32s3.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
+adafruit_feather_esp32s3.menu.PartitionScheme.huge_app.build.partitions=huge_app
+adafruit_feather_esp32s3.menu.PartitionScheme.huge_app.upload.maximum_size=3145728
+adafruit_feather_esp32s3.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
+adafruit_feather_esp32s3.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
+adafruit_feather_esp32s3.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
 
 adafruit_feather_esp32s3.menu.CPUFreq.240=240MHz (WiFi)
 adafruit_feather_esp32s3.menu.CPUFreq.240.build.f_cpu=240000000L
@@ -7925,6 +8001,30 @@ adafruit_feather_esp32s3.menu.CPUFreq.20.build.f_cpu=20000000L
 adafruit_feather_esp32s3.menu.CPUFreq.10=10MHz
 adafruit_feather_esp32s3.menu.CPUFreq.10.build.f_cpu=10000000L
 
+adafruit_feather_esp32s3.menu.FlashMode.qio=QIO 80MHz
+adafruit_feather_esp32s3.menu.FlashMode.qio.build.flash_mode=dio
+adafruit_feather_esp32s3.menu.FlashMode.qio.build.boot=qio
+adafruit_feather_esp32s3.menu.FlashMode.qio.build.boot_freq=80m
+adafruit_feather_esp32s3.menu.FlashMode.qio.build.flash_freq=80m
+adafruit_feather_esp32s3.menu.FlashMode.qio120=QIO 120MHz
+adafruit_feather_esp32s3.menu.FlashMode.qio120.build.flash_mode=dio
+adafruit_feather_esp32s3.menu.FlashMode.qio120.build.boot=qio
+adafruit_feather_esp32s3.menu.FlashMode.qio120.build.boot_freq=120m
+adafruit_feather_esp32s3.menu.FlashMode.qio120.build.flash_freq=80m
+adafruit_feather_esp32s3.menu.FlashMode.dio=DIO 80MHz
+adafruit_feather_esp32s3.menu.FlashMode.dio.build.flash_mode=dio
+adafruit_feather_esp32s3.menu.FlashMode.dio.build.boot=dio
+adafruit_feather_esp32s3.menu.FlashMode.dio.build.boot_freq=80m
+adafruit_feather_esp32s3.menu.FlashMode.dio.build.flash_freq=80m
+adafruit_feather_esp32s3.menu.FlashMode.opi=OPI 80MHz
+adafruit_feather_esp32s3.menu.FlashMode.opi.build.flash_mode=dout
+adafruit_feather_esp32s3.menu.FlashMode.opi.build.boot=opi
+adafruit_feather_esp32s3.menu.FlashMode.opi.build.boot_freq=80m
+adafruit_feather_esp32s3.menu.FlashMode.opi.build.flash_freq=80m
+
+adafruit_feather_esp32s3.menu.FlashSize.4M=4MB (32Mb)
+adafruit_feather_esp32s3.menu.FlashSize.4M.build.flash_size=4MB
+
 adafruit_feather_esp32s3.menu.UploadSpeed.921600=921600
 adafruit_feather_esp32s3.menu.UploadSpeed.921600.upload.speed=921600
 adafruit_feather_esp32s3.menu.UploadSpeed.115200=115200
@@ -7953,16 +8053,16 @@ adafruit_feather_esp32s3.menu.DebugLevel.debug.build.code_debug=4
 adafruit_feather_esp32s3.menu.DebugLevel.verbose=Verbose
 adafruit_feather_esp32s3.menu.DebugLevel.verbose.build.code_debug=5
 
-
 ##############################################################
+# Adafruit Feather ESP32-S3 No PSRAM
 
 adafruit_feather_esp32s3_nopsram.name=Adafruit Feather ESP32-S3 No PSRAM
 adafruit_feather_esp32s3_nopsram.vid.0=0x239A
 adafruit_feather_esp32s3_nopsram.pid.0=0x8113
 adafruit_feather_esp32s3_nopsram.vid.1=0x239A
 adafruit_feather_esp32s3_nopsram.pid.1=0x0113
-adafruit_feather_esp32s3_nopsram.vid.1=0x239A
-adafruit_feather_esp32s3_nopsram.pid.1=0x8114
+adafruit_feather_esp32s3_nopsram.vid.2=0x239A
+adafruit_feather_esp32s3_nopsram.pid.2=0x8114
 
 adafruit_feather_esp32s3_nopsram.bootloader.tool=esptool_py
 adafruit_feather_esp32s3_nopsram.bootloader.tool.default=esptool_py
@@ -7974,7 +8074,7 @@ adafruit_feather_esp32s3_nopsram.upload.tool.network=esp_ota
 adafruit_feather_esp32s3_nopsram.upload.maximum_size=1310720
 adafruit_feather_esp32s3_nopsram.upload.maximum_data_size=327680
 adafruit_feather_esp32s3_nopsram.upload.flags=
-adafruit_feather_esp32s3_nopsram.upload.extra_flags=0x2d0000 "{runtime.platform.path}/variants/{build.variant}/tinyuf2.bin"
+adafruit_feather_esp32s3_nopsram.upload.extra_flags=
 adafruit_feather_esp32s3_nopsram.upload.use_1200bps_touch=true
 adafruit_feather_esp32s3_nopsram.upload.wait_for_upload_port=true
 
@@ -7989,7 +8089,7 @@ adafruit_feather_esp32s3_nopsram.build.core=esp32
 adafruit_feather_esp32s3_nopsram.build.variant=adafruit_feather_esp32s3_nopsram
 adafruit_feather_esp32s3_nopsram.build.board=ADAFRUIT_FEATHER_ESP32S3_NOPSRAM
 
-adafruit_feather_esp32s3_nopsram.build.usb_mode=1
+adafruit_feather_esp32s3_nopsram.build.usb_mode=0
 adafruit_feather_esp32s3_nopsram.build.cdc_on_boot=1
 adafruit_feather_esp32s3_nopsram.build.msc_on_boot=0
 adafruit_feather_esp32s3_nopsram.build.dfu_on_boot=0
@@ -8000,17 +8100,26 @@ adafruit_feather_esp32s3_nopsram.build.flash_mode=dio
 adafruit_feather_esp32s3_nopsram.build.boot=qio
 adafruit_feather_esp32s3_nopsram.build.partitions=default
 adafruit_feather_esp32s3_nopsram.build.defines=
-adafruit_feather_esp32s3_nopsram.build.loop_core=-DARDUINO_RUNNING_CORE=1
-adafruit_feather_esp32s3_nopsram.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
-
-adafruit_feather_esp32s3_nopsram.menu.USBMode.default=USB-OTG
+adafruit_feather_esp32s3_nopsram.build.loop_core=
+adafruit_feather_esp32s3_nopsram.build.event_core=
+adafruit_feather_esp32s3_nopsram.build.flash_type=qio
+adafruit_feather_esp32s3_nopsram.build.psram_type=qspi
+adafruit_feather_esp32s3_nopsram.build.memory_type={build.flash_type}_{build.psram_type}
+
+adafruit_feather_esp32s3_nopsram.menu.LoopCore.1=Core 1
+adafruit_feather_esp32s3_nopsram.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1
+adafruit_feather_esp32s3_nopsram.menu.LoopCore.0=Core 0
+adafruit_feather_esp32s3_nopsram.menu.LoopCore.0.build.loop_core=-DARDUINO_RUNNING_CORE=0
+
+adafruit_feather_esp32s3_nopsram.menu.EventsCore.1=Core 1
+adafruit_feather_esp32s3_nopsram.menu.EventsCore.1.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
+adafruit_feather_esp32s3_nopsram.menu.EventsCore.0=Core 0
+adafruit_feather_esp32s3_nopsram.menu.EventsCore.0.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=0
+
+adafruit_feather_esp32s3_nopsram.menu.USBMode.default=USB-OTG (TinyUSB)
 adafruit_feather_esp32s3_nopsram.menu.USBMode.default.build.usb_mode=0
-adafruit_feather_esp32s3_nopsram.menu.USBMode.default.upload.use_1200bps_touch=true
-adafruit_feather_esp32s3_nopsram.menu.USBMode.default.upload.wait_for_upload_port=true
 adafruit_feather_esp32s3_nopsram.menu.USBMode.hwcdc=Hardware CDC and JTAG
 adafruit_feather_esp32s3_nopsram.menu.USBMode.hwcdc.build.usb_mode=1
-adafruit_feather_esp32s3_nopsram.menu.USBMode.hwcdc.upload.use_1200bps_touch=false
-adafruit_feather_esp32s3_nopsram.menu.USBMode.hwcdc.upload.wait_for_upload_port=false
 
 adafruit_feather_esp32s3_nopsram.menu.CDCOnBoot.cdc=Enabled
 adafruit_feather_esp32s3_nopsram.menu.CDCOnBoot.cdc.build.cdc_on_boot=1
@@ -8019,47 +8128,29 @@ adafruit_feather_esp32s3_nopsram.menu.CDCOnBoot.default.build.cdc_on_boot=0
 
 adafruit_feather_esp32s3_nopsram.menu.MSCOnBoot.default=Disabled
 adafruit_feather_esp32s3_nopsram.menu.MSCOnBoot.default.build.msc_on_boot=0
-adafruit_feather_esp32s3_nopsram.menu.MSCOnBoot.msc=Enabled
+adafruit_feather_esp32s3_nopsram.menu.MSCOnBoot.msc=Enabled (Requires USB-OTG Mode)
 adafruit_feather_esp32s3_nopsram.menu.MSCOnBoot.msc.build.msc_on_boot=1
 
 adafruit_feather_esp32s3_nopsram.menu.DFUOnBoot.default=Disabled
 adafruit_feather_esp32s3_nopsram.menu.DFUOnBoot.default.build.dfu_on_boot=0
-adafruit_feather_esp32s3_nopsram.menu.DFUOnBoot.dfu=Enabled
+adafruit_feather_esp32s3_nopsram.menu.DFUOnBoot.dfu=Enabled (Requires USB-OTG Mode)
 adafruit_feather_esp32s3_nopsram.menu.DFUOnBoot.dfu.build.dfu_on_boot=1
 
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.default.build.partitions=default
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.defaultffat.build.partitions=default_ffat
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.default_8MB=8M Flash (3MB APP/1.5MB FAT)
+adafruit_feather_esp32s3_nopsram.menu.UploadMode.cdc=USB-OTG CDC (TinyUSB)
+adafruit_feather_esp32s3_nopsram.menu.UploadMode.cdc.upload.use_1200bps_touch=true
+adafruit_feather_esp32s3_nopsram.menu.UploadMode.cdc.upload.wait_for_upload_port=true
+adafruit_feather_esp32s3_nopsram.menu.UploadMode.default=UART0 / Hardware CDC
+adafruit_feather_esp32s3_nopsram.menu.UploadMode.default.upload.use_1200bps_touch=false
+adafruit_feather_esp32s3_nopsram.menu.UploadMode.default.upload.wait_for_upload_port=false
+
+adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.tinyuf2=TinyUF2 8MB (2MB APP/3.7MB FFAT)
+adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.tinyuf2.build.custom_bootloader=bootloader-tinyuf2
+adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.tinyuf2.build.custom_partitions=partitions-8MB-tinyuf2
+adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.tinyuf2.upload.maximum_size=2097152
+adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.tinyuf2.upload.extra_flags=0x410000 "{runtime.platform.path}/variants/{build.variant}/tinyuf2.bin"
+adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.default_8MB=Default (3MB APP/1.5MB SPIFFS)
 adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.default_8MB.build.partitions=default_8MB
 adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS)
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.minimal.build.partitions=minimal
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS)
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.no_ota.build.partitions=no_ota
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS)
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.noota_3g.build.partitions=noota_3g
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS)
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS)
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.huge_app.build.partitions=huge_app
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.huge_app.upload.maximum_size=3145728
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FAT)
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.fatflash.build.partitions=ffat
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.fatflash.upload.maximum_size=2097152
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9MB FATFS)
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB
-adafruit_feather_esp32s3_nopsram.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728
 
 adafruit_feather_esp32s3_nopsram.menu.CPUFreq.240=240MHz (WiFi)
 adafruit_feather_esp32s3_nopsram.menu.CPUFreq.240.build.f_cpu=240000000L
@@ -8074,10 +8165,29 @@ adafruit_feather_esp32s3_nopsram.menu.CPUFreq.20.build.f_cpu=20000000L
 adafruit_feather_esp32s3_nopsram.menu.CPUFreq.10=10MHz
 adafruit_feather_esp32s3_nopsram.menu.CPUFreq.10.build.f_cpu=10000000L
 
-adafruit_feather_esp32s3_nopsram.menu.FlashFreq.80=80MHz
-adafruit_feather_esp32s3_nopsram.menu.FlashFreq.80.build.flash_freq=80m
-adafruit_feather_esp32s3_nopsram.menu.FlashFreq.40=40MHz
-adafruit_feather_esp32s3_nopsram.menu.FlashFreq.40.build.flash_freq=40m
+adafruit_feather_esp32s3_nopsram.menu.FlashMode.qio=QIO 80MHz
+adafruit_feather_esp32s3_nopsram.menu.FlashMode.qio.build.flash_mode=dio
+adafruit_feather_esp32s3_nopsram.menu.FlashMode.qio.build.boot=qio
+adafruit_feather_esp32s3_nopsram.menu.FlashMode.qio.build.boot_freq=80m
+adafruit_feather_esp32s3_nopsram.menu.FlashMode.qio.build.flash_freq=80m
+adafruit_feather_esp32s3_nopsram.menu.FlashMode.qio120=QIO 120MHz
+adafruit_feather_esp32s3_nopsram.menu.FlashMode.qio120.build.flash_mode=dio
+adafruit_feather_esp32s3_nopsram.menu.FlashMode.qio120.build.boot=qio
+adafruit_feather_esp32s3_nopsram.menu.FlashMode.qio120.build.boot_freq=120m
+adafruit_feather_esp32s3_nopsram.menu.FlashMode.qio120.build.flash_freq=80m
+adafruit_feather_esp32s3_nopsram.menu.FlashMode.dio=DIO 80MHz
+adafruit_feather_esp32s3_nopsram.menu.FlashMode.dio.build.flash_mode=dio
+adafruit_feather_esp32s3_nopsram.menu.FlashMode.dio.build.boot=dio
+adafruit_feather_esp32s3_nopsram.menu.FlashMode.dio.build.boot_freq=80m
+adafruit_feather_esp32s3_nopsram.menu.FlashMode.dio.build.flash_freq=80m
+adafruit_feather_esp32s3_nopsram.menu.FlashMode.opi=OPI 80MHz
+adafruit_feather_esp32s3_nopsram.menu.FlashMode.opi.build.flash_mode=dout
+adafruit_feather_esp32s3_nopsram.menu.FlashMode.opi.build.boot=opi
+adafruit_feather_esp32s3_nopsram.menu.FlashMode.opi.build.boot_freq=80m
+adafruit_feather_esp32s3_nopsram.menu.FlashMode.opi.build.flash_freq=80m
+
+adafruit_feather_esp32s3_nopsram.menu.FlashSize.8M=8MB (64Mb)
+adafruit_feather_esp32s3_nopsram.menu.FlashSize.8M.build.flash_size=8MB
 
 adafruit_feather_esp32s3_nopsram.menu.UploadSpeed.921600=921600
 adafruit_feather_esp32s3_nopsram.menu.UploadSpeed.921600.upload.speed=921600
@@ -8107,16 +8217,16 @@ adafruit_feather_esp32s3_nopsram.menu.DebugLevel.debug.build.code_debug=4
 adafruit_feather_esp32s3_nopsram.menu.DebugLevel.verbose=Verbose
 adafruit_feather_esp32s3_nopsram.menu.DebugLevel.verbose.build.code_debug=5
 
-
 ##############################################################
+# Adafruit Feather ESP32-S3 TFT
 
 adafruit_feather_esp32s3_tft.name=Adafruit Feather ESP32-S3 TFT
 adafruit_feather_esp32s3_tft.vid.0=0x239A
 adafruit_feather_esp32s3_tft.pid.0=0x811D
 adafruit_feather_esp32s3_tft.vid.1=0x239A
 adafruit_feather_esp32s3_tft.pid.1=0x011D
-adafruit_feather_esp32s3_tft.vid.1=0x239A
-adafruit_feather_esp32s3_tft.pid.1=0x811E
+adafruit_feather_esp32s3_tft.vid.2=0x239A
+adafruit_feather_esp32s3_tft.pid.2=0x811E
 
 adafruit_feather_esp32s3_tft.bootloader.tool=esptool_py
 adafruit_feather_esp32s3_tft.bootloader.tool.default=esptool_py
@@ -8128,7 +8238,7 @@ adafruit_feather_esp32s3_tft.upload.tool.network=esp_ota
 adafruit_feather_esp32s3_tft.upload.maximum_size=1310720
 adafruit_feather_esp32s3_tft.upload.maximum_data_size=327680
 adafruit_feather_esp32s3_tft.upload.flags=
-adafruit_feather_esp32s3_tft.upload.extra_flags=0x2d0000 "{runtime.platform.path}/variants/{build.variant}/tinyuf2.bin"
+adafruit_feather_esp32s3_tft.upload.extra_flags=
 adafruit_feather_esp32s3_tft.upload.use_1200bps_touch=true
 adafruit_feather_esp32s3_tft.upload.wait_for_upload_port=true
 
@@ -8143,7 +8253,7 @@ adafruit_feather_esp32s3_tft.build.core=esp32
 adafruit_feather_esp32s3_tft.build.variant=adafruit_feather_esp32s3_tft
 adafruit_feather_esp32s3_tft.build.board=ADAFRUIT_FEATHER_ESP32S3_TFT
 
-adafruit_feather_esp32s3_tft.build.usb_mode=1
+adafruit_feather_esp32s3_tft.build.usb_mode=0
 adafruit_feather_esp32s3_tft.build.cdc_on_boot=1
 adafruit_feather_esp32s3_tft.build.msc_on_boot=0
 adafruit_feather_esp32s3_tft.build.dfu_on_boot=0
@@ -8154,17 +8264,26 @@ adafruit_feather_esp32s3_tft.build.flash_mode=dio
 adafruit_feather_esp32s3_tft.build.boot=qio
 adafruit_feather_esp32s3_tft.build.partitions=default
 adafruit_feather_esp32s3_tft.build.defines=
-adafruit_feather_esp32s3_tft.build.loop_core=-DARDUINO_RUNNING_CORE=1
-adafruit_feather_esp32s3_tft.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
-
-adafruit_feather_esp32s3_tft.menu.USBMode.default=USB-OTG
+adafruit_feather_esp32s3_tft.build.loop_core=
+adafruit_feather_esp32s3_tft.build.event_core=
+adafruit_feather_esp32s3_tft.build.flash_type=qio
+adafruit_feather_esp32s3_tft.build.psram_type=qspi
+adafruit_feather_esp32s3_tft.build.memory_type={build.flash_type}_{build.psram_type}
+
+adafruit_feather_esp32s3_tft.menu.LoopCore.1=Core 1
+adafruit_feather_esp32s3_tft.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1
+adafruit_feather_esp32s3_tft.menu.LoopCore.0=Core 0
+adafruit_feather_esp32s3_tft.menu.LoopCore.0.build.loop_core=-DARDUINO_RUNNING_CORE=0
+
+adafruit_feather_esp32s3_tft.menu.EventsCore.1=Core 1
+adafruit_feather_esp32s3_tft.menu.EventsCore.1.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
+adafruit_feather_esp32s3_tft.menu.EventsCore.0=Core 0
+adafruit_feather_esp32s3_tft.menu.EventsCore.0.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=0
+
+adafruit_feather_esp32s3_tft.menu.USBMode.default=USB-OTG (TinyUSB)
 adafruit_feather_esp32s3_tft.menu.USBMode.default.build.usb_mode=0
-adafruit_feather_esp32s3_tft.menu.USBMode.default.upload.use_1200bps_touch=true
-adafruit_feather_esp32s3_tft.menu.USBMode.default.upload.wait_for_upload_port=true
 adafruit_feather_esp32s3_tft.menu.USBMode.hwcdc=Hardware CDC and JTAG
 adafruit_feather_esp32s3_tft.menu.USBMode.hwcdc.build.usb_mode=1
-adafruit_feather_esp32s3_tft.menu.USBMode.hwcdc.upload.use_1200bps_touch=false
-adafruit_feather_esp32s3_tft.menu.USBMode.hwcdc.upload.wait_for_upload_port=false
 
 adafruit_feather_esp32s3_tft.menu.CDCOnBoot.cdc=Enabled
 adafruit_feather_esp32s3_tft.menu.CDCOnBoot.cdc.build.cdc_on_boot=1
@@ -8173,14 +8292,21 @@ adafruit_feather_esp32s3_tft.menu.CDCOnBoot.default.build.cdc_on_boot=0
 
 adafruit_feather_esp32s3_tft.menu.MSCOnBoot.default=Disabled
 adafruit_feather_esp32s3_tft.menu.MSCOnBoot.default.build.msc_on_boot=0
-adafruit_feather_esp32s3_tft.menu.MSCOnBoot.msc=Enabled
+adafruit_feather_esp32s3_tft.menu.MSCOnBoot.msc=Enabled (Requires USB-OTG Mode)
 adafruit_feather_esp32s3_tft.menu.MSCOnBoot.msc.build.msc_on_boot=1
 
 adafruit_feather_esp32s3_tft.menu.DFUOnBoot.default=Disabled
 adafruit_feather_esp32s3_tft.menu.DFUOnBoot.default.build.dfu_on_boot=0
-adafruit_feather_esp32s3_tft.menu.DFUOnBoot.dfu=Enabled
+adafruit_feather_esp32s3_tft.menu.DFUOnBoot.dfu=Enabled (Requires USB-OTG Mode)
 adafruit_feather_esp32s3_tft.menu.DFUOnBoot.dfu.build.dfu_on_boot=1
 
+adafruit_feather_esp32s3_tft.menu.UploadMode.cdc=USB-OTG CDC (TinyUSB)
+adafruit_feather_esp32s3_tft.menu.UploadMode.cdc.upload.use_1200bps_touch=true
+adafruit_feather_esp32s3_tft.menu.UploadMode.cdc.upload.wait_for_upload_port=true
+adafruit_feather_esp32s3_tft.menu.UploadMode.default=UART0 / Hardware CDC
+adafruit_feather_esp32s3_tft.menu.UploadMode.default.upload.use_1200bps_touch=false
+adafruit_feather_esp32s3_tft.menu.UploadMode.default.upload.wait_for_upload_port=false
+
 adafruit_feather_esp32s3_tft.menu.PSRAM.enabled=QSPI PSRAM
 adafruit_feather_esp32s3_tft.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM
 adafruit_feather_esp32s3_tft.menu.PSRAM.enabled.build.psram_type=qspi
@@ -8191,14 +8317,15 @@ adafruit_feather_esp32s3_tft.menu.PSRAM.opi=OPI PSRAM
 adafruit_feather_esp32s3_tft.menu.PSRAM.opi.build.defines=-DBOARD_HAS_PSRAM
 adafruit_feather_esp32s3_tft.menu.PSRAM.opi.build.psram_type=opi
 
-
+adafruit_feather_esp32s3_tft.menu.PartitionScheme.tinyuf2=TinyUF2 4MB (1.3MB APP/960KB FFAT)
+adafruit_feather_esp32s3_tft.menu.PartitionScheme.tinyuf2.build.custom_bootloader=bootloader-tinyuf2
+adafruit_feather_esp32s3_tft.menu.PartitionScheme.tinyuf2.build.custom_partitions=partitions-4MB-tinyuf2
+adafruit_feather_esp32s3_tft.menu.PartitionScheme.tinyuf2.upload.maximum_size=1441792
+adafruit_feather_esp32s3_tft.menu.PartitionScheme.tinyuf2.upload.extra_flags=0x2d0000 "{runtime.platform.path}/variants/{build.variant}/tinyuf2.bin"
 adafruit_feather_esp32s3_tft.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
 adafruit_feather_esp32s3_tft.menu.PartitionScheme.default.build.partitions=default
 adafruit_feather_esp32s3_tft.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
 adafruit_feather_esp32s3_tft.menu.PartitionScheme.defaultffat.build.partitions=default_ffat
-adafruit_feather_esp32s3_tft.menu.PartitionScheme.default_8MB=8M Flash (3MB APP/1.5MB FAT)
-adafruit_feather_esp32s3_tft.menu.PartitionScheme.default_8MB.build.partitions=default_8MB
-adafruit_feather_esp32s3_tft.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336
 adafruit_feather_esp32s3_tft.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS)
 adafruit_feather_esp32s3_tft.menu.PartitionScheme.minimal.build.partitions=minimal
 adafruit_feather_esp32s3_tft.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS)
@@ -8219,12 +8346,6 @@ adafruit_feather_esp32s3_tft.menu.PartitionScheme.huge_app.upload.maximum_size=3
 adafruit_feather_esp32s3_tft.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
 adafruit_feather_esp32s3_tft.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
 adafruit_feather_esp32s3_tft.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
-adafruit_feather_esp32s3_tft.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FAT)
-adafruit_feather_esp32s3_tft.menu.PartitionScheme.fatflash.build.partitions=ffat
-adafruit_feather_esp32s3_tft.menu.PartitionScheme.fatflash.upload.maximum_size=2097152
-adafruit_feather_esp32s3_tft.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9MB FATFS)
-adafruit_feather_esp32s3_tft.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB
-adafruit_feather_esp32s3_tft.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728
 
 adafruit_feather_esp32s3_tft.menu.CPUFreq.240=240MHz (WiFi)
 adafruit_feather_esp32s3_tft.menu.CPUFreq.240.build.f_cpu=240000000L
@@ -8239,10 +8360,29 @@ adafruit_feather_esp32s3_tft.menu.CPUFreq.20.build.f_cpu=20000000L
 adafruit_feather_esp32s3_tft.menu.CPUFreq.10=10MHz
 adafruit_feather_esp32s3_tft.menu.CPUFreq.10.build.f_cpu=10000000L
 
-adafruit_feather_esp32s3_tft.menu.FlashFreq.80=80MHz
-adafruit_feather_esp32s3_tft.menu.FlashFreq.80.build.flash_freq=80m
-adafruit_feather_esp32s3_tft.menu.FlashFreq.40=40MHz
-adafruit_feather_esp32s3_tft.menu.FlashFreq.40.build.flash_freq=40m
+adafruit_feather_esp32s3_tft.menu.FlashMode.qio=QIO 80MHz
+adafruit_feather_esp32s3_tft.menu.FlashMode.qio.build.flash_mode=dio
+adafruit_feather_esp32s3_tft.menu.FlashMode.qio.build.boot=qio
+adafruit_feather_esp32s3_tft.menu.FlashMode.qio.build.boot_freq=80m
+adafruit_feather_esp32s3_tft.menu.FlashMode.qio.build.flash_freq=80m
+adafruit_feather_esp32s3_tft.menu.FlashMode.qio120=QIO 120MHz
+adafruit_feather_esp32s3_tft.menu.FlashMode.qio120.build.flash_mode=dio
+adafruit_feather_esp32s3_tft.menu.FlashMode.qio120.build.boot=qio
+adafruit_feather_esp32s3_tft.menu.FlashMode.qio120.build.boot_freq=120m
+adafruit_feather_esp32s3_tft.menu.FlashMode.qio120.build.flash_freq=80m
+adafruit_feather_esp32s3_tft.menu.FlashMode.dio=DIO 80MHz
+adafruit_feather_esp32s3_tft.menu.FlashMode.dio.build.flash_mode=dio
+adafruit_feather_esp32s3_tft.menu.FlashMode.dio.build.boot=dio
+adafruit_feather_esp32s3_tft.menu.FlashMode.dio.build.boot_freq=80m
+adafruit_feather_esp32s3_tft.menu.FlashMode.dio.build.flash_freq=80m
+adafruit_feather_esp32s3_tft.menu.FlashMode.opi=OPI 80MHz
+adafruit_feather_esp32s3_tft.menu.FlashMode.opi.build.flash_mode=dout
+adafruit_feather_esp32s3_tft.menu.FlashMode.opi.build.boot=opi
+adafruit_feather_esp32s3_tft.menu.FlashMode.opi.build.boot_freq=80m
+adafruit_feather_esp32s3_tft.menu.FlashMode.opi.build.flash_freq=80m
+
+adafruit_feather_esp32s3_tft.menu.FlashSize.4M=4MB (32Mb)
+adafruit_feather_esp32s3_tft.menu.FlashSize.4M.build.flash_size=4MB
 
 adafruit_feather_esp32s3_tft.menu.UploadSpeed.921600=921600
 adafruit_feather_esp32s3_tft.menu.UploadSpeed.921600.upload.speed=921600
@@ -8273,14 +8413,15 @@ adafruit_feather_esp32s3_tft.menu.DebugLevel.verbose=Verbose
 adafruit_feather_esp32s3_tft.menu.DebugLevel.verbose.build.code_debug=5
 
 ##############################################################
+# Adafruit QT Py ESP32-S3 No PSRAM
 
 adafruit_qtpy_esp32s3_nopsram.name=Adafruit QT Py ESP32-S3 No PSRAM
 adafruit_qtpy_esp32s3_nopsram.vid.0=0x239A
 adafruit_qtpy_esp32s3_nopsram.pid.0=0x8119
 adafruit_qtpy_esp32s3_nopsram.vid.1=0x239A
 adafruit_qtpy_esp32s3_nopsram.pid.1=0x0119
-adafruit_qtpy_esp32s3_nopsram.vid.1=0x239A
-adafruit_qtpy_esp32s3_nopsram.pid.1=0x811A
+adafruit_qtpy_esp32s3_nopsram.vid.2=0x239A
+adafruit_qtpy_esp32s3_nopsram.pid.2=0x811A
 
 adafruit_qtpy_esp32s3_nopsram.bootloader.tool=esptool_py
 adafruit_qtpy_esp32s3_nopsram.bootloader.tool.default=esptool_py
@@ -8292,10 +8433,9 @@ adafruit_qtpy_esp32s3_nopsram.upload.tool.network=esp_ota
 adafruit_qtpy_esp32s3_nopsram.upload.maximum_size=1310720
 adafruit_qtpy_esp32s3_nopsram.upload.maximum_data_size=327680
 adafruit_qtpy_esp32s3_nopsram.upload.flags=
-adafruit_qtpy_esp32s3_nopsram.upload.extra_flags=0x410000 "{runtime.platform.path}/variants/{build.variant}/tinyuf2.bin"
+adafruit_qtpy_esp32s3_nopsram.upload.extra_flags=
 adafruit_qtpy_esp32s3_nopsram.upload.use_1200bps_touch=true
 adafruit_qtpy_esp32s3_nopsram.upload.wait_for_upload_port=true
-adafruit_qtpy_esp32s3_nopsram.upload.speed=921600
 
 adafruit_qtpy_esp32s3_nopsram.serial.disableDTR=false
 adafruit_qtpy_esp32s3_nopsram.serial.disableRTS=false
@@ -8308,7 +8448,7 @@ adafruit_qtpy_esp32s3_nopsram.build.core=esp32
 adafruit_qtpy_esp32s3_nopsram.build.variant=adafruit_qtpy_esp32s3_nopsram
 adafruit_qtpy_esp32s3_nopsram.build.board=ADAFRUIT_QTPY_ESP32S3_NOPSRAM
 
-adafruit_qtpy_esp32s3_nopsram.build.usb_mode=1
+adafruit_qtpy_esp32s3_nopsram.build.usb_mode=0
 adafruit_qtpy_esp32s3_nopsram.build.cdc_on_boot=1
 adafruit_qtpy_esp32s3_nopsram.build.msc_on_boot=0
 adafruit_qtpy_esp32s3_nopsram.build.dfu_on_boot=0
@@ -8317,19 +8457,28 @@ adafruit_qtpy_esp32s3_nopsram.build.flash_size=8MB
 adafruit_qtpy_esp32s3_nopsram.build.flash_freq=80m
 adafruit_qtpy_esp32s3_nopsram.build.flash_mode=dio
 adafruit_qtpy_esp32s3_nopsram.build.boot=qio
-adafruit_qtpy_esp32s3_nopsram.build.partitions=default_8MB
+adafruit_qtpy_esp32s3_nopsram.build.partitions=default
 adafruit_qtpy_esp32s3_nopsram.build.defines=
-adafruit_qtpy_esp32s3_nopsram.build.loop_core=-DARDUINO_RUNNING_CORE=1
-adafruit_qtpy_esp32s3_nopsram.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
-
-adafruit_qtpy_esp32s3_nopsram.menu.USBMode.default=USB-OTG
+adafruit_qtpy_esp32s3_nopsram.build.loop_core=
+adafruit_qtpy_esp32s3_nopsram.build.event_core=
+adafruit_qtpy_esp32s3_nopsram.build.flash_type=qio
+adafruit_qtpy_esp32s3_nopsram.build.psram_type=qspi
+adafruit_qtpy_esp32s3_nopsram.build.memory_type={build.flash_type}_{build.psram_type}
+
+adafruit_qtpy_esp32s3_nopsram.menu.LoopCore.1=Core 1
+adafruit_qtpy_esp32s3_nopsram.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1
+adafruit_qtpy_esp32s3_nopsram.menu.LoopCore.0=Core 0
+adafruit_qtpy_esp32s3_nopsram.menu.LoopCore.0.build.loop_core=-DARDUINO_RUNNING_CORE=0
+
+adafruit_qtpy_esp32s3_nopsram.menu.EventsCore.1=Core 1
+adafruit_qtpy_esp32s3_nopsram.menu.EventsCore.1.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
+adafruit_qtpy_esp32s3_nopsram.menu.EventsCore.0=Core 0
+adafruit_qtpy_esp32s3_nopsram.menu.EventsCore.0.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=0
+
+adafruit_qtpy_esp32s3_nopsram.menu.USBMode.default=USB-OTG (TinyUSB)
 adafruit_qtpy_esp32s3_nopsram.menu.USBMode.default.build.usb_mode=0
-adafruit_qtpy_esp32s3_nopsram.menu.USBMode.default.upload.use_1200bps_touch=true
-adafruit_qtpy_esp32s3_nopsram.menu.USBMode.default.upload.wait_for_upload_port=true
 adafruit_qtpy_esp32s3_nopsram.menu.USBMode.hwcdc=Hardware CDC and JTAG
 adafruit_qtpy_esp32s3_nopsram.menu.USBMode.hwcdc.build.usb_mode=1
-adafruit_qtpy_esp32s3_nopsram.menu.USBMode.hwcdc.upload.use_1200bps_touch=false
-adafruit_qtpy_esp32s3_nopsram.menu.USBMode.hwcdc.upload.wait_for_upload_port=false
 
 adafruit_qtpy_esp32s3_nopsram.menu.CDCOnBoot.cdc=Enabled
 adafruit_qtpy_esp32s3_nopsram.menu.CDCOnBoot.cdc.build.cdc_on_boot=1
@@ -8338,47 +8487,29 @@ adafruit_qtpy_esp32s3_nopsram.menu.CDCOnBoot.default.build.cdc_on_boot=0
 
 adafruit_qtpy_esp32s3_nopsram.menu.MSCOnBoot.default=Disabled
 adafruit_qtpy_esp32s3_nopsram.menu.MSCOnBoot.default.build.msc_on_boot=0
-adafruit_qtpy_esp32s3_nopsram.menu.MSCOnBoot.msc=Enabled
+adafruit_qtpy_esp32s3_nopsram.menu.MSCOnBoot.msc=Enabled (Requires USB-OTG Mode)
 adafruit_qtpy_esp32s3_nopsram.menu.MSCOnBoot.msc.build.msc_on_boot=1
 
 adafruit_qtpy_esp32s3_nopsram.menu.DFUOnBoot.default=Disabled
 adafruit_qtpy_esp32s3_nopsram.menu.DFUOnBoot.default.build.dfu_on_boot=0
-adafruit_qtpy_esp32s3_nopsram.menu.DFUOnBoot.dfu=Enabled
+adafruit_qtpy_esp32s3_nopsram.menu.DFUOnBoot.dfu=Enabled (Requires USB-OTG Mode)
 adafruit_qtpy_esp32s3_nopsram.menu.DFUOnBoot.dfu.build.dfu_on_boot=1
 
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.default.build.partitions=default
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.defaultffat.build.partitions=default_ffat
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.default_8MB=8M Flash (3MB APP/1.5MB FAT)
+adafruit_qtpy_esp32s3_nopsram.menu.UploadMode.cdc=USB-OTG CDC (TinyUSB)
+adafruit_qtpy_esp32s3_nopsram.menu.UploadMode.cdc.upload.use_1200bps_touch=true
+adafruit_qtpy_esp32s3_nopsram.menu.UploadMode.cdc.upload.wait_for_upload_port=true
+adafruit_qtpy_esp32s3_nopsram.menu.UploadMode.default=UART0 / Hardware CDC
+adafruit_qtpy_esp32s3_nopsram.menu.UploadMode.default.upload.use_1200bps_touch=false
+adafruit_qtpy_esp32s3_nopsram.menu.UploadMode.default.upload.wait_for_upload_port=false
+
+adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.tinyuf2=TinyUF2 8MB (2MB APP/3.7MB FFAT)
+adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.tinyuf2.build.custom_bootloader=bootloader-tinyuf2
+adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.tinyuf2.build.custom_partitions=partitions-8MB-tinyuf2
+adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.tinyuf2.upload.maximum_size=2097152
+adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.tinyuf2.upload.extra_flags=0x410000 "{runtime.platform.path}/variants/{build.variant}/tinyuf2.bin"
+adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.default_8MB=Default (3MB APP/1.5MB SPIFFS)
 adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.default_8MB.build.partitions=default_8MB
 adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS)
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.minimal.build.partitions=minimal
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS)
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.no_ota.build.partitions=no_ota
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS)
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.noota_3g.build.partitions=noota_3g
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS)
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS)
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.huge_app.build.partitions=huge_app
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.huge_app.upload.maximum_size=3145728
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FAT)
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.fatflash.build.partitions=ffat
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.fatflash.upload.maximum_size=2097152
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9MB FATFS)
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB
-adafruit_qtpy_esp32s3_nopsram.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728
 
 adafruit_qtpy_esp32s3_nopsram.menu.CPUFreq.240=240MHz (WiFi)
 adafruit_qtpy_esp32s3_nopsram.menu.CPUFreq.240.build.f_cpu=240000000L
@@ -8393,10 +8524,44 @@ adafruit_qtpy_esp32s3_nopsram.menu.CPUFreq.20.build.f_cpu=20000000L
 adafruit_qtpy_esp32s3_nopsram.menu.CPUFreq.10=10MHz
 adafruit_qtpy_esp32s3_nopsram.menu.CPUFreq.10.build.f_cpu=10000000L
 
-adafruit_qtpy_esp32s3_nopsram.menu.FlashFreq.80=80MHz
-adafruit_qtpy_esp32s3_nopsram.menu.FlashFreq.80.build.flash_freq=80m
-adafruit_qtpy_esp32s3_nopsram.menu.FlashFreq.40=40MHz
-adafruit_qtpy_esp32s3_nopsram.menu.FlashFreq.40.build.flash_freq=40m
+adafruit_qtpy_esp32s3_nopsram.menu.FlashMode.qio=QIO 80MHz
+adafruit_qtpy_esp32s3_nopsram.menu.FlashMode.qio.build.flash_mode=dio
+adafruit_qtpy_esp32s3_nopsram.menu.FlashMode.qio.build.boot=qio
+adafruit_qtpy_esp32s3_nopsram.menu.FlashMode.qio.build.boot_freq=80m
+adafruit_qtpy_esp32s3_nopsram.menu.FlashMode.qio.build.flash_freq=80m
+adafruit_qtpy_esp32s3_nopsram.menu.FlashMode.qio120=QIO 120MHz
+adafruit_qtpy_esp32s3_nopsram.menu.FlashMode.qio120.build.flash_mode=dio
+adafruit_qtpy_esp32s3_nopsram.menu.FlashMode.qio120.build.boot=qio
+adafruit_qtpy_esp32s3_nopsram.menu.FlashMode.qio120.build.boot_freq=120m
+adafruit_qtpy_esp32s3_nopsram.menu.FlashMode.qio120.build.flash_freq=80m
+adafruit_qtpy_esp32s3_nopsram.menu.FlashMode.dio=DIO 80MHz
+adafruit_qtpy_esp32s3_nopsram.menu.FlashMode.dio.build.flash_mode=dio
+adafruit_qtpy_esp32s3_nopsram.menu.FlashMode.dio.build.boot=dio
+adafruit_qtpy_esp32s3_nopsram.menu.FlashMode.dio.build.boot_freq=80m
+adafruit_qtpy_esp32s3_nopsram.menu.FlashMode.dio.build.flash_freq=80m
+adafruit_qtpy_esp32s3_nopsram.menu.FlashMode.opi=OPI 80MHz
+adafruit_qtpy_esp32s3_nopsram.menu.FlashMode.opi.build.flash_mode=dout
+adafruit_qtpy_esp32s3_nopsram.menu.FlashMode.opi.build.boot=opi
+adafruit_qtpy_esp32s3_nopsram.menu.FlashMode.opi.build.boot_freq=80m
+adafruit_qtpy_esp32s3_nopsram.menu.FlashMode.opi.build.flash_freq=80m
+
+adafruit_qtpy_esp32s3_nopsram.menu.FlashSize.8M=8MB (64Mb)
+adafruit_qtpy_esp32s3_nopsram.menu.FlashSize.8M.build.flash_size=8MB
+
+adafruit_qtpy_esp32s3_nopsram.menu.UploadSpeed.921600=921600
+adafruit_qtpy_esp32s3_nopsram.menu.UploadSpeed.921600.upload.speed=921600
+adafruit_qtpy_esp32s3_nopsram.menu.UploadSpeed.115200=115200
+adafruit_qtpy_esp32s3_nopsram.menu.UploadSpeed.115200.upload.speed=115200
+adafruit_qtpy_esp32s3_nopsram.menu.UploadSpeed.256000.windows=256000
+adafruit_qtpy_esp32s3_nopsram.menu.UploadSpeed.256000.upload.speed=256000
+adafruit_qtpy_esp32s3_nopsram.menu.UploadSpeed.230400.windows.upload.speed=256000
+adafruit_qtpy_esp32s3_nopsram.menu.UploadSpeed.230400=230400
+adafruit_qtpy_esp32s3_nopsram.menu.UploadSpeed.230400.upload.speed=230400
+adafruit_qtpy_esp32s3_nopsram.menu.UploadSpeed.460800.linux=460800
+adafruit_qtpy_esp32s3_nopsram.menu.UploadSpeed.460800.macosx=460800
+adafruit_qtpy_esp32s3_nopsram.menu.UploadSpeed.460800.upload.speed=460800
+adafruit_qtpy_esp32s3_nopsram.menu.UploadSpeed.512000.windows=512000
+adafruit_qtpy_esp32s3_nopsram.menu.UploadSpeed.512000.upload.speed=512000
 
 adafruit_qtpy_esp32s3_nopsram.menu.DebugLevel.none=None
 adafruit_qtpy_esp32s3_nopsram.menu.DebugLevel.none.build.code_debug=0
@@ -8411,7 +8576,6 @@ adafruit_qtpy_esp32s3_nopsram.menu.DebugLevel.debug.build.code_debug=4
 adafruit_qtpy_esp32s3_nopsram.menu.DebugLevel.verbose=Verbose
 adafruit_qtpy_esp32s3_nopsram.menu.DebugLevel.verbose.build.code_debug=5
 
-
 ##############################################################
 
 nodemcu-32s.name=NodeMCU-32S
diff --git a/variants/adafruit_feather_esp32s2/bootloader-tinyuf2.bin b/variants/adafruit_feather_esp32s2/bootloader-tinyuf2.bin
index 447db5cea9b..6b885eb4e50 100644
Binary files a/variants/adafruit_feather_esp32s2/bootloader-tinyuf2.bin and b/variants/adafruit_feather_esp32s2/bootloader-tinyuf2.bin differ
diff --git a/variants/adafruit_feather_esp32s2/tinyuf2.bin b/variants/adafruit_feather_esp32s2/tinyuf2.bin
index 362b564946c..82b0d2aee8c 100644
Binary files a/variants/adafruit_feather_esp32s2/tinyuf2.bin and b/variants/adafruit_feather_esp32s2/tinyuf2.bin differ
diff --git a/variants/adafruit_feather_esp32s2_reversetft/bootloader-tinyuf2.bin b/variants/adafruit_feather_esp32s2_reversetft/bootloader-tinyuf2.bin
index c1f5441581d..12d2166aaa5 100644
Binary files a/variants/adafruit_feather_esp32s2_reversetft/bootloader-tinyuf2.bin and b/variants/adafruit_feather_esp32s2_reversetft/bootloader-tinyuf2.bin differ
diff --git a/variants/adafruit_feather_esp32s2_reversetft/tinyuf2.bin b/variants/adafruit_feather_esp32s2_reversetft/tinyuf2.bin
index 863edaa583d..b223d53f658 100644
Binary files a/variants/adafruit_feather_esp32s2_reversetft/tinyuf2.bin and b/variants/adafruit_feather_esp32s2_reversetft/tinyuf2.bin differ
diff --git a/variants/adafruit_feather_esp32s2_tft/bootloader-tinyuf2.bin b/variants/adafruit_feather_esp32s2_tft/bootloader-tinyuf2.bin
index 9a683f4b411..0c4e5968eab 100644
Binary files a/variants/adafruit_feather_esp32s2_tft/bootloader-tinyuf2.bin and b/variants/adafruit_feather_esp32s2_tft/bootloader-tinyuf2.bin differ
diff --git a/variants/adafruit_feather_esp32s2_tft/tinyuf2.bin b/variants/adafruit_feather_esp32s2_tft/tinyuf2.bin
index bffddd73bd4..22fccd4926b 100644
Binary files a/variants/adafruit_feather_esp32s2_tft/tinyuf2.bin and b/variants/adafruit_feather_esp32s2_tft/tinyuf2.bin differ
diff --git a/variants/adafruit_feather_esp32s3/bootloader.bin b/variants/adafruit_feather_esp32s3/bootloader-tinyuf2.bin
similarity index 50%
rename from variants/adafruit_feather_esp32s3/bootloader.bin
rename to variants/adafruit_feather_esp32s3/bootloader-tinyuf2.bin
index 9b1bf7746ae..01e82101211 100644
Binary files a/variants/adafruit_feather_esp32s3/bootloader.bin and b/variants/adafruit_feather_esp32s3/bootloader-tinyuf2.bin differ
diff --git a/variants/adafruit_feather_esp32s3/partitions-4MB-tinyuf2.csv b/variants/adafruit_feather_esp32s3/partitions-4MB-tinyuf2.csv
new file mode 100644
index 00000000000..164ba0d5965
--- /dev/null
+++ b/variants/adafruit_feather_esp32s3/partitions-4MB-tinyuf2.csv
@@ -0,0 +1,11 @@
+# ESP-IDF Partition Table
+# Name,   Type, SubType, Offset,  Size, Flags
+# bootloader.bin,,          0x1000, 32K
+# partition table,          0x8000, 4K
+
+nvs,      data, nvs,      0x9000,  20K,
+otadata,  data, ota,      0xe000,  8K,
+ota_0,    0,    ota_0,   0x10000,  1408K,
+ota_1,    0,    ota_1,  0x170000,  1408K,
+uf2,      app,  factory,0x2d0000,  256K,
+ffat,     data, fat,    0x310000,  960K,
diff --git a/variants/adafruit_feather_esp32s3/tinyuf2.bin b/variants/adafruit_feather_esp32s3/tinyuf2.bin
index f3a7f71a229..5f9d486d3f9 100644
Binary files a/variants/adafruit_feather_esp32s3/tinyuf2.bin and b/variants/adafruit_feather_esp32s3/tinyuf2.bin differ
diff --git a/variants/adafruit_feather_esp32s3_nopsram/bootloader-tinyuf2.bin b/variants/adafruit_feather_esp32s3_nopsram/bootloader-tinyuf2.bin
index eb0151bf8e7..cc6033500b6 100644
Binary files a/variants/adafruit_feather_esp32s3_nopsram/bootloader-tinyuf2.bin and b/variants/adafruit_feather_esp32s3_nopsram/bootloader-tinyuf2.bin differ
diff --git a/variants/adafruit_feather_esp32s3_nopsram/tinyuf2.bin b/variants/adafruit_feather_esp32s3_nopsram/tinyuf2.bin
index 942ba1a133a..a5bab006bca 100644
Binary files a/variants/adafruit_feather_esp32s3_nopsram/tinyuf2.bin and b/variants/adafruit_feather_esp32s3_nopsram/tinyuf2.bin differ
diff --git a/variants/adafruit_feather_esp32s3_tft/bootloader.bin b/variants/adafruit_feather_esp32s3_tft/bootloader-tinyuf2.bin
similarity index 50%
rename from variants/adafruit_feather_esp32s3_tft/bootloader.bin
rename to variants/adafruit_feather_esp32s3_tft/bootloader-tinyuf2.bin
index b857907ce6a..80c58ff2a7f 100644
Binary files a/variants/adafruit_feather_esp32s3_tft/bootloader.bin and b/variants/adafruit_feather_esp32s3_tft/bootloader-tinyuf2.bin differ
diff --git a/variants/adafruit_feather_esp32s3_tft/partitions-4MB-tinyuf2.csv b/variants/adafruit_feather_esp32s3_tft/partitions-4MB-tinyuf2.csv
new file mode 100644
index 00000000000..164ba0d5965
--- /dev/null
+++ b/variants/adafruit_feather_esp32s3_tft/partitions-4MB-tinyuf2.csv
@@ -0,0 +1,11 @@
+# ESP-IDF Partition Table
+# Name,   Type, SubType, Offset,  Size, Flags
+# bootloader.bin,,          0x1000, 32K
+# partition table,          0x8000, 4K
+
+nvs,      data, nvs,      0x9000,  20K,
+otadata,  data, ota,      0xe000,  8K,
+ota_0,    0,    ota_0,   0x10000,  1408K,
+ota_1,    0,    ota_1,  0x170000,  1408K,
+uf2,      app,  factory,0x2d0000,  256K,
+ffat,     data, fat,    0x310000,  960K,
diff --git a/variants/adafruit_feather_esp32s3_tft/tinyuf2.bin b/variants/adafruit_feather_esp32s3_tft/tinyuf2.bin
index 1f19127f3a7..fc895760a15 100644
Binary files a/variants/adafruit_feather_esp32s3_tft/tinyuf2.bin and b/variants/adafruit_feather_esp32s3_tft/tinyuf2.bin differ
diff --git a/variants/adafruit_funhouse_esp32s2/bootloader-tinyuf2.bin b/variants/adafruit_funhouse_esp32s2/bootloader-tinyuf2.bin
index 1b05f01d01d..2729f56c018 100644
Binary files a/variants/adafruit_funhouse_esp32s2/bootloader-tinyuf2.bin and b/variants/adafruit_funhouse_esp32s2/bootloader-tinyuf2.bin differ
diff --git a/variants/adafruit_funhouse_esp32s2/tinyuf2.bin b/variants/adafruit_funhouse_esp32s2/tinyuf2.bin
index cee0b157a65..9e2422846d5 100644
Binary files a/variants/adafruit_funhouse_esp32s2/tinyuf2.bin and b/variants/adafruit_funhouse_esp32s2/tinyuf2.bin differ
diff --git a/variants/adafruit_magtag29_esp32s2/bootloader-tinyuf2.bin b/variants/adafruit_magtag29_esp32s2/bootloader-tinyuf2.bin
index 24a0be33798..43d83bd3710 100644
Binary files a/variants/adafruit_magtag29_esp32s2/bootloader-tinyuf2.bin and b/variants/adafruit_magtag29_esp32s2/bootloader-tinyuf2.bin differ
diff --git a/variants/adafruit_magtag29_esp32s2/tinyuf2.bin b/variants/adafruit_magtag29_esp32s2/tinyuf2.bin
index cd104f792b8..36b7a9bdfd1 100644
Binary files a/variants/adafruit_magtag29_esp32s2/tinyuf2.bin and b/variants/adafruit_magtag29_esp32s2/tinyuf2.bin differ
diff --git a/variants/adafruit_metro_esp32s2/bootloader-tinyuf2.bin b/variants/adafruit_metro_esp32s2/bootloader-tinyuf2.bin
index 8cf515baf4a..2646b979fb9 100644
Binary files a/variants/adafruit_metro_esp32s2/bootloader-tinyuf2.bin and b/variants/adafruit_metro_esp32s2/bootloader-tinyuf2.bin differ
diff --git a/variants/adafruit_metro_esp32s2/tinyuf2.bin b/variants/adafruit_metro_esp32s2/tinyuf2.bin
index 5549fc90501..2ada2351cd3 100644
Binary files a/variants/adafruit_metro_esp32s2/tinyuf2.bin and b/variants/adafruit_metro_esp32s2/tinyuf2.bin differ
diff --git a/variants/adafruit_qtpy_esp32s2/bootloader-tinyuf2.bin b/variants/adafruit_qtpy_esp32s2/bootloader-tinyuf2.bin
index de6b3243ce7..2c985689ec5 100644
Binary files a/variants/adafruit_qtpy_esp32s2/bootloader-tinyuf2.bin and b/variants/adafruit_qtpy_esp32s2/bootloader-tinyuf2.bin differ
diff --git a/variants/adafruit_qtpy_esp32s2/tinyuf2.bin b/variants/adafruit_qtpy_esp32s2/tinyuf2.bin
index 46a115561fc..c4980536d35 100644
Binary files a/variants/adafruit_qtpy_esp32s2/tinyuf2.bin and b/variants/adafruit_qtpy_esp32s2/tinyuf2.bin differ
diff --git a/variants/adafruit_qtpy_esp32s3_nopsram/bootloader-tinyuf2.bin b/variants/adafruit_qtpy_esp32s3_nopsram/bootloader-tinyuf2.bin
index ded6ffe4978..70be41209c0 100644
Binary files a/variants/adafruit_qtpy_esp32s3_nopsram/bootloader-tinyuf2.bin and b/variants/adafruit_qtpy_esp32s3_nopsram/bootloader-tinyuf2.bin differ
diff --git a/variants/adafruit_qtpy_esp32s3_nopsram/tinyuf2.bin b/variants/adafruit_qtpy_esp32s3_nopsram/tinyuf2.bin
index 3e6821e2370..983de1f1f0d 100644
Binary files a/variants/adafruit_qtpy_esp32s3_nopsram/tinyuf2.bin and b/variants/adafruit_qtpy_esp32s3_nopsram/tinyuf2.bin differ