From edb42aaf8aca4e3997b6c8ff1c6ec964a88a3ded Mon Sep 17 00:00:00 2001 From: hathach Date: Wed, 26 Jul 2023 12:31:45 +0700 Subject: [PATCH 1/4] add Adafruit metro S3 16MB Flash, 8MB PSRam also reorder to have feather boards next to each others --- boards.txt | 664 +++++++++++------- .../bootloader-tinyuf2.bin | Bin 0 -> 22256 bytes .../partitions-16MB-tinyuf2.csv | 10 + .../adafruit_metro_esp32s3/pins_arduino.h | 77 ++ variants/adafruit_metro_esp32s3/tinyuf2.bin | Bin 0 -> 174736 bytes 5 files changed, 513 insertions(+), 238 deletions(-) create mode 100644 variants/adafruit_metro_esp32s3/bootloader-tinyuf2.bin create mode 100644 variants/adafruit_metro_esp32s3/partitions-16MB-tinyuf2.csv create mode 100644 variants/adafruit_metro_esp32s3/pins_arduino.h create mode 100644 variants/adafruit_metro_esp32s3/tinyuf2.bin diff --git a/boards.txt b/boards.txt index c2415668a52..eaa43ce2f43 100644 --- a/boards.txt +++ b/boards.txt @@ -8099,133 +8099,6 @@ onehorse32dev.menu.EraseFlash.none.upload.erase_cmd= onehorse32dev.menu.EraseFlash.all=Enabled onehorse32dev.menu.EraseFlash.all.upload.erase_cmd=-e -############################################################## -# Adafruit ESP32 Feather - -featheresp32.name=Adafruit ESP32 Feather - -featheresp32.bootloader.tool=esptool_py -featheresp32.bootloader.tool.default=esptool_py - -featheresp32.upload.tool=esptool_py -featheresp32.upload.tool.default=esptool_py -featheresp32.upload.tool.network=esp_ota - -featheresp32.upload.maximum_size=1310720 -featheresp32.upload.maximum_data_size=327680 -featheresp32.upload.flags= -featheresp32.upload.extra_flags= - -featheresp32.serial.disableDTR=true -featheresp32.serial.disableRTS=true - -featheresp32.build.tarch=xtensa -featheresp32.build.bootloader_addr=0x1000 -featheresp32.build.target=esp32 -featheresp32.build.mcu=esp32 -featheresp32.build.core=esp32 -featheresp32.build.variant=feather_esp32 -featheresp32.build.board=FEATHER_ESP32 - -featheresp32.build.f_cpu=240000000L -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 -featheresp32.menu.UploadSpeed.115200.upload.speed=115200 -featheresp32.menu.UploadSpeed.256000.windows=256000 -featheresp32.menu.UploadSpeed.256000.upload.speed=256000 -featheresp32.menu.UploadSpeed.230400.windows.upload.speed=256000 -featheresp32.menu.UploadSpeed.230400=230400 -featheresp32.menu.UploadSpeed.230400.upload.speed=230400 -featheresp32.menu.UploadSpeed.460800.linux=460800 -featheresp32.menu.UploadSpeed.460800.macosx=460800 -featheresp32.menu.UploadSpeed.460800.upload.speed=460800 -featheresp32.menu.UploadSpeed.512000.windows=512000 -featheresp32.menu.UploadSpeed.512000.upload.speed=512000 - -featheresp32.menu.DebugLevel.none=None -featheresp32.menu.DebugLevel.none.build.code_debug=0 -featheresp32.menu.DebugLevel.error=Error -featheresp32.menu.DebugLevel.error.build.code_debug=1 -featheresp32.menu.DebugLevel.warn=Warn -featheresp32.menu.DebugLevel.warn.build.code_debug=2 -featheresp32.menu.DebugLevel.info=Info -featheresp32.menu.DebugLevel.info.build.code_debug=3 -featheresp32.menu.DebugLevel.debug=Debug -featheresp32.menu.DebugLevel.debug.build.code_debug=4 -featheresp32.menu.DebugLevel.verbose=Verbose -featheresp32.menu.DebugLevel.verbose.build.code_debug=5 - -featheresp32.menu.EraseFlash.none=Disabled -featheresp32.menu.EraseFlash.none.upload.erase_cmd= -featheresp32.menu.EraseFlash.all=Enabled -featheresp32.menu.EraseFlash.all.upload.erase_cmd=-e - ############################################################## # Adafruit Metro ESP32-S2 @@ -8397,6 +8270,194 @@ adafruit_metro_esp32s2.menu.EraseFlash.none.upload.erase_cmd= adafruit_metro_esp32s2.menu.EraseFlash.all=Enabled adafruit_metro_esp32s2.menu.EraseFlash.all.upload.erase_cmd=-e +############################################################## +# Adafruit Metro ESP32-S3 + +adafruit_metro_esp32s3.name=Adafruit Metro ESP32-S3 +adafruit_metro_esp32s3.vid.0=0x239A +adafruit_metro_esp32s3.pid.0=0x8145 +adafruit_metro_esp32s3.vid.1=0x239A +adafruit_metro_esp32s3.pid.1=0x0145 +adafruit_metro_esp32s3.vid.2=0x239A +adafruit_metro_esp32s3.pid.2=0x8146 + +adafruit_metro_esp32s3.bootloader.tool=esptool_py +adafruit_metro_esp32s3.bootloader.tool.default=esptool_py + +adafruit_metro_esp32s3.upload.tool=esptool_py +adafruit_metro_esp32s3.upload.tool.default=esptool_py +adafruit_metro_esp32s3.upload.tool.network=esp_ota + +adafruit_metro_esp32s3.upload.maximum_size=1310720 +adafruit_metro_esp32s3.upload.maximum_data_size=327680 +adafruit_metro_esp32s3.upload.flags= +adafruit_metro_esp32s3.upload.extra_flags= +adafruit_metro_esp32s3.upload.use_1200bps_touch=true +adafruit_metro_esp32s3.upload.wait_for_upload_port=true + +adafruit_metro_esp32s3.serial.disableDTR=false +adafruit_metro_esp32s3.serial.disableRTS=false + +adafruit_metro_esp32s3.build.tarch=xtensa +adafruit_metro_esp32s3.build.bootloader_addr=0x0 +adafruit_metro_esp32s3.build.target=esp32s3 +adafruit_metro_esp32s3.build.mcu=esp32s3 +adafruit_metro_esp32s3.build.core=esp32 +adafruit_metro_esp32s3.build.variant=adafruit_metro_esp32s3 +adafruit_metro_esp32s3.build.board=METRO_ESP32S3 + +adafruit_metro_esp32s3.build.usb_mode=0 +adafruit_metro_esp32s3.build.cdc_on_boot=1 +adafruit_metro_esp32s3.build.msc_on_boot=0 +adafruit_metro_esp32s3.build.dfu_on_boot=0 +adafruit_metro_esp32s3.build.f_cpu=240000000L +adafruit_metro_esp32s3.build.flash_size=16MB +adafruit_metro_esp32s3.build.flash_freq=80m +adafruit_metro_esp32s3.build.flash_mode=dio +adafruit_metro_esp32s3.build.boot=qio +adafruit_metro_esp32s3.build.partitions=default +adafruit_metro_esp32s3.build.defines= +adafruit_metro_esp32s3.build.loop_core= +adafruit_metro_esp32s3.build.event_core= +adafruit_metro_esp32s3.build.flash_type=qio +adafruit_metro_esp32s3.build.psram_type=qspi +adafruit_metro_esp32s3.build.memory_type={build.flash_type}_{build.psram_type} + +adafruit_metro_esp32s3.menu.LoopCore.1=Core 1 +adafruit_metro_esp32s3.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1 +adafruit_metro_esp32s3.menu.LoopCore.0=Core 0 +adafruit_metro_esp32s3.menu.LoopCore.0.build.loop_core=-DARDUINO_RUNNING_CORE=0 + +adafruit_metro_esp32s3.menu.EventsCore.1=Core 1 +adafruit_metro_esp32s3.menu.EventsCore.1.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1 +adafruit_metro_esp32s3.menu.EventsCore.0=Core 0 +adafruit_metro_esp32s3.menu.EventsCore.0.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=0 + +adafruit_metro_esp32s3.menu.USBMode.default=USB-OTG (TinyUSB) +adafruit_metro_esp32s3.menu.USBMode.default.build.usb_mode=0 +adafruit_metro_esp32s3.menu.USBMode.hwcdc=Hardware CDC and JTAG +adafruit_metro_esp32s3.menu.USBMode.hwcdc.build.usb_mode=1 + +adafruit_metro_esp32s3.menu.CDCOnBoot.cdc=Enabled +adafruit_metro_esp32s3.menu.CDCOnBoot.cdc.build.cdc_on_boot=1 +adafruit_metro_esp32s3.menu.CDCOnBoot.default=Disabled +adafruit_metro_esp32s3.menu.CDCOnBoot.default.build.cdc_on_boot=0 + +adafruit_metro_esp32s3.menu.MSCOnBoot.default=Disabled +adafruit_metro_esp32s3.menu.MSCOnBoot.default.build.msc_on_boot=0 +adafruit_metro_esp32s3.menu.MSCOnBoot.msc=Enabled (Requires USB-OTG Mode) +adafruit_metro_esp32s3.menu.MSCOnBoot.msc.build.msc_on_boot=1 + +adafruit_metro_esp32s3.menu.DFUOnBoot.default=Disabled +adafruit_metro_esp32s3.menu.DFUOnBoot.default.build.dfu_on_boot=0 +adafruit_metro_esp32s3.menu.DFUOnBoot.dfu=Enabled (Requires USB-OTG Mode) +adafruit_metro_esp32s3.menu.DFUOnBoot.dfu.build.dfu_on_boot=1 + +adafruit_metro_esp32s3.menu.UploadMode.cdc=USB-OTG CDC (TinyUSB) +adafruit_metro_esp32s3.menu.UploadMode.cdc.upload.use_1200bps_touch=true +adafruit_metro_esp32s3.menu.UploadMode.cdc.upload.wait_for_upload_port=true +adafruit_metro_esp32s3.menu.UploadMode.default=UART0 / Hardware CDC +adafruit_metro_esp32s3.menu.UploadMode.default.upload.use_1200bps_touch=false +adafruit_metro_esp32s3.menu.UploadMode.default.upload.wait_for_upload_port=false + +adafruit_metro_esp32s3.menu.PSRAM.enabled=QSPI PSRAM +adafruit_metro_esp32s3.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM +adafruit_metro_esp32s3.menu.PSRAM.enabled.build.psram_type=qspi +adafruit_metro_esp32s3.menu.PSRAM.disabled=Disabled +adafruit_metro_esp32s3.menu.PSRAM.disabled.build.defines= +adafruit_metro_esp32s3.menu.PSRAM.disabled.build.psram_type=qspi +adafruit_metro_esp32s3.menu.PSRAM.opi=OPI PSRAM +adafruit_metro_esp32s3.menu.PSRAM.opi.build.defines=-DBOARD_HAS_PSRAM +adafruit_metro_esp32s3.menu.PSRAM.opi.build.psram_type=opi + +adafruit_metro_esp32s3.menu.PartitionScheme.tinyuf2=TinyUF2 16MB (2MB APP/11.6MB FATFS) +adafruit_metro_esp32s3.menu.PartitionScheme.tinyuf2.build.custom_bootloader=bootloader-tinyuf2 +adafruit_metro_esp32s3.menu.PartitionScheme.tinyuf2.build.custom_partitions=partitions-16MB-tinyuf2 +adafruit_metro_esp32s3.menu.PartitionScheme.tinyuf2.upload.maximum_size=2097152 +adafruit_metro_esp32s3.menu.PartitionScheme.tinyuf2.upload.extra_flags=0x410000 "{runtime.platform.path}/variants/{build.variant}/tinyuf2.bin" +adafruit_metro_esp32s3.menu.PartitionScheme.default_16MB=Default (6.25MB APP/3.43MB SPIFFS) +adafruit_metro_esp32s3.menu.PartitionScheme.default_16MB.build.partitions=default_16MB +adafruit_metro_esp32s3.menu.PartitionScheme.default_16MB.upload.maximum_size=6553600 +adafruit_metro_esp32s3.menu.PartitionScheme.large_spiffs=Large SPIFFS (4.5MB APP/6.93MB SPIFFS) +adafruit_metro_esp32s3.menu.PartitionScheme.large_spiffs.build.partitions=large_spiffs_16MB +adafruit_metro_esp32s3.menu.PartitionScheme.large_spiffs.upload.maximum_size=4718592 +adafruit_metro_esp32s3.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9MB FATFS) +adafruit_metro_esp32s3.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB +adafruit_metro_esp32s3.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 +adafruit_metro_esp32s3.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FAT) +adafruit_metro_esp32s3.menu.PartitionScheme.fatflash.build.partitions=ffat +adafruit_metro_esp32s3.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 + +adafruit_metro_esp32s3.menu.CPUFreq.240=240MHz (WiFi) +adafruit_metro_esp32s3.menu.CPUFreq.240.build.f_cpu=240000000L +adafruit_metro_esp32s3.menu.CPUFreq.160=160MHz (WiFi) +adafruit_metro_esp32s3.menu.CPUFreq.160.build.f_cpu=160000000L +adafruit_metro_esp32s3.menu.CPUFreq.80=80MHz (WiFi) +adafruit_metro_esp32s3.menu.CPUFreq.80.build.f_cpu=80000000L +adafruit_metro_esp32s3.menu.CPUFreq.40=40MHz +adafruit_metro_esp32s3.menu.CPUFreq.40.build.f_cpu=40000000L +adafruit_metro_esp32s3.menu.CPUFreq.20=20MHz +adafruit_metro_esp32s3.menu.CPUFreq.20.build.f_cpu=20000000L +adafruit_metro_esp32s3.menu.CPUFreq.10=10MHz +adafruit_metro_esp32s3.menu.CPUFreq.10.build.f_cpu=10000000L + +adafruit_metro_esp32s3.menu.FlashMode.qio=QIO 80MHz +adafruit_metro_esp32s3.menu.FlashMode.qio.build.flash_mode=dio +adafruit_metro_esp32s3.menu.FlashMode.qio.build.boot=qio +adafruit_metro_esp32s3.menu.FlashMode.qio.build.boot_freq=80m +adafruit_metro_esp32s3.menu.FlashMode.qio.build.flash_freq=80m +adafruit_metro_esp32s3.menu.FlashMode.qio120=QIO 120MHz +adafruit_metro_esp32s3.menu.FlashMode.qio120.build.flash_mode=dio +adafruit_metro_esp32s3.menu.FlashMode.qio120.build.boot=qio +adafruit_metro_esp32s3.menu.FlashMode.qio120.build.boot_freq=120m +adafruit_metro_esp32s3.menu.FlashMode.qio120.build.flash_freq=80m +adafruit_metro_esp32s3.menu.FlashMode.dio=DIO 80MHz +adafruit_metro_esp32s3.menu.FlashMode.dio.build.flash_mode=dio +adafruit_metro_esp32s3.menu.FlashMode.dio.build.boot=dio +adafruit_metro_esp32s3.menu.FlashMode.dio.build.boot_freq=80m +adafruit_metro_esp32s3.menu.FlashMode.dio.build.flash_freq=80m +adafruit_metro_esp32s3.menu.FlashMode.opi=OPI 80MHz +adafruit_metro_esp32s3.menu.FlashMode.opi.build.flash_mode=dout +adafruit_metro_esp32s3.menu.FlashMode.opi.build.boot=opi +adafruit_metro_esp32s3.menu.FlashMode.opi.build.boot_freq=80m +adafruit_metro_esp32s3.menu.FlashMode.opi.build.flash_freq=80m + +adafruit_metro_esp32s3.menu.FlashSize.16M=16MB (128Mb) +adafruit_metro_esp32s3.menu.FlashSize.16M.build.flash_size=16MB + +adafruit_metro_esp32s3.menu.UploadSpeed.921600=921600 +adafruit_metro_esp32s3.menu.UploadSpeed.921600.upload.speed=921600 +adafruit_metro_esp32s3.menu.UploadSpeed.115200=115200 +adafruit_metro_esp32s3.menu.UploadSpeed.115200.upload.speed=115200 +adafruit_metro_esp32s3.menu.UploadSpeed.256000.windows=256000 +adafruit_metro_esp32s3.menu.UploadSpeed.256000.upload.speed=256000 +adafruit_metro_esp32s3.menu.UploadSpeed.230400.windows.upload.speed=256000 +adafruit_metro_esp32s3.menu.UploadSpeed.230400=230400 +adafruit_metro_esp32s3.menu.UploadSpeed.230400.upload.speed=230400 +adafruit_metro_esp32s3.menu.UploadSpeed.460800.linux=460800 +adafruit_metro_esp32s3.menu.UploadSpeed.460800.macosx=460800 +adafruit_metro_esp32s3.menu.UploadSpeed.460800.upload.speed=460800 +adafruit_metro_esp32s3.menu.UploadSpeed.512000.windows=512000 +adafruit_metro_esp32s3.menu.UploadSpeed.512000.upload.speed=512000 + +adafruit_metro_esp32s3.menu.DebugLevel.none=None +adafruit_metro_esp32s3.menu.DebugLevel.none.build.code_debug=0 +adafruit_metro_esp32s3.menu.DebugLevel.error=Error +adafruit_metro_esp32s3.menu.DebugLevel.error.build.code_debug=1 +adafruit_metro_esp32s3.menu.DebugLevel.warn=Warn +adafruit_metro_esp32s3.menu.DebugLevel.warn.build.code_debug=2 +adafruit_metro_esp32s3.menu.DebugLevel.info=Info +adafruit_metro_esp32s3.menu.DebugLevel.info.build.code_debug=3 +adafruit_metro_esp32s3.menu.DebugLevel.debug=Debug +adafruit_metro_esp32s3.menu.DebugLevel.debug.build.code_debug=4 +adafruit_metro_esp32s3.menu.DebugLevel.verbose=Verbose +adafruit_metro_esp32s3.menu.DebugLevel.verbose.build.code_debug=5 + +adafruit_metro_esp32s3.menu.EraseFlash.none=Disabled +adafruit_metro_esp32s3.menu.EraseFlash.none.upload.erase_cmd= +adafruit_metro_esp32s3.menu.EraseFlash.all=Enabled +adafruit_metro_esp32s3.menu.EraseFlash.all.upload.erase_cmd=-e + ############################################################## # Adafruit MagTag 2.9" @@ -8739,6 +8800,244 @@ adafruit_funhouse_esp32s2.menu.EraseFlash.none.upload.erase_cmd= adafruit_funhouse_esp32s2.menu.EraseFlash.all=Enabled adafruit_funhouse_esp32s2.menu.EraseFlash.all.upload.erase_cmd=-e +############################################################## +# Adafruit ESP32 Feather + +featheresp32.name=Adafruit ESP32 Feather + +featheresp32.bootloader.tool=esptool_py +featheresp32.bootloader.tool.default=esptool_py + +featheresp32.upload.tool=esptool_py +featheresp32.upload.tool.default=esptool_py +featheresp32.upload.tool.network=esp_ota + +featheresp32.upload.maximum_size=1310720 +featheresp32.upload.maximum_data_size=327680 +featheresp32.upload.flags= +featheresp32.upload.extra_flags= + +featheresp32.serial.disableDTR=true +featheresp32.serial.disableRTS=true + +featheresp32.build.tarch=xtensa +featheresp32.build.bootloader_addr=0x1000 +featheresp32.build.target=esp32 +featheresp32.build.mcu=esp32 +featheresp32.build.core=esp32 +featheresp32.build.variant=feather_esp32 +featheresp32.build.board=FEATHER_ESP32 + +featheresp32.build.f_cpu=240000000L +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 +featheresp32.menu.UploadSpeed.115200.upload.speed=115200 +featheresp32.menu.UploadSpeed.256000.windows=256000 +featheresp32.menu.UploadSpeed.256000.upload.speed=256000 +featheresp32.menu.UploadSpeed.230400.windows.upload.speed=256000 +featheresp32.menu.UploadSpeed.230400=230400 +featheresp32.menu.UploadSpeed.230400.upload.speed=230400 +featheresp32.menu.UploadSpeed.460800.linux=460800 +featheresp32.menu.UploadSpeed.460800.macosx=460800 +featheresp32.menu.UploadSpeed.460800.upload.speed=460800 +featheresp32.menu.UploadSpeed.512000.windows=512000 +featheresp32.menu.UploadSpeed.512000.upload.speed=512000 + +featheresp32.menu.DebugLevel.none=None +featheresp32.menu.DebugLevel.none.build.code_debug=0 +featheresp32.menu.DebugLevel.error=Error +featheresp32.menu.DebugLevel.error.build.code_debug=1 +featheresp32.menu.DebugLevel.warn=Warn +featheresp32.menu.DebugLevel.warn.build.code_debug=2 +featheresp32.menu.DebugLevel.info=Info +featheresp32.menu.DebugLevel.info.build.code_debug=3 +featheresp32.menu.DebugLevel.debug=Debug +featheresp32.menu.DebugLevel.debug.build.code_debug=4 +featheresp32.menu.DebugLevel.verbose=Verbose +featheresp32.menu.DebugLevel.verbose.build.code_debug=5 + +featheresp32.menu.EraseFlash.none=Disabled +featheresp32.menu.EraseFlash.none.upload.erase_cmd= +featheresp32.menu.EraseFlash.all=Enabled +featheresp32.menu.EraseFlash.all.upload.erase_cmd=-e + +############################################################## +# Adafruit Feather ESP32 V2 + +adafruit_feather_esp32_v2.name=Adafruit Feather ESP32 V2 + +adafruit_feather_esp32_v2.bootloader.tool=esptool_py +adafruit_feather_esp32_v2.bootloader.tool.default=esptool_py + +adafruit_feather_esp32_v2.upload.tool=esptool_py +adafruit_feather_esp32_v2.upload.tool.default=esptool_py +adafruit_feather_esp32_v2.upload.tool.network=esp_ota + +adafruit_feather_esp32_v2.upload.maximum_size=1310720 +adafruit_feather_esp32_v2.upload.maximum_data_size=327680 +adafruit_feather_esp32_v2.upload.flags= +adafruit_feather_esp32_v2.upload.extra_flags= + +adafruit_feather_esp32_v2.serial.disableDTR=true +adafruit_feather_esp32_v2.serial.disableRTS=true + +adafruit_feather_esp32_v2.build.tarch=xtensa +adafruit_feather_esp32_v2.build.bootloader_addr=0x1000 +adafruit_feather_esp32_v2.build.target=esp32 +adafruit_feather_esp32_v2.build.mcu=esp32 +adafruit_feather_esp32_v2.build.core=esp32 +adafruit_feather_esp32_v2.build.variant=adafruit_feather_esp32_v2 +adafruit_feather_esp32_v2.build.board=ADAFRUIT_FEATHER_ESP32_V2 + +adafruit_feather_esp32_v2.build.f_cpu=240000000L +adafruit_feather_esp32_v2.build.flash_size=8MB +adafruit_feather_esp32_v2.build.flash_freq=80m +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.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 +adafruit_feather_esp32_v2.menu.UploadSpeed.115200=115200 +adafruit_feather_esp32_v2.menu.UploadSpeed.115200.upload.speed=115200 +adafruit_feather_esp32_v2.menu.UploadSpeed.256000.windows=256000 +adafruit_feather_esp32_v2.menu.UploadSpeed.256000.upload.speed=256000 +adafruit_feather_esp32_v2.menu.UploadSpeed.230400.windows.upload.speed=256000 +adafruit_feather_esp32_v2.menu.UploadSpeed.230400=230400 +adafruit_feather_esp32_v2.menu.UploadSpeed.230400.upload.speed=230400 +adafruit_feather_esp32_v2.menu.UploadSpeed.460800.linux=460800 +adafruit_feather_esp32_v2.menu.UploadSpeed.460800.macosx=460800 +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.DebugLevel.none=None +adafruit_feather_esp32_v2.menu.DebugLevel.none.build.code_debug=0 +adafruit_feather_esp32_v2.menu.DebugLevel.error=Error +adafruit_feather_esp32_v2.menu.DebugLevel.error.build.code_debug=1 +adafruit_feather_esp32_v2.menu.DebugLevel.warn=Warn +adafruit_feather_esp32_v2.menu.DebugLevel.warn.build.code_debug=2 +adafruit_feather_esp32_v2.menu.DebugLevel.info=Info +adafruit_feather_esp32_v2.menu.DebugLevel.info.build.code_debug=3 +adafruit_feather_esp32_v2.menu.DebugLevel.debug=Debug +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_v2.menu.EraseFlash.none=Disabled +adafruit_feather_esp32_v2.menu.EraseFlash.none.upload.erase_cmd= +adafruit_feather_esp32_v2.menu.EraseFlash.all=Enabled +adafruit_feather_esp32_v2.menu.EraseFlash.all.upload.erase_cmd=-e + ############################################################## # Adafruit Feather ESP32-S2 @@ -9252,117 +9551,6 @@ adafruit_feather_esp32s2_reversetft.menu.EraseFlash.none.upload.erase_cmd= adafruit_feather_esp32s2_reversetft.menu.EraseFlash.all=Enabled adafruit_feather_esp32s2_reversetft.menu.EraseFlash.all.upload.erase_cmd=-e -############################################################## -# Adafruit Feather ESP32 V2 - -adafruit_feather_esp32_v2.name=Adafruit Feather ESP32 V2 - -adafruit_feather_esp32_v2.bootloader.tool=esptool_py -adafruit_feather_esp32_v2.bootloader.tool.default=esptool_py - -adafruit_feather_esp32_v2.upload.tool=esptool_py -adafruit_feather_esp32_v2.upload.tool.default=esptool_py -adafruit_feather_esp32_v2.upload.tool.network=esp_ota - -adafruit_feather_esp32_v2.upload.maximum_size=1310720 -adafruit_feather_esp32_v2.upload.maximum_data_size=327680 -adafruit_feather_esp32_v2.upload.flags= -adafruit_feather_esp32_v2.upload.extra_flags= - -adafruit_feather_esp32_v2.serial.disableDTR=true -adafruit_feather_esp32_v2.serial.disableRTS=true - -adafruit_feather_esp32_v2.build.tarch=xtensa -adafruit_feather_esp32_v2.build.bootloader_addr=0x1000 -adafruit_feather_esp32_v2.build.target=esp32 -adafruit_feather_esp32_v2.build.mcu=esp32 -adafruit_feather_esp32_v2.build.core=esp32 -adafruit_feather_esp32_v2.build.variant=adafruit_feather_esp32_v2 -adafruit_feather_esp32_v2.build.board=ADAFRUIT_FEATHER_ESP32_V2 - -adafruit_feather_esp32_v2.build.f_cpu=240000000L -adafruit_feather_esp32_v2.build.flash_size=8MB -adafruit_feather_esp32_v2.build.flash_freq=80m -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.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 -adafruit_feather_esp32_v2.menu.UploadSpeed.115200=115200 -adafruit_feather_esp32_v2.menu.UploadSpeed.115200.upload.speed=115200 -adafruit_feather_esp32_v2.menu.UploadSpeed.256000.windows=256000 -adafruit_feather_esp32_v2.menu.UploadSpeed.256000.upload.speed=256000 -adafruit_feather_esp32_v2.menu.UploadSpeed.230400.windows.upload.speed=256000 -adafruit_feather_esp32_v2.menu.UploadSpeed.230400=230400 -adafruit_feather_esp32_v2.menu.UploadSpeed.230400.upload.speed=230400 -adafruit_feather_esp32_v2.menu.UploadSpeed.460800.linux=460800 -adafruit_feather_esp32_v2.menu.UploadSpeed.460800.macosx=460800 -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.DebugLevel.none=None -adafruit_feather_esp32_v2.menu.DebugLevel.none.build.code_debug=0 -adafruit_feather_esp32_v2.menu.DebugLevel.error=Error -adafruit_feather_esp32_v2.menu.DebugLevel.error.build.code_debug=1 -adafruit_feather_esp32_v2.menu.DebugLevel.warn=Warn -adafruit_feather_esp32_v2.menu.DebugLevel.warn.build.code_debug=2 -adafruit_feather_esp32_v2.menu.DebugLevel.info=Info -adafruit_feather_esp32_v2.menu.DebugLevel.info.build.code_debug=3 -adafruit_feather_esp32_v2.menu.DebugLevel.debug=Debug -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_v2.menu.EraseFlash.none=Disabled -adafruit_feather_esp32_v2.menu.EraseFlash.none.upload.erase_cmd= -adafruit_feather_esp32_v2.menu.EraseFlash.all=Enabled -adafruit_feather_esp32_v2.menu.EraseFlash.all.upload.erase_cmd=-e - ############################################################## # Adafruit Feather ESP32-S3 2MB PSRAM diff --git a/variants/adafruit_metro_esp32s3/bootloader-tinyuf2.bin b/variants/adafruit_metro_esp32s3/bootloader-tinyuf2.bin new file mode 100644 index 0000000000000000000000000000000000000000..73e8c06b33bd5ce0ffccfb8ffe6ba67e8171c717 GIT binary patch literal 22256 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 literal 0 HcmV?d00001 diff --git a/variants/adafruit_metro_esp32s3/partitions-16MB-tinyuf2.csv b/variants/adafruit_metro_esp32s3/partitions-16MB-tinyuf2.csv new file mode 100644 index 00000000000..55f6c2b8d76 --- /dev/null +++ b/variants/adafruit_metro_esp32s3/partitions-16MB-tinyuf2.csv @@ -0,0 +1,10 @@ +# 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, app, ota_0, 0x10000, 2048K, +ota_1, app, ota_1, 0x210000, 2048K, +uf2, app, factory,0x410000, 256K, +ffat, data, fat, 0x450000, 11968K, diff --git a/variants/adafruit_metro_esp32s3/pins_arduino.h b/variants/adafruit_metro_esp32s3/pins_arduino.h new file mode 100644 index 00000000000..2a2fe8face0 --- /dev/null +++ b/variants/adafruit_metro_esp32s3/pins_arduino.h @@ -0,0 +1,77 @@ +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#include + +#define USB_VID 0x239A +#define USB_PID 0x8145 +#define USB_MANUFACTURER "Adafruit" +#define USB_PRODUCT "Metro ESP32-S3" +#define USB_SERIAL "" // Empty string for MAC adddress + +#define EXTERNAL_NUM_INTERRUPTS 46 +#define NUM_DIGITAL_PINS 48 +#define NUM_ANALOG_INPUTS 20 + +#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) +#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) +#define digitalPinHasPWM(p) (p < 46) + +#define LED_BUILTIN 13 + +#define PIN_NEOPIXEL 45 +#define NEOPIXEL_NUM 1 + +#define PIN_BUTTON1 0 // BOOT0 switch + +static const uint8_t TX = 40; +static const uint8_t RX = 41; +#define TX1 TX +#define RX1 RX + +static const uint8_t SDA = 47; +static const uint8_t SCL = 48; + +static const uint8_t SS = 42; +static const uint8_t MOSI = 35; +static const uint8_t SCK = 36; +static const uint8_t MISO = 37; + +static const uint8_t A0 = 14; +static const uint8_t A1 = 15; +static const uint8_t A2 = 16; +static const uint8_t A3 = 17; +static const uint8_t A4 = 18; +static const uint8_t A5 = 1; + +static const uint8_t A6 = 40; +static const uint8_t A7 = 41; +static const uint8_t A8 = 2; +static const uint8_t A9 = 3; +static const uint8_t A10 = 4; +static const uint8_t A11 = 5; +static const uint8_t A12 = 6; +static const uint8_t A13 = 7; +static const uint8_t A14 = 8; +static const uint8_t A15 = 9; +static const uint8_t A16 = 10; +static const uint8_t A17 = 11; +static const uint8_t A18 = 12; +static const uint8_t A19 = 13; + +static const uint8_t T1 = 1; +static const uint8_t T2 = 2; +static const uint8_t T3 = 3; +static const uint8_t T4 = 4; +static const uint8_t T5 = 5; +static const uint8_t T6 = 6; +static const uint8_t T7 = 7; +static const uint8_t T8 = 8; +static const uint8_t T9 = 9; +static const uint8_t T10 = 10; +static const uint8_t T11 = 11; +static const uint8_t T12 = 12; +static const uint8_t T13 = 13; +static const uint8_t T14 = 14; + +#endif /* Pins_Arduino_h */ diff --git a/variants/adafruit_metro_esp32s3/tinyuf2.bin b/variants/adafruit_metro_esp32s3/tinyuf2.bin new file mode 100644 index 0000000000000000000000000000000000000000..d57e5b75b55353e5d6f200e26ed04c88b8b5d881 GIT binary patch literal 174736 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�#x8(C(~EqI<}=X%d|gT$D6@Fq~z|JTp8POLbR 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 G*Zf~Sbp8nd literal 0 HcmV?d00001 From e8de3566bf2727693d31c65dc6a738d2352850aa Mon Sep 17 00:00:00 2001 From: hathach Date: Wed, 2 Aug 2023 12:50:53 +0700 Subject: [PATCH 2/4] correct SS pin to 21, also add NEOPIXEL_PIN --- variants/adafruit_metro_esp32s3/pins_arduino.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/variants/adafruit_metro_esp32s3/pins_arduino.h b/variants/adafruit_metro_esp32s3/pins_arduino.h index 2a2fe8face0..e4e69345cb7 100644 --- a/variants/adafruit_metro_esp32s3/pins_arduino.h +++ b/variants/adafruit_metro_esp32s3/pins_arduino.h @@ -20,6 +20,7 @@ #define LED_BUILTIN 13 #define PIN_NEOPIXEL 45 +#define NEOPIXEL_PIN 45 #define NEOPIXEL_NUM 1 #define PIN_BUTTON1 0 // BOOT0 switch @@ -32,7 +33,7 @@ static const uint8_t RX = 41; static const uint8_t SDA = 47; static const uint8_t SCL = 48; -static const uint8_t SS = 42; +static const uint8_t SS = 21; static const uint8_t MOSI = 35; static const uint8_t SCK = 36; static const uint8_t MISO = 37; From 67e461114cacec5366ae171975e0611a97e6788c Mon Sep 17 00:00:00 2001 From: hathach Date: Wed, 23 Aug 2023 18:16:16 +0700 Subject: [PATCH 3/4] change metro s3 psram type to opi, default SD_CS (SS) to input pull up --- boards.txt | 6 ++-- variants/adafruit_metro_esp32s3/variant.cpp | 37 +++++++++++++++++++++ 2 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 variants/adafruit_metro_esp32s3/variant.cpp diff --git a/boards.txt b/boards.txt index eaa43ce2f43..ccd551248c6 100644 --- a/boards.txt +++ b/boards.txt @@ -8360,15 +8360,15 @@ adafruit_metro_esp32s3.menu.UploadMode.default=UART0 / Hardware CDC adafruit_metro_esp32s3.menu.UploadMode.default.upload.use_1200bps_touch=false adafruit_metro_esp32s3.menu.UploadMode.default.upload.wait_for_upload_port=false +adafruit_metro_esp32s3.menu.PSRAM.opi=OPI PSRAM +adafruit_metro_esp32s3.menu.PSRAM.opi.build.defines=-DBOARD_HAS_PSRAM +adafruit_metro_esp32s3.menu.PSRAM.opi.build.psram_type=opi adafruit_metro_esp32s3.menu.PSRAM.enabled=QSPI PSRAM adafruit_metro_esp32s3.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM adafruit_metro_esp32s3.menu.PSRAM.enabled.build.psram_type=qspi adafruit_metro_esp32s3.menu.PSRAM.disabled=Disabled adafruit_metro_esp32s3.menu.PSRAM.disabled.build.defines= adafruit_metro_esp32s3.menu.PSRAM.disabled.build.psram_type=qspi -adafruit_metro_esp32s3.menu.PSRAM.opi=OPI PSRAM -adafruit_metro_esp32s3.menu.PSRAM.opi.build.defines=-DBOARD_HAS_PSRAM -adafruit_metro_esp32s3.menu.PSRAM.opi.build.psram_type=opi adafruit_metro_esp32s3.menu.PartitionScheme.tinyuf2=TinyUF2 16MB (2MB APP/11.6MB FATFS) adafruit_metro_esp32s3.menu.PartitionScheme.tinyuf2.build.custom_bootloader=bootloader-tinyuf2 diff --git a/variants/adafruit_metro_esp32s3/variant.cpp b/variants/adafruit_metro_esp32s3/variant.cpp new file mode 100644 index 00000000000..811a6d508c9 --- /dev/null +++ b/variants/adafruit_metro_esp32s3/variant.cpp @@ -0,0 +1,37 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2021 Ha Thach (tinyusb.org) for Adafruit Industries + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + + +#include "esp32-hal-gpio.h" +#include "pins_arduino.h" + +extern "C" { + +// Initialize variant/board, called before setup() +void initVariant(void) { + // default SD_CS to input pullup + pinMode(SS, INPUT_PULLUP); +} + +} From 7288f6e01cab8b4991113b22c830158721fc58ee Mon Sep 17 00:00:00 2001 From: hathach Date: Wed, 23 Aug 2023 23:55:08 +0700 Subject: [PATCH 4/4] remove psram qspi option --- boards.txt | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/boards.txt b/boards.txt index ccd551248c6..d7463d14c2f 100644 --- a/boards.txt +++ b/boards.txt @@ -8320,7 +8320,7 @@ adafruit_metro_esp32s3.build.defines= adafruit_metro_esp32s3.build.loop_core= adafruit_metro_esp32s3.build.event_core= adafruit_metro_esp32s3.build.flash_type=qio -adafruit_metro_esp32s3.build.psram_type=qspi +adafruit_metro_esp32s3.build.psram_type=opi adafruit_metro_esp32s3.build.memory_type={build.flash_type}_{build.psram_type} adafruit_metro_esp32s3.menu.LoopCore.1=Core 1 @@ -8363,12 +8363,9 @@ adafruit_metro_esp32s3.menu.UploadMode.default.upload.wait_for_upload_port=false adafruit_metro_esp32s3.menu.PSRAM.opi=OPI PSRAM adafruit_metro_esp32s3.menu.PSRAM.opi.build.defines=-DBOARD_HAS_PSRAM adafruit_metro_esp32s3.menu.PSRAM.opi.build.psram_type=opi -adafruit_metro_esp32s3.menu.PSRAM.enabled=QSPI PSRAM -adafruit_metro_esp32s3.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM -adafruit_metro_esp32s3.menu.PSRAM.enabled.build.psram_type=qspi adafruit_metro_esp32s3.menu.PSRAM.disabled=Disabled adafruit_metro_esp32s3.menu.PSRAM.disabled.build.defines= -adafruit_metro_esp32s3.menu.PSRAM.disabled.build.psram_type=qspi +adafruit_metro_esp32s3.menu.PSRAM.disabled.build.psram_type=opi adafruit_metro_esp32s3.menu.PartitionScheme.tinyuf2=TinyUF2 16MB (2MB APP/11.6MB FATFS) adafruit_metro_esp32s3.menu.PartitionScheme.tinyuf2.build.custom_bootloader=bootloader-tinyuf2