From 38d1fa0d08d3f0bbe689c9f3b1b477914793178a Mon Sep 17 00:00:00 2001
From: mhpham23 <mhpham23@vt.edu>
Date: Thu, 6 Feb 2025 18:28:07 -0500
Subject: [PATCH 1/7] Adding CYObot board - 3rd party board

1. Adding Pin Header file for CYObot to variants folder
2. Add CYObot config to boards.txt
---
 boards.txt                                | 251 ++++++++++++++++++++++
 variants/cyobot_v2_esp32s3/pins_arduino.h |  66 ++++++
 2 files changed, 317 insertions(+)
 create mode 100644 variants/cyobot_v2_esp32s3/pins_arduino.h

diff --git a/boards.txt b/boards.txt
index 9ecd6359759..40453f17f77 100644
--- a/boards.txt
+++ b/boards.txt
@@ -45221,6 +45221,257 @@ cezerio_mini_dev_esp32c6.menu.ZigbeeMode.rcp=Zigbee RCP (radio co-processor)
 cezerio_mini_dev_esp32c6.menu.ZigbeeMode.rcp.build.zigbee_mode=-DZIGBEE_MODE_RCP
 cezerio_mini_dev_esp32c6.menu.ZigbeeMode.rcp.build.zigbee_libs=-lesp_zb_api_rcp -lesp_zb_cli_command -lzboss_stack.rcp -lzboss_port
 
+#############################################################
+# CYObot (CYObrain V2 ESP32S3) Board
+cyobot_esp32s3.name=CYObot V2 ESP32S3
+
+cyobot_esp32s3.bootloader.tool=esptool_py
+cyobot_esp32s3.bootloader.tool.default=esptool_py
+
+cyobot_esp32s3.upload.tool=esptool_py
+cyobot_esp32s3.upload.tool.default=esptool_py
+cyobot_esp32s3.upload.tool.network=esp_ota
+
+cyobot_esp32s3.upload.maximum_size=1310720
+cyobot_esp32s3.upload.maximum_data_size=327680
+cyobot_esp32s3.upload.flags=
+cyobot_esp32s3.upload.extra_flags=
+cyobot_esp32s3.upload.use_1200bps_touch=false
+cyobot_esp32s3.upload.wait_for_upload_port=false
+
+cyobot_esp32s3.serial.disableDTR=false
+cyobot_esp32s3.serial.disableRTS=false
+
+cyobot_esp32s3.build.tarch=xtensa
+cyobot_esp32s3.build.bootloader_addr=0x0
+cyobot_esp32s3.build.target=cyobot_esp32s3
+cyobot_esp32s3.build.mcu=cyobot_esp32s3
+cyobot_esp32s3.build.core=esp32
+cyobot_esp32s3.build.variant=cyobot_esp32s3
+cyobot_esp32s3.build.board=CYOBOT_ESP32S3_DEV
+
+cyobot_esp32s3.build.usb_mode=1
+cyobot_esp32s3.build.cdc_on_boot=0
+cyobot_esp32s3.build.msc_on_boot=0
+cyobot_esp32s3.build.dfu_on_boot=0
+cyobot_esp32s3.build.f_cpu=240000000L
+cyobot_esp32s3.build.flash_size=4MB
+cyobot_esp32s3.build.flash_freq=80m
+cyobot_esp32s3.build.flash_mode=dio
+cyobot_esp32s3.build.boot=qio
+cyobot_esp32s3.build.boot_freq=80m
+cyobot_esp32s3.build.partitions=default
+cyobot_esp32s3.build.defines=
+cyobot_esp32s3.build.loop_core=
+cyobot_esp32s3.build.event_core=
+cyobot_esp32s3.build.psram_type=qspi
+cyobot_esp32s3.build.memory_type={build.boot}_{build.psram_type}
+
+## IDE 2.0 Seems to not update the value
+cyobot_esp32s3.menu.JTAGAdapter.default=Disabled
+cyobot_esp32s3.menu.JTAGAdapter.default.build.copy_jtag_files=0
+cyobot_esp32s3.menu.JTAGAdapter.builtin=Integrated USB JTAG
+cyobot_esp32s3.menu.JTAGAdapter.builtin.build.openocdscript=cyobot_esp32s3-builtin.cfg
+cyobot_esp32s3.menu.JTAGAdapter.builtin.build.copy_jtag_files=1
+cyobot_esp32s3.menu.JTAGAdapter.external=FTDI Adapter
+cyobot_esp32s3.menu.JTAGAdapter.external.build.openocdscript=cyobot_esp32s3-ftdi.cfg
+cyobot_esp32s3.menu.JTAGAdapter.external.build.copy_jtag_files=1
+cyobot_esp32s3.menu.JTAGAdapter.bridge=ESP USB Bridge
+cyobot_esp32s3.menu.JTAGAdapter.bridge.build.openocdscript=cyobot_esp32s3-bridge.cfg
+cyobot_esp32s3.menu.JTAGAdapter.bridge.build.copy_jtag_files=1
+
+cyobot_esp32s3.menu.PSRAM.disabled=Disabled
+cyobot_esp32s3.menu.PSRAM.disabled.build.defines=
+cyobot_esp32s3.menu.PSRAM.disabled.build.psram_type=qspi
+cyobot_esp32s3.menu.PSRAM.enabled=QSPI PSRAM
+cyobot_esp32s3.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM
+cyobot_esp32s3.menu.PSRAM.enabled.build.psram_type=qspi
+cyobot_esp32s3.menu.PSRAM.opi=OPI PSRAM
+cyobot_esp32s3.menu.PSRAM.opi.build.defines=-DBOARD_HAS_PSRAM
+cyobot_esp32s3.menu.PSRAM.opi.build.psram_type=opi
+
+cyobot_esp32s3.menu.FlashMode.qio=QIO 80MHz
+cyobot_esp32s3.menu.FlashMode.qio.build.flash_mode=dio
+cyobot_esp32s3.menu.FlashMode.qio.build.boot=qio
+cyobot_esp32s3.menu.FlashMode.qio.build.boot_freq=80m
+cyobot_esp32s3.menu.FlashMode.qio.build.flash_freq=80m
+cyobot_esp32s3.menu.FlashMode.qio120=QIO 120MHz
+cyobot_esp32s3.menu.FlashMode.qio120.build.flash_mode=dio
+cyobot_esp32s3.menu.FlashMode.qio120.build.boot=qio
+cyobot_esp32s3.menu.FlashMode.qio120.build.boot_freq=120m
+cyobot_esp32s3.menu.FlashMode.qio120.build.flash_freq=80m
+cyobot_esp32s3.menu.FlashMode.dio=DIO 80MHz
+cyobot_esp32s3.menu.FlashMode.dio.build.flash_mode=dio
+cyobot_esp32s3.menu.FlashMode.dio.build.boot=dio
+cyobot_esp32s3.menu.FlashMode.dio.build.boot_freq=80m
+cyobot_esp32s3.menu.FlashMode.dio.build.flash_freq=80m
+cyobot_esp32s3.menu.FlashMode.opi=OPI 80MHz
+cyobot_esp32s3.menu.FlashMode.opi.build.flash_mode=dout
+cyobot_esp32s3.menu.FlashMode.opi.build.boot=opi
+cyobot_esp32s3.menu.FlashMode.opi.build.boot_freq=80m
+cyobot_esp32s3.menu.FlashMode.opi.build.flash_freq=80m
+
+cyobot_esp32s3.menu.FlashSize.4M=4MB (32Mb)
+cyobot_esp32s3.menu.FlashSize.4M.build.flash_size=4MB
+cyobot_esp32s3.menu.FlashSize.8M=8MB (64Mb)
+cyobot_esp32s3.menu.FlashSize.8M.build.flash_size=8MB
+cyobot_esp32s3.menu.FlashSize.16M=16MB (128Mb)
+cyobot_esp32s3.menu.FlashSize.16M.build.flash_size=16MB
+cyobot_esp32s3.menu.FlashSize.32M=32MB (256Mb)
+cyobot_esp32s3.menu.FlashSize.32M.build.flash_size=32MB
+
+cyobot_esp32s3.menu.LoopCore.1=Core 1
+cyobot_esp32s3.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1
+cyobot_esp32s3.menu.LoopCore.0=Core 0
+cyobot_esp32s3.menu.LoopCore.0.build.loop_core=-DARDUINO_RUNNING_CORE=0
+
+cyobot_esp32s3.menu.EventsCore.1=Core 1
+cyobot_esp32s3.menu.EventsCore.1.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
+cyobot_esp32s3.menu.EventsCore.0=Core 0
+cyobot_esp32s3.menu.EventsCore.0.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=0
+
+cyobot_esp32s3.menu.USBMode.hwcdc=Hardware CDC and JTAG
+cyobot_esp32s3.menu.USBMode.hwcdc.build.usb_mode=1
+cyobot_esp32s3.menu.USBMode.default=USB-OTG (TinyUSB)
+cyobot_esp32s3.menu.USBMode.default.build.usb_mode=0
+
+cyobot_esp32s3.menu.CDCOnBoot.default=Disabled
+cyobot_esp32s3.menu.CDCOnBoot.default.build.cdc_on_boot=0
+cyobot_esp32s3.menu.CDCOnBoot.cdc=Enabled
+cyobot_esp32s3.menu.CDCOnBoot.cdc.build.cdc_on_boot=1
+
+cyobot_esp32s3.menu.MSCOnBoot.default=Disabled
+cyobot_esp32s3.menu.MSCOnBoot.default.build.msc_on_boot=0
+cyobot_esp32s3.menu.MSCOnBoot.msc=Enabled (Requires USB-OTG Mode)
+cyobot_esp32s3.menu.MSCOnBoot.msc.build.msc_on_boot=1
+
+cyobot_esp32s3.menu.DFUOnBoot.default=Disabled
+cyobot_esp32s3.menu.DFUOnBoot.default.build.dfu_on_boot=0
+cyobot_esp32s3.menu.DFUOnBoot.dfu=Enabled (Requires USB-OTG Mode)
+cyobot_esp32s3.menu.DFUOnBoot.dfu.build.dfu_on_boot=1
+
+cyobot_esp32s3.menu.UploadMode.default=UART0 / Hardware CDC
+cyobot_esp32s3.menu.UploadMode.default.upload.use_1200bps_touch=false
+cyobot_esp32s3.menu.UploadMode.default.upload.wait_for_upload_port=false
+cyobot_esp32s3.menu.UploadMode.cdc=USB-OTG CDC (TinyUSB)
+cyobot_esp32s3.menu.UploadMode.cdc.upload.use_1200bps_touch=true
+cyobot_esp32s3.menu.UploadMode.cdc.upload.wait_for_upload_port=true
+
+cyobot_esp32s3.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
+cyobot_esp32s3.menu.PartitionScheme.default.build.partitions=default
+cyobot_esp32s3.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
+cyobot_esp32s3.menu.PartitionScheme.defaultffat.build.partitions=default_ffat
+cyobot_esp32s3.menu.PartitionScheme.default_8MB=8M with spiffs (3MB APP/1.5MB SPIFFS)
+cyobot_esp32s3.menu.PartitionScheme.default_8MB.build.partitions=default_8MB
+cyobot_esp32s3.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336
+cyobot_esp32s3.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS)
+cyobot_esp32s3.menu.PartitionScheme.minimal.build.partitions=minimal
+cyobot_esp32s3.menu.PartitionScheme.no_fs=No FS 4MB (2MB APP x2)
+cyobot_esp32s3.menu.PartitionScheme.no_fs.build.partitions=no_fs
+cyobot_esp32s3.menu.PartitionScheme.no_fs.upload.maximum_size=2031616
+cyobot_esp32s3.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS)
+cyobot_esp32s3.menu.PartitionScheme.no_ota.build.partitions=no_ota
+cyobot_esp32s3.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
+cyobot_esp32s3.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS)
+cyobot_esp32s3.menu.PartitionScheme.noota_3g.build.partitions=noota_3g
+cyobot_esp32s3.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576
+cyobot_esp32s3.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS)
+cyobot_esp32s3.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat
+cyobot_esp32s3.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152
+cyobot_esp32s3.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS)
+cyobot_esp32s3.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat
+cyobot_esp32s3.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576
+cyobot_esp32s3.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
+cyobot_esp32s3.menu.PartitionScheme.huge_app.build.partitions=huge_app
+cyobot_esp32s3.menu.PartitionScheme.huge_app.upload.maximum_size=3145728
+cyobot_esp32s3.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
+cyobot_esp32s3.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
+cyobot_esp32s3.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
+cyobot_esp32s3.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS)
+cyobot_esp32s3.menu.PartitionScheme.fatflash.build.partitions=ffat
+cyobot_esp32s3.menu.PartitionScheme.fatflash.upload.maximum_size=2097152
+cyobot_esp32s3.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS)
+cyobot_esp32s3.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB
+cyobot_esp32s3.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728
+cyobot_esp32s3.menu.PartitionScheme.rainmaker=RainMaker 4MB
+cyobot_esp32s3.menu.PartitionScheme.rainmaker.build.partitions=rainmaker
+cyobot_esp32s3.menu.PartitionScheme.rainmaker.upload.maximum_size=1966080
+cyobot_esp32s3.menu.PartitionScheme.rainmaker_4MB=RainMaker 4MB No OTA
+cyobot_esp32s3.menu.PartitionScheme.rainmaker_4MB.build.partitions=rainmaker_4MB_no_ota
+cyobot_esp32s3.menu.PartitionScheme.rainmaker_4MB.upload.maximum_size=4038656
+cyobot_esp32s3.menu.PartitionScheme.rainmaker_8MB=RainMaker 8MB
+cyobot_esp32s3.menu.PartitionScheme.rainmaker_8MB.build.partitions=rainmaker_8MB
+cyobot_esp32s3.menu.PartitionScheme.rainmaker_8MB.upload.maximum_size=4116480
+cyobot_esp32s3.menu.PartitionScheme.app5M_fat24M_32MB=32M Flash (4.8MB APP/22MB FATFS)
+cyobot_esp32s3.menu.PartitionScheme.app5M_fat24M_32MB.build.partitions=large_fat_32MB
+cyobot_esp32s3.menu.PartitionScheme.app5M_fat24M_32MB.upload.maximum_size=4718592
+cyobot_esp32s3.menu.PartitionScheme.app5M_little24M_32MB=32M Flash (4.8MB APP/22MB LittleFS)
+cyobot_esp32s3.menu.PartitionScheme.app5M_little24M_32MB.build.partitions=large_littlefs_32MB
+cyobot_esp32s3.menu.PartitionScheme.app5M_little24M_32MB.upload.maximum_size=4718592
+cyobot_esp32s3.menu.PartitionScheme.esp_sr_16=ESP SR 16M (3MB APP/7MB SPIFFS/2.9MB MODEL)
+cyobot_esp32s3.menu.PartitionScheme.esp_sr_16.upload.maximum_size=3145728
+cyobot_esp32s3.menu.PartitionScheme.esp_sr_16.upload.extra_flags=0xD10000 {build.path}/srmodels.bin
+cyobot_esp32s3.menu.PartitionScheme.esp_sr_16.build.partitions=esp_sr_16
+cyobot_esp32s3.menu.PartitionScheme.zigbee_zczr=Zigbee ZCZR 4MB with spiffs
+cyobot_esp32s3.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbee_zczr
+cyobot_esp32s3.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720
+cyobot_esp32s3.menu.PartitionScheme.custom=Custom
+cyobot_esp32s3.menu.PartitionScheme.custom.build.partitions=
+cyobot_esp32s3.menu.PartitionScheme.custom.upload.maximum_size=16777216
+
+cyobot_esp32s3.menu.CPUFreq.240=240MHz (WiFi)
+cyobot_esp32s3.menu.CPUFreq.240.build.f_cpu=240000000L
+cyobot_esp32s3.menu.CPUFreq.160=160MHz (WiFi)
+cyobot_esp32s3.menu.CPUFreq.160.build.f_cpu=160000000L
+cyobot_esp32s3.menu.CPUFreq.80=80MHz (WiFi)
+cyobot_esp32s3.menu.CPUFreq.80.build.f_cpu=80000000L
+cyobot_esp32s3.menu.CPUFreq.40=40MHz
+cyobot_esp32s3.menu.CPUFreq.40.build.f_cpu=40000000L
+cyobot_esp32s3.menu.CPUFreq.20=20MHz
+cyobot_esp32s3.menu.CPUFreq.20.build.f_cpu=20000000L
+cyobot_esp32s3.menu.CPUFreq.10=10MHz
+cyobot_esp32s3.menu.CPUFreq.10.build.f_cpu=10000000L
+
+cyobot_esp32s3.menu.UploadSpeed.921600=921600
+cyobot_esp32s3.menu.UploadSpeed.921600.upload.speed=921600
+cyobot_esp32s3.menu.UploadSpeed.115200=115200
+cyobot_esp32s3.menu.UploadSpeed.115200.upload.speed=115200
+cyobot_esp32s3.menu.UploadSpeed.256000.windows=256000
+cyobot_esp32s3.menu.UploadSpeed.256000.upload.speed=256000
+cyobot_esp32s3.menu.UploadSpeed.230400.windows.upload.speed=256000
+cyobot_esp32s3.menu.UploadSpeed.230400=230400
+cyobot_esp32s3.menu.UploadSpeed.230400.upload.speed=230400
+cyobot_esp32s3.menu.UploadSpeed.460800.linux=460800
+cyobot_esp32s3.menu.UploadSpeed.460800.macosx=460800
+cyobot_esp32s3.menu.UploadSpeed.460800.upload.speed=460800
+cyobot_esp32s3.menu.UploadSpeed.512000.windows=512000
+cyobot_esp32s3.menu.UploadSpeed.512000.upload.speed=512000
+
+cyobot_esp32s3.menu.DebugLevel.none=None
+cyobot_esp32s3.menu.DebugLevel.none.build.code_debug=0
+cyobot_esp32s3.menu.DebugLevel.error=Error
+cyobot_esp32s3.menu.DebugLevel.error.build.code_debug=1
+cyobot_esp32s3.menu.DebugLevel.warn=Warn
+cyobot_esp32s3.menu.DebugLevel.warn.build.code_debug=2
+cyobot_esp32s3.menu.DebugLevel.info=Info
+cyobot_esp32s3.menu.DebugLevel.info.build.code_debug=3
+cyobot_esp32s3.menu.DebugLevel.debug=Debug
+cyobot_esp32s3.menu.DebugLevel.debug.build.code_debug=4
+cyobot_esp32s3.menu.DebugLevel.verbose=Verbose
+cyobot_esp32s3.menu.DebugLevel.verbose.build.code_debug=5
+
+cyobot_esp32s3.menu.EraseFlash.none=Disabled
+cyobot_esp32s3.menu.EraseFlash.none.upload.erase_cmd=
+cyobot_esp32s3.menu.EraseFlash.all=Enabled
+cyobot_esp32s3.menu.EraseFlash.all.upload.erase_cmd=-e
+
+cyobot_esp32s3.menu.ZigbeeMode.default=Disabled
+cyobot_esp32s3.menu.ZigbeeMode.default.build.zigbee_mode=
+cyobot_esp32s3.menu.ZigbeeMode.default.build.zigbee_libs=
+cyobot_esp32s3.menu.ZigbeeMode.zczr=Zigbee ZCZR (coordinator/router)
+cyobot_esp32s3.menu.ZigbeeMode.zczr.build.zigbee_mode=-DZIGBEE_MODE_ZCZR
+cyobot_esp32s3.menu.ZigbeeMode.zczr.build.zigbee_libs=-lesp_zb_api_zczr -lesp_zb_cli_command -lzboss_stack.zczr -lzboss_port
+
 ##############################################################
 
 waveshare_esp32_s3_lcd_185.name=Waveshare ESP32-S3-LCD-1.85
diff --git a/variants/cyobot_v2_esp32s3/pins_arduino.h b/variants/cyobot_v2_esp32s3/pins_arduino.h
new file mode 100644
index 00000000000..a7e0356a184
--- /dev/null
+++ b/variants/cyobot_v2_esp32s3/pins_arduino.h
@@ -0,0 +1,66 @@
+#ifndef Pins_Arduino_h
+#define Pins_Arduino_h
+
+#include <stdint.h>
+
+#define USB_MANUFACTURER "CYObot"
+#define USB_PRODUCT      "CYObrain ESP32S3"
+#define USB_SERIAL       ""  // Empty string for MAC address
+
+/* Welcome to CYObot World - This Pin header file is for CYObrain_v2_esp32s3 */
+// Last Updated: 02/06/2025 - by Phamm
+
+static const uint8_t BUTTON0 = 4;
+static const uint8_t BUTTON1 = 38;
+static const uint8_t LED = 24;
+
+
+
+static const uint8_t BAT_MEAS = 6;
+static const uint8_t CHAR_DET = 23;
+
+static const uint8_t NEO_BASE = 7;
+static const uint8_t NEO_BRAIN = 15;
+
+static const uint8_t I2S0_MCLK = 16;
+static const uint8_t I2S0_DSDIN = 8;
+static const uint8_t I2S0_SCLK = 9;
+static const uint8_t I2S0_LRCK = 45;
+
+/* static const uint8_t I2C_SDA = 17  - Naming convention */
+static const uint8_t SDA = 17;
+/* static const uint8_t I2C_SCL = 18 - Naming convention */
+static const uint8_t SCL = 18;
+
+/* Naming convention changes 
+static const uint8_t SPI_CS = 5;
+static const uint8_t SPI_SCK = 41;
+static const uint8_t SPI_MISO = 42;
+static const uint8_t SPI_MOSI = 2; */
+
+static const uint8_t SS = 5;
+static const uint8_t MOSI = 2;
+static const uint8_t MISO = 42;
+static const uint8_t SCK = 41;
+
+static const uint8_t ENCODER1_A = 39;
+static const uint8_t ENCODER1_B = 40;
+static const uint8_t ENCODER2_B = 19;
+static const uint8_t ENCODER2_A = 20;
+
+static const uint8_t UART1_RXD = 3;
+static const uint8_t UART1_TXD = 1;
+
+static const uint8_t GPIO46 = 46;
+static const uint8_t ESP_IO0 = 0;
+
+static const uint8_t SD_OUT = 10;
+static const uint8_t SD_SPI_MOSI = 11;
+static const uint8_t SD_SPI_CLK = 12;
+static const uint8_t SD_SPI_MISO = 13;
+static const uint8_t SD_SPI_CS = 14;
+
+static const uint8_t PA_CTRL = 25;
+
+
+#endif /* Pins_Arduino_h */
\ No newline at end of file

From 0298d6719de564014b1768965e2b9c644c0acd90 Mon Sep 17 00:00:00 2001
From: mhpham23 <mhpham23@vt.edu>
Date: Thu, 6 Feb 2025 19:05:45 -0500
Subject: [PATCH 2/7] feat(cyobot): adding cyobot_v2_esp32s3 board

Change comments in pin header file for cyobot board
---
 variants/cyobot_v2_esp32s3/pins_arduino.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/variants/cyobot_v2_esp32s3/pins_arduino.h b/variants/cyobot_v2_esp32s3/pins_arduino.h
index a7e0356a184..3badf008af1 100644
--- a/variants/cyobot_v2_esp32s3/pins_arduino.h
+++ b/variants/cyobot_v2_esp32s3/pins_arduino.h
@@ -7,7 +7,7 @@
 #define USB_PRODUCT      "CYObrain ESP32S3"
 #define USB_SERIAL       ""  // Empty string for MAC address
 
-/* Welcome to CYObot World - This Pin header file is for CYObrain_v2_esp32s3 */
+/* Welcome to CYObot! - Pin header file is for CYObrain_v2_esp32s3 */
 // Last Updated: 02/06/2025 - by Phamm
 
 static const uint8_t BUTTON0 = 4;

From 5dab61dfb47a83ed02f537df1e26bc59ea8cf22f Mon Sep 17 00:00:00 2001
From: mhpham23 <mhpham23@vt.edu>
Date: Mon, 17 Feb 2025 21:18:31 -0500
Subject: [PATCH 3/7] fix(cyobot_v2_esp32s3): fix variant name

fix variant name for cyobot board
---
 boards.txt | 531 +++++++++++++++++++++++++----------------------------
 1 file changed, 252 insertions(+), 279 deletions(-)

diff --git a/boards.txt b/boards.txt
index 40453f17f77..3888d51f94d 100644
--- a/boards.txt
+++ b/boards.txt
@@ -45221,257 +45221,6 @@ cezerio_mini_dev_esp32c6.menu.ZigbeeMode.rcp=Zigbee RCP (radio co-processor)
 cezerio_mini_dev_esp32c6.menu.ZigbeeMode.rcp.build.zigbee_mode=-DZIGBEE_MODE_RCP
 cezerio_mini_dev_esp32c6.menu.ZigbeeMode.rcp.build.zigbee_libs=-lesp_zb_api_rcp -lesp_zb_cli_command -lzboss_stack.rcp -lzboss_port
 
-#############################################################
-# CYObot (CYObrain V2 ESP32S3) Board
-cyobot_esp32s3.name=CYObot V2 ESP32S3
-
-cyobot_esp32s3.bootloader.tool=esptool_py
-cyobot_esp32s3.bootloader.tool.default=esptool_py
-
-cyobot_esp32s3.upload.tool=esptool_py
-cyobot_esp32s3.upload.tool.default=esptool_py
-cyobot_esp32s3.upload.tool.network=esp_ota
-
-cyobot_esp32s3.upload.maximum_size=1310720
-cyobot_esp32s3.upload.maximum_data_size=327680
-cyobot_esp32s3.upload.flags=
-cyobot_esp32s3.upload.extra_flags=
-cyobot_esp32s3.upload.use_1200bps_touch=false
-cyobot_esp32s3.upload.wait_for_upload_port=false
-
-cyobot_esp32s3.serial.disableDTR=false
-cyobot_esp32s3.serial.disableRTS=false
-
-cyobot_esp32s3.build.tarch=xtensa
-cyobot_esp32s3.build.bootloader_addr=0x0
-cyobot_esp32s3.build.target=cyobot_esp32s3
-cyobot_esp32s3.build.mcu=cyobot_esp32s3
-cyobot_esp32s3.build.core=esp32
-cyobot_esp32s3.build.variant=cyobot_esp32s3
-cyobot_esp32s3.build.board=CYOBOT_ESP32S3_DEV
-
-cyobot_esp32s3.build.usb_mode=1
-cyobot_esp32s3.build.cdc_on_boot=0
-cyobot_esp32s3.build.msc_on_boot=0
-cyobot_esp32s3.build.dfu_on_boot=0
-cyobot_esp32s3.build.f_cpu=240000000L
-cyobot_esp32s3.build.flash_size=4MB
-cyobot_esp32s3.build.flash_freq=80m
-cyobot_esp32s3.build.flash_mode=dio
-cyobot_esp32s3.build.boot=qio
-cyobot_esp32s3.build.boot_freq=80m
-cyobot_esp32s3.build.partitions=default
-cyobot_esp32s3.build.defines=
-cyobot_esp32s3.build.loop_core=
-cyobot_esp32s3.build.event_core=
-cyobot_esp32s3.build.psram_type=qspi
-cyobot_esp32s3.build.memory_type={build.boot}_{build.psram_type}
-
-## IDE 2.0 Seems to not update the value
-cyobot_esp32s3.menu.JTAGAdapter.default=Disabled
-cyobot_esp32s3.menu.JTAGAdapter.default.build.copy_jtag_files=0
-cyobot_esp32s3.menu.JTAGAdapter.builtin=Integrated USB JTAG
-cyobot_esp32s3.menu.JTAGAdapter.builtin.build.openocdscript=cyobot_esp32s3-builtin.cfg
-cyobot_esp32s3.menu.JTAGAdapter.builtin.build.copy_jtag_files=1
-cyobot_esp32s3.menu.JTAGAdapter.external=FTDI Adapter
-cyobot_esp32s3.menu.JTAGAdapter.external.build.openocdscript=cyobot_esp32s3-ftdi.cfg
-cyobot_esp32s3.menu.JTAGAdapter.external.build.copy_jtag_files=1
-cyobot_esp32s3.menu.JTAGAdapter.bridge=ESP USB Bridge
-cyobot_esp32s3.menu.JTAGAdapter.bridge.build.openocdscript=cyobot_esp32s3-bridge.cfg
-cyobot_esp32s3.menu.JTAGAdapter.bridge.build.copy_jtag_files=1
-
-cyobot_esp32s3.menu.PSRAM.disabled=Disabled
-cyobot_esp32s3.menu.PSRAM.disabled.build.defines=
-cyobot_esp32s3.menu.PSRAM.disabled.build.psram_type=qspi
-cyobot_esp32s3.menu.PSRAM.enabled=QSPI PSRAM
-cyobot_esp32s3.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM
-cyobot_esp32s3.menu.PSRAM.enabled.build.psram_type=qspi
-cyobot_esp32s3.menu.PSRAM.opi=OPI PSRAM
-cyobot_esp32s3.menu.PSRAM.opi.build.defines=-DBOARD_HAS_PSRAM
-cyobot_esp32s3.menu.PSRAM.opi.build.psram_type=opi
-
-cyobot_esp32s3.menu.FlashMode.qio=QIO 80MHz
-cyobot_esp32s3.menu.FlashMode.qio.build.flash_mode=dio
-cyobot_esp32s3.menu.FlashMode.qio.build.boot=qio
-cyobot_esp32s3.menu.FlashMode.qio.build.boot_freq=80m
-cyobot_esp32s3.menu.FlashMode.qio.build.flash_freq=80m
-cyobot_esp32s3.menu.FlashMode.qio120=QIO 120MHz
-cyobot_esp32s3.menu.FlashMode.qio120.build.flash_mode=dio
-cyobot_esp32s3.menu.FlashMode.qio120.build.boot=qio
-cyobot_esp32s3.menu.FlashMode.qio120.build.boot_freq=120m
-cyobot_esp32s3.menu.FlashMode.qio120.build.flash_freq=80m
-cyobot_esp32s3.menu.FlashMode.dio=DIO 80MHz
-cyobot_esp32s3.menu.FlashMode.dio.build.flash_mode=dio
-cyobot_esp32s3.menu.FlashMode.dio.build.boot=dio
-cyobot_esp32s3.menu.FlashMode.dio.build.boot_freq=80m
-cyobot_esp32s3.menu.FlashMode.dio.build.flash_freq=80m
-cyobot_esp32s3.menu.FlashMode.opi=OPI 80MHz
-cyobot_esp32s3.menu.FlashMode.opi.build.flash_mode=dout
-cyobot_esp32s3.menu.FlashMode.opi.build.boot=opi
-cyobot_esp32s3.menu.FlashMode.opi.build.boot_freq=80m
-cyobot_esp32s3.menu.FlashMode.opi.build.flash_freq=80m
-
-cyobot_esp32s3.menu.FlashSize.4M=4MB (32Mb)
-cyobot_esp32s3.menu.FlashSize.4M.build.flash_size=4MB
-cyobot_esp32s3.menu.FlashSize.8M=8MB (64Mb)
-cyobot_esp32s3.menu.FlashSize.8M.build.flash_size=8MB
-cyobot_esp32s3.menu.FlashSize.16M=16MB (128Mb)
-cyobot_esp32s3.menu.FlashSize.16M.build.flash_size=16MB
-cyobot_esp32s3.menu.FlashSize.32M=32MB (256Mb)
-cyobot_esp32s3.menu.FlashSize.32M.build.flash_size=32MB
-
-cyobot_esp32s3.menu.LoopCore.1=Core 1
-cyobot_esp32s3.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1
-cyobot_esp32s3.menu.LoopCore.0=Core 0
-cyobot_esp32s3.menu.LoopCore.0.build.loop_core=-DARDUINO_RUNNING_CORE=0
-
-cyobot_esp32s3.menu.EventsCore.1=Core 1
-cyobot_esp32s3.menu.EventsCore.1.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
-cyobot_esp32s3.menu.EventsCore.0=Core 0
-cyobot_esp32s3.menu.EventsCore.0.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=0
-
-cyobot_esp32s3.menu.USBMode.hwcdc=Hardware CDC and JTAG
-cyobot_esp32s3.menu.USBMode.hwcdc.build.usb_mode=1
-cyobot_esp32s3.menu.USBMode.default=USB-OTG (TinyUSB)
-cyobot_esp32s3.menu.USBMode.default.build.usb_mode=0
-
-cyobot_esp32s3.menu.CDCOnBoot.default=Disabled
-cyobot_esp32s3.menu.CDCOnBoot.default.build.cdc_on_boot=0
-cyobot_esp32s3.menu.CDCOnBoot.cdc=Enabled
-cyobot_esp32s3.menu.CDCOnBoot.cdc.build.cdc_on_boot=1
-
-cyobot_esp32s3.menu.MSCOnBoot.default=Disabled
-cyobot_esp32s3.menu.MSCOnBoot.default.build.msc_on_boot=0
-cyobot_esp32s3.menu.MSCOnBoot.msc=Enabled (Requires USB-OTG Mode)
-cyobot_esp32s3.menu.MSCOnBoot.msc.build.msc_on_boot=1
-
-cyobot_esp32s3.menu.DFUOnBoot.default=Disabled
-cyobot_esp32s3.menu.DFUOnBoot.default.build.dfu_on_boot=0
-cyobot_esp32s3.menu.DFUOnBoot.dfu=Enabled (Requires USB-OTG Mode)
-cyobot_esp32s3.menu.DFUOnBoot.dfu.build.dfu_on_boot=1
-
-cyobot_esp32s3.menu.UploadMode.default=UART0 / Hardware CDC
-cyobot_esp32s3.menu.UploadMode.default.upload.use_1200bps_touch=false
-cyobot_esp32s3.menu.UploadMode.default.upload.wait_for_upload_port=false
-cyobot_esp32s3.menu.UploadMode.cdc=USB-OTG CDC (TinyUSB)
-cyobot_esp32s3.menu.UploadMode.cdc.upload.use_1200bps_touch=true
-cyobot_esp32s3.menu.UploadMode.cdc.upload.wait_for_upload_port=true
-
-cyobot_esp32s3.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
-cyobot_esp32s3.menu.PartitionScheme.default.build.partitions=default
-cyobot_esp32s3.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
-cyobot_esp32s3.menu.PartitionScheme.defaultffat.build.partitions=default_ffat
-cyobot_esp32s3.menu.PartitionScheme.default_8MB=8M with spiffs (3MB APP/1.5MB SPIFFS)
-cyobot_esp32s3.menu.PartitionScheme.default_8MB.build.partitions=default_8MB
-cyobot_esp32s3.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336
-cyobot_esp32s3.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS)
-cyobot_esp32s3.menu.PartitionScheme.minimal.build.partitions=minimal
-cyobot_esp32s3.menu.PartitionScheme.no_fs=No FS 4MB (2MB APP x2)
-cyobot_esp32s3.menu.PartitionScheme.no_fs.build.partitions=no_fs
-cyobot_esp32s3.menu.PartitionScheme.no_fs.upload.maximum_size=2031616
-cyobot_esp32s3.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS)
-cyobot_esp32s3.menu.PartitionScheme.no_ota.build.partitions=no_ota
-cyobot_esp32s3.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
-cyobot_esp32s3.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS)
-cyobot_esp32s3.menu.PartitionScheme.noota_3g.build.partitions=noota_3g
-cyobot_esp32s3.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576
-cyobot_esp32s3.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS)
-cyobot_esp32s3.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat
-cyobot_esp32s3.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152
-cyobot_esp32s3.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS)
-cyobot_esp32s3.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat
-cyobot_esp32s3.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576
-cyobot_esp32s3.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
-cyobot_esp32s3.menu.PartitionScheme.huge_app.build.partitions=huge_app
-cyobot_esp32s3.menu.PartitionScheme.huge_app.upload.maximum_size=3145728
-cyobot_esp32s3.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
-cyobot_esp32s3.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
-cyobot_esp32s3.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
-cyobot_esp32s3.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS)
-cyobot_esp32s3.menu.PartitionScheme.fatflash.build.partitions=ffat
-cyobot_esp32s3.menu.PartitionScheme.fatflash.upload.maximum_size=2097152
-cyobot_esp32s3.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS)
-cyobot_esp32s3.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB
-cyobot_esp32s3.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728
-cyobot_esp32s3.menu.PartitionScheme.rainmaker=RainMaker 4MB
-cyobot_esp32s3.menu.PartitionScheme.rainmaker.build.partitions=rainmaker
-cyobot_esp32s3.menu.PartitionScheme.rainmaker.upload.maximum_size=1966080
-cyobot_esp32s3.menu.PartitionScheme.rainmaker_4MB=RainMaker 4MB No OTA
-cyobot_esp32s3.menu.PartitionScheme.rainmaker_4MB.build.partitions=rainmaker_4MB_no_ota
-cyobot_esp32s3.menu.PartitionScheme.rainmaker_4MB.upload.maximum_size=4038656
-cyobot_esp32s3.menu.PartitionScheme.rainmaker_8MB=RainMaker 8MB
-cyobot_esp32s3.menu.PartitionScheme.rainmaker_8MB.build.partitions=rainmaker_8MB
-cyobot_esp32s3.menu.PartitionScheme.rainmaker_8MB.upload.maximum_size=4116480
-cyobot_esp32s3.menu.PartitionScheme.app5M_fat24M_32MB=32M Flash (4.8MB APP/22MB FATFS)
-cyobot_esp32s3.menu.PartitionScheme.app5M_fat24M_32MB.build.partitions=large_fat_32MB
-cyobot_esp32s3.menu.PartitionScheme.app5M_fat24M_32MB.upload.maximum_size=4718592
-cyobot_esp32s3.menu.PartitionScheme.app5M_little24M_32MB=32M Flash (4.8MB APP/22MB LittleFS)
-cyobot_esp32s3.menu.PartitionScheme.app5M_little24M_32MB.build.partitions=large_littlefs_32MB
-cyobot_esp32s3.menu.PartitionScheme.app5M_little24M_32MB.upload.maximum_size=4718592
-cyobot_esp32s3.menu.PartitionScheme.esp_sr_16=ESP SR 16M (3MB APP/7MB SPIFFS/2.9MB MODEL)
-cyobot_esp32s3.menu.PartitionScheme.esp_sr_16.upload.maximum_size=3145728
-cyobot_esp32s3.menu.PartitionScheme.esp_sr_16.upload.extra_flags=0xD10000 {build.path}/srmodels.bin
-cyobot_esp32s3.menu.PartitionScheme.esp_sr_16.build.partitions=esp_sr_16
-cyobot_esp32s3.menu.PartitionScheme.zigbee_zczr=Zigbee ZCZR 4MB with spiffs
-cyobot_esp32s3.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbee_zczr
-cyobot_esp32s3.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720
-cyobot_esp32s3.menu.PartitionScheme.custom=Custom
-cyobot_esp32s3.menu.PartitionScheme.custom.build.partitions=
-cyobot_esp32s3.menu.PartitionScheme.custom.upload.maximum_size=16777216
-
-cyobot_esp32s3.menu.CPUFreq.240=240MHz (WiFi)
-cyobot_esp32s3.menu.CPUFreq.240.build.f_cpu=240000000L
-cyobot_esp32s3.menu.CPUFreq.160=160MHz (WiFi)
-cyobot_esp32s3.menu.CPUFreq.160.build.f_cpu=160000000L
-cyobot_esp32s3.menu.CPUFreq.80=80MHz (WiFi)
-cyobot_esp32s3.menu.CPUFreq.80.build.f_cpu=80000000L
-cyobot_esp32s3.menu.CPUFreq.40=40MHz
-cyobot_esp32s3.menu.CPUFreq.40.build.f_cpu=40000000L
-cyobot_esp32s3.menu.CPUFreq.20=20MHz
-cyobot_esp32s3.menu.CPUFreq.20.build.f_cpu=20000000L
-cyobot_esp32s3.menu.CPUFreq.10=10MHz
-cyobot_esp32s3.menu.CPUFreq.10.build.f_cpu=10000000L
-
-cyobot_esp32s3.menu.UploadSpeed.921600=921600
-cyobot_esp32s3.menu.UploadSpeed.921600.upload.speed=921600
-cyobot_esp32s3.menu.UploadSpeed.115200=115200
-cyobot_esp32s3.menu.UploadSpeed.115200.upload.speed=115200
-cyobot_esp32s3.menu.UploadSpeed.256000.windows=256000
-cyobot_esp32s3.menu.UploadSpeed.256000.upload.speed=256000
-cyobot_esp32s3.menu.UploadSpeed.230400.windows.upload.speed=256000
-cyobot_esp32s3.menu.UploadSpeed.230400=230400
-cyobot_esp32s3.menu.UploadSpeed.230400.upload.speed=230400
-cyobot_esp32s3.menu.UploadSpeed.460800.linux=460800
-cyobot_esp32s3.menu.UploadSpeed.460800.macosx=460800
-cyobot_esp32s3.menu.UploadSpeed.460800.upload.speed=460800
-cyobot_esp32s3.menu.UploadSpeed.512000.windows=512000
-cyobot_esp32s3.menu.UploadSpeed.512000.upload.speed=512000
-
-cyobot_esp32s3.menu.DebugLevel.none=None
-cyobot_esp32s3.menu.DebugLevel.none.build.code_debug=0
-cyobot_esp32s3.menu.DebugLevel.error=Error
-cyobot_esp32s3.menu.DebugLevel.error.build.code_debug=1
-cyobot_esp32s3.menu.DebugLevel.warn=Warn
-cyobot_esp32s3.menu.DebugLevel.warn.build.code_debug=2
-cyobot_esp32s3.menu.DebugLevel.info=Info
-cyobot_esp32s3.menu.DebugLevel.info.build.code_debug=3
-cyobot_esp32s3.menu.DebugLevel.debug=Debug
-cyobot_esp32s3.menu.DebugLevel.debug.build.code_debug=4
-cyobot_esp32s3.menu.DebugLevel.verbose=Verbose
-cyobot_esp32s3.menu.DebugLevel.verbose.build.code_debug=5
-
-cyobot_esp32s3.menu.EraseFlash.none=Disabled
-cyobot_esp32s3.menu.EraseFlash.none.upload.erase_cmd=
-cyobot_esp32s3.menu.EraseFlash.all=Enabled
-cyobot_esp32s3.menu.EraseFlash.all.upload.erase_cmd=-e
-
-cyobot_esp32s3.menu.ZigbeeMode.default=Disabled
-cyobot_esp32s3.menu.ZigbeeMode.default.build.zigbee_mode=
-cyobot_esp32s3.menu.ZigbeeMode.default.build.zigbee_libs=
-cyobot_esp32s3.menu.ZigbeeMode.zczr=Zigbee ZCZR (coordinator/router)
-cyobot_esp32s3.menu.ZigbeeMode.zczr.build.zigbee_mode=-DZIGBEE_MODE_ZCZR
-cyobot_esp32s3.menu.ZigbeeMode.zczr.build.zigbee_libs=-lesp_zb_api_zczr -lesp_zb_cli_command -lzboss_stack.zczr -lzboss_port
-
 ##############################################################
 
 waveshare_esp32_s3_lcd_185.name=Waveshare ESP32-S3-LCD-1.85
@@ -49174,20 +48923,6 @@ huidu_hd_wf2.menu.CPUFreq.80.build.f_cpu=80000000L
 huidu_hd_wf2.menu.CPUFreq.40=40MHz
 huidu_hd_wf2.menu.CPUFreq.40.build.f_cpu=40000000L
 
-huidu_hd_wf2.menu.PSRAM.enabled=QSPI Flash fix
-huidu_hd_wf2.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM
-huidu_hd_wf2.menu.PSRAM.enabled.build.psram_type=qspi
-
-huidu_hd_wf2.menu.FlashMode.qio=QIO 80MHz
-huidu_hd_wf2.menu.FlashMode.qio.build.flash_mode=dio
-huidu_hd_wf2.menu.FlashMode.qio.build.boot=qio
-huidu_hd_wf2.menu.FlashMode.qio.build.boot_freq=80m
-huidu_hd_wf2.menu.FlashMode.qio.build.flash_freq=80m
-huidu_hd_wf2.menu.FlashMode.qio120=QIO 120MHz
-huidu_hd_wf2.menu.FlashMode.qio120.build.flash_mode=dio
-huidu_hd_wf2.menu.FlashMode.qio120.build.boot=qio
-huidu_hd_wf2.menu.FlashMode.qio120.build.boot_freq=120m
-huidu_hd_wf2.menu.FlashMode.qio120.build.flash_freq=80m
 huidu_hd_wf2.menu.FlashMode.dio=DIO 80MHz
 huidu_hd_wf2.menu.FlashMode.dio.build.flash_mode=dio
 huidu_hd_wf2.menu.FlashMode.dio.build.boot=dio
@@ -49327,20 +49062,6 @@ huidu_hd_wf4.menu.CPUFreq.80.build.f_cpu=80000000L
 huidu_hd_wf4.menu.CPUFreq.40=40MHz
 huidu_hd_wf4.menu.CPUFreq.40.build.f_cpu=40000000L
 
-huidu_hd_wf4.menu.PSRAM.enabled=QSPI Flash fix
-huidu_hd_wf4.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM
-huidu_hd_wf4.menu.PSRAM.enabled.build.psram_type=qspi
-
-huidu_hd_wf4.menu.FlashMode.qio=QIO 80MHz
-huidu_hd_wf4.menu.FlashMode.qio.build.flash_mode=dio
-huidu_hd_wf4.menu.FlashMode.qio.build.boot=qio
-huidu_hd_wf4.menu.FlashMode.qio.build.boot_freq=80m
-huidu_hd_wf4.menu.FlashMode.qio.build.flash_freq=80m
-huidu_hd_wf4.menu.FlashMode.qio120=QIO 120MHz
-huidu_hd_wf4.menu.FlashMode.qio120.build.flash_mode=dio
-huidu_hd_wf4.menu.FlashMode.qio120.build.boot=qio
-huidu_hd_wf4.menu.FlashMode.qio120.build.boot_freq=120m
-huidu_hd_wf4.menu.FlashMode.qio120.build.flash_freq=80m
 huidu_hd_wf4.menu.FlashMode.dio=DIO 80MHz
 huidu_hd_wf4.menu.FlashMode.dio.build.flash_mode=dio
 huidu_hd_wf4.menu.FlashMode.dio.build.boot=dio
@@ -49374,3 +49095,255 @@ huidu_hd_wf4.menu.EraseFlash.all=Enabled
 huidu_hd_wf4.menu.EraseFlash.all.upload.erase_cmd=-e
 
 ##############################################################
+
+# CYObot (CYObrain V2 ESP32S3) Board
+cyobot_v2_esp32s3.name=CYObot V2 ESP32S3
+
+cyobot_v2_esp32s3.bootloader.tool=esptool_py
+cyobot_v2_esp32s3.bootloader.tool.default=esptool_py
+
+cyobot_v2_esp32s3.upload.tool=esptool_py
+cyobot_v2_esp32s3.upload.tool.default=esptool_py
+cyobot_v2_esp32s3.upload.tool.network=esp_ota
+
+cyobot_v2_esp32s3.upload.maximum_size=1310720
+cyobot_v2_esp32s3.upload.maximum_data_size=327680
+cyobot_v2_esp32s3.upload.flags=
+cyobot_v2_esp32s3.upload.extra_flags=
+cyobot_v2_esp32s3.upload.use_1200bps_touch=false
+cyobot_v2_esp32s3.upload.wait_for_upload_port=false
+
+cyobot_v2_esp32s3.serial.disableDTR=false
+cyobot_v2_esp32s3.serial.disableRTS=false
+
+cyobot_v2_esp32s3.build.tarch=xtensa
+cyobot_v2_esp32s3.build.bootloader_addr=0x0
+cyobot_v2_esp32s3.build.target=esp32s3
+cyobot_v2_esp32s3.build.mcu=esp32s3
+cyobot_v2_esp32s3.build.core=esp32
+cyobot_v2_esp32s3.build.variant=cyobot_v2_esp32s3
+cyobot_v2_esp32s3.build.board=CYOBOT_V2_ESP32S3
+
+cyobot_v2_esp32s3.build.usb_mode=1
+cyobot_v2_esp32s3.build.cdc_on_boot=0
+cyobot_v2_esp32s3.build.msc_on_boot=0
+cyobot_v2_esp32s3.build.dfu_on_boot=0
+cyobot_v2_esp32s3.build.f_cpu=240000000L
+cyobot_v2_esp32s3.build.flash_size=4MB
+cyobot_v2_esp32s3.build.flash_freq=80m
+cyobot_v2_esp32s3.build.flash_mode=dio
+cyobot_v2_esp32s3.build.boot=qio
+cyobot_v2_esp32s3.build.boot_freq=80m
+cyobot_v2_esp32s3.build.partitions=default
+cyobot_v2_esp32s3.build.defines=
+cyobot_v2_esp32s3.build.loop_core=
+cyobot_v2_esp32s3.build.event_core=
+cyobot_v2_esp32s3.build.psram_type=qspi
+cyobot_v2_esp32s3.build.memory_type={build.boot}_{build.psram_type}
+
+## IDE 2.0 Seems to not update the value
+cyobot_v2_esp32s3.menu.JTAGAdapter.default=Disabled
+cyobot_v2_esp32s3.menu.JTAGAdapter.default.build.copy_jtag_files=0
+cyobot_v2_esp32s3.menu.JTAGAdapter.builtin=Integrated USB JTAG
+cyobot_v2_esp32s3.menu.JTAGAdapter.builtin.build.openocdscript=cyobot_v2_esp32s3-builtin.cfg
+cyobot_v2_esp32s3.menu.JTAGAdapter.builtin.build.copy_jtag_files=1
+cyobot_v2_esp32s3.menu.JTAGAdapter.external=FTDI Adapter
+cyobot_v2_esp32s3.menu.JTAGAdapter.external.build.openocdscript=cyobot_v2_esp32s3-ftdi.cfg
+cyobot_v2_esp32s3.menu.JTAGAdapter.external.build.copy_jtag_files=1
+cyobot_v2_esp32s3.menu.JTAGAdapter.bridge=ESP USB Bridge
+cyobot_v2_esp32s3.menu.JTAGAdapter.bridge.build.openocdscript=cyobot_v2_esp32s3-bridge.cfg
+cyobot_v2_esp32s3.menu.JTAGAdapter.bridge.build.copy_jtag_files=1
+
+cyobot_v2_esp32s3.menu.PSRAM.disabled=Disabled
+cyobot_v2_esp32s3.menu.PSRAM.disabled.build.defines=
+cyobot_v2_esp32s3.menu.PSRAM.disabled.build.psram_type=qspi
+cyobot_v2_esp32s3.menu.PSRAM.enabled=QSPI PSRAM
+cyobot_v2_esp32s3.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM
+cyobot_v2_esp32s3.menu.PSRAM.enabled.build.psram_type=qspi
+cyobot_v2_esp32s3.menu.PSRAM.opi=OPI PSRAM
+cyobot_v2_esp32s3.menu.PSRAM.opi.build.defines=-DBOARD_HAS_PSRAM
+cyobot_v2_esp32s3.menu.PSRAM.opi.build.psram_type=opi
+
+cyobot_v2_esp32s3.menu.FlashMode.qio=QIO 80MHz
+cyobot_v2_esp32s3.menu.FlashMode.qio.build.flash_mode=dio
+cyobot_v2_esp32s3.menu.FlashMode.qio.build.boot=qio
+cyobot_v2_esp32s3.menu.FlashMode.qio.build.boot_freq=80m
+cyobot_v2_esp32s3.menu.FlashMode.qio.build.flash_freq=80m
+cyobot_v2_esp32s3.menu.FlashMode.qio120=QIO 120MHz
+cyobot_v2_esp32s3.menu.FlashMode.qio120.build.flash_mode=dio
+cyobot_v2_esp32s3.menu.FlashMode.qio120.build.boot=qio
+cyobot_v2_esp32s3.menu.FlashMode.qio120.build.boot_freq=120m
+cyobot_v2_esp32s3.menu.FlashMode.qio120.build.flash_freq=80m
+cyobot_v2_esp32s3.menu.FlashMode.dio=DIO 80MHz
+cyobot_v2_esp32s3.menu.FlashMode.dio.build.flash_mode=dio
+cyobot_v2_esp32s3.menu.FlashMode.dio.build.boot=dio
+cyobot_v2_esp32s3.menu.FlashMode.dio.build.boot_freq=80m
+cyobot_v2_esp32s3.menu.FlashMode.dio.build.flash_freq=80m
+cyobot_v2_esp32s3.menu.FlashMode.opi=OPI 80MHz
+cyobot_v2_esp32s3.menu.FlashMode.opi.build.flash_mode=dout
+cyobot_v2_esp32s3.menu.FlashMode.opi.build.boot=opi
+cyobot_v2_esp32s3.menu.FlashMode.opi.build.boot_freq=80m
+cyobot_v2_esp32s3.menu.FlashMode.opi.build.flash_freq=80m
+
+cyobot_v2_esp32s3.menu.FlashSize.4M=4MB (32Mb)
+cyobot_v2_esp32s3.menu.FlashSize.4M.build.flash_size=4MB
+cyobot_v2_esp32s3.menu.FlashSize.8M=8MB (64Mb)
+cyobot_v2_esp32s3.menu.FlashSize.8M.build.flash_size=8MB
+cyobot_v2_esp32s3.menu.FlashSize.16M=16MB (128Mb)
+cyobot_v2_esp32s3.menu.FlashSize.16M.build.flash_size=16MB
+cyobot_v2_esp32s3.menu.FlashSize.32M=32MB (256Mb)
+cyobot_v2_esp32s3.menu.FlashSize.32M.build.flash_size=32MB
+
+cyobot_v2_esp32s3.menu.LoopCore.1=Core 1
+cyobot_v2_esp32s3.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1
+cyobot_v2_esp32s3.menu.LoopCore.0=Core 0
+cyobot_v2_esp32s3.menu.LoopCore.0.build.loop_core=-DARDUINO_RUNNING_CORE=0
+
+cyobot_v2_esp32s3.menu.EventsCore.1=Core 1
+cyobot_v2_esp32s3.menu.EventsCore.1.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
+cyobot_v2_esp32s3.menu.EventsCore.0=Core 0
+cyobot_v2_esp32s3.menu.EventsCore.0.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=0
+
+cyobot_v2_esp32s3.menu.USBMode.hwcdc=Hardware CDC and JTAG
+cyobot_v2_esp32s3.menu.USBMode.hwcdc.build.usb_mode=1
+cyobot_v2_esp32s3.menu.USBMode.default=USB-OTG (TinyUSB)
+cyobot_v2_esp32s3.menu.USBMode.default.build.usb_mode=0
+
+cyobot_v2_esp32s3.menu.CDCOnBoot.default=Disabled
+cyobot_v2_esp32s3.menu.CDCOnBoot.default.build.cdc_on_boot=0
+cyobot_v2_esp32s3.menu.CDCOnBoot.cdc=Enabled
+cyobot_v2_esp32s3.menu.CDCOnBoot.cdc.build.cdc_on_boot=1
+
+cyobot_v2_esp32s3.menu.MSCOnBoot.default=Disabled
+cyobot_v2_esp32s3.menu.MSCOnBoot.default.build.msc_on_boot=0
+cyobot_v2_esp32s3.menu.MSCOnBoot.msc=Enabled (Requires USB-OTG Mode)
+cyobot_v2_esp32s3.menu.MSCOnBoot.msc.build.msc_on_boot=1
+
+cyobot_v2_esp32s3.menu.DFUOnBoot.default=Disabled
+cyobot_v2_esp32s3.menu.DFUOnBoot.default.build.dfu_on_boot=0
+cyobot_v2_esp32s3.menu.DFUOnBoot.dfu=Enabled (Requires USB-OTG Mode)
+cyobot_v2_esp32s3.menu.DFUOnBoot.dfu.build.dfu_on_boot=1
+
+cyobot_v2_esp32s3.menu.UploadMode.default=UART0 / Hardware CDC
+cyobot_v2_esp32s3.menu.UploadMode.default.upload.use_1200bps_touch=false
+cyobot_v2_esp32s3.menu.UploadMode.default.upload.wait_for_upload_port=false
+cyobot_v2_esp32s3.menu.UploadMode.cdc=USB-OTG CDC (TinyUSB)
+cyobot_v2_esp32s3.menu.UploadMode.cdc.upload.use_1200bps_touch=true
+cyobot_v2_esp32s3.menu.UploadMode.cdc.upload.wait_for_upload_port=true
+
+cyobot_v2_esp32s3.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
+cyobot_v2_esp32s3.menu.PartitionScheme.default.build.partitions=default
+cyobot_v2_esp32s3.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
+cyobot_v2_esp32s3.menu.PartitionScheme.defaultffat.build.partitions=default_ffat
+cyobot_v2_esp32s3.menu.PartitionScheme.default_8MB=8M with spiffs (3MB APP/1.5MB SPIFFS)
+cyobot_v2_esp32s3.menu.PartitionScheme.default_8MB.build.partitions=default_8MB
+cyobot_v2_esp32s3.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336
+cyobot_v2_esp32s3.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS)
+cyobot_v2_esp32s3.menu.PartitionScheme.minimal.build.partitions=minimal
+cyobot_v2_esp32s3.menu.PartitionScheme.no_fs=No FS 4MB (2MB APP x2)
+cyobot_v2_esp32s3.menu.PartitionScheme.no_fs.build.partitions=no_fs
+cyobot_v2_esp32s3.menu.PartitionScheme.no_fs.upload.maximum_size=2031616
+cyobot_v2_esp32s3.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS)
+cyobot_v2_esp32s3.menu.PartitionScheme.no_ota.build.partitions=no_ota
+cyobot_v2_esp32s3.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
+cyobot_v2_esp32s3.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS)
+cyobot_v2_esp32s3.menu.PartitionScheme.noota_3g.build.partitions=noota_3g
+cyobot_v2_esp32s3.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576
+cyobot_v2_esp32s3.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS)
+cyobot_v2_esp32s3.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat
+cyobot_v2_esp32s3.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152
+cyobot_v2_esp32s3.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS)
+cyobot_v2_esp32s3.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat
+cyobot_v2_esp32s3.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576
+cyobot_v2_esp32s3.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
+cyobot_v2_esp32s3.menu.PartitionScheme.huge_app.build.partitions=huge_app
+cyobot_v2_esp32s3.menu.PartitionScheme.huge_app.upload.maximum_size=3145728
+cyobot_v2_esp32s3.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
+cyobot_v2_esp32s3.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
+cyobot_v2_esp32s3.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
+cyobot_v2_esp32s3.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS)
+cyobot_v2_esp32s3.menu.PartitionScheme.fatflash.build.partitions=ffat
+cyobot_v2_esp32s3.menu.PartitionScheme.fatflash.upload.maximum_size=2097152
+cyobot_v2_esp32s3.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS)
+cyobot_v2_esp32s3.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB
+cyobot_v2_esp32s3.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728
+cyobot_v2_esp32s3.menu.PartitionScheme.rainmaker=RainMaker 4MB
+cyobot_v2_esp32s3.menu.PartitionScheme.rainmaker.build.partitions=rainmaker
+cyobot_v2_esp32s3.menu.PartitionScheme.rainmaker.upload.maximum_size=1966080
+cyobot_v2_esp32s3.menu.PartitionScheme.rainmaker_4MB=RainMaker 4MB No OTA
+cyobot_v2_esp32s3.menu.PartitionScheme.rainmaker_4MB.build.partitions=rainmaker_4MB_no_ota
+cyobot_v2_esp32s3.menu.PartitionScheme.rainmaker_4MB.upload.maximum_size=4038656
+cyobot_v2_esp32s3.menu.PartitionScheme.rainmaker_8MB=RainMaker 8MB
+cyobot_v2_esp32s3.menu.PartitionScheme.rainmaker_8MB.build.partitions=rainmaker_8MB
+cyobot_v2_esp32s3.menu.PartitionScheme.rainmaker_8MB.upload.maximum_size=4116480
+cyobot_v2_esp32s3.menu.PartitionScheme.app5M_fat24M_32MB=32M Flash (4.8MB APP/22MB FATFS)
+cyobot_v2_esp32s3.menu.PartitionScheme.app5M_fat24M_32MB.build.partitions=large_fat_32MB
+cyobot_v2_esp32s3.menu.PartitionScheme.app5M_fat24M_32MB.upload.maximum_size=4718592
+cyobot_v2_esp32s3.menu.PartitionScheme.app5M_little24M_32MB=32M Flash (4.8MB APP/22MB LittleFS)
+cyobot_v2_esp32s3.menu.PartitionScheme.app5M_little24M_32MB.build.partitions=large_littlefs_32MB
+cyobot_v2_esp32s3.menu.PartitionScheme.app5M_little24M_32MB.upload.maximum_size=4718592
+cyobot_v2_esp32s3.menu.PartitionScheme.esp_sr_16=ESP SR 16M (3MB APP/7MB SPIFFS/2.9MB MODEL)
+cyobot_v2_esp32s3.menu.PartitionScheme.esp_sr_16.upload.maximum_size=3145728
+cyobot_v2_esp32s3.menu.PartitionScheme.esp_sr_16.upload.extra_flags=0xD10000 {build.path}/srmodels.bin
+cyobot_v2_esp32s3.menu.PartitionScheme.esp_sr_16.build.partitions=esp_sr_16
+cyobot_v2_esp32s3.menu.PartitionScheme.zigbee_zczr=Zigbee ZCZR 4MB with spiffs
+cyobot_v2_esp32s3.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbee_zczr
+cyobot_v2_esp32s3.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720
+cyobot_v2_esp32s3.menu.PartitionScheme.custom=Custom
+cyobot_v2_esp32s3.menu.PartitionScheme.custom.build.partitions=
+cyobot_v2_esp32s3.menu.PartitionScheme.custom.upload.maximum_size=16777216
+
+cyobot_v2_esp32s3.menu.CPUFreq.240=240MHz (WiFi)
+cyobot_v2_esp32s3.menu.CPUFreq.240.build.f_cpu=240000000L
+cyobot_v2_esp32s3.menu.CPUFreq.160=160MHz (WiFi)
+cyobot_v2_esp32s3.menu.CPUFreq.160.build.f_cpu=160000000L
+cyobot_v2_esp32s3.menu.CPUFreq.80=80MHz (WiFi)
+cyobot_v2_esp32s3.menu.CPUFreq.80.build.f_cpu=80000000L
+cyobot_v2_esp32s3.menu.CPUFreq.40=40MHz
+cyobot_v2_esp32s3.menu.CPUFreq.40.build.f_cpu=40000000L
+cyobot_v2_esp32s3.menu.CPUFreq.20=20MHz
+cyobot_v2_esp32s3.menu.CPUFreq.20.build.f_cpu=20000000L
+cyobot_v2_esp32s3.menu.CPUFreq.10=10MHz
+cyobot_v2_esp32s3.menu.CPUFreq.10.build.f_cpu=10000000L
+
+cyobot_v2_esp32s3.menu.UploadSpeed.921600=921600
+cyobot_v2_esp32s3.menu.UploadSpeed.921600.upload.speed=921600
+cyobot_v2_esp32s3.menu.UploadSpeed.115200=115200
+cyobot_v2_esp32s3.menu.UploadSpeed.115200.upload.speed=115200
+cyobot_v2_esp32s3.menu.UploadSpeed.256000.windows=256000
+cyobot_v2_esp32s3.menu.UploadSpeed.256000.upload.speed=256000
+cyobot_v2_esp32s3.menu.UploadSpeed.230400.windows.upload.speed=256000
+cyobot_v2_esp32s3.menu.UploadSpeed.230400=230400
+cyobot_v2_esp32s3.menu.UploadSpeed.230400.upload.speed=230400
+cyobot_v2_esp32s3.menu.UploadSpeed.460800.linux=460800
+cyobot_v2_esp32s3.menu.UploadSpeed.460800.macosx=460800
+cyobot_v2_esp32s3.menu.UploadSpeed.460800.upload.speed=460800
+cyobot_v2_esp32s3.menu.UploadSpeed.512000.windows=512000
+cyobot_v2_esp32s3.menu.UploadSpeed.512000.upload.speed=512000
+
+cyobot_v2_esp32s3.menu.DebugLevel.none=None
+cyobot_v2_esp32s3.menu.DebugLevel.none.build.code_debug=0
+cyobot_v2_esp32s3.menu.DebugLevel.error=Error
+cyobot_v2_esp32s3.menu.DebugLevel.error.build.code_debug=1
+cyobot_v2_esp32s3.menu.DebugLevel.warn=Warn
+cyobot_v2_esp32s3.menu.DebugLevel.warn.build.code_debug=2
+cyobot_v2_esp32s3.menu.DebugLevel.info=Info
+cyobot_v2_esp32s3.menu.DebugLevel.info.build.code_debug=3
+cyobot_v2_esp32s3.menu.DebugLevel.debug=Debug
+cyobot_v2_esp32s3.menu.DebugLevel.debug.build.code_debug=4
+cyobot_v2_esp32s3.menu.DebugLevel.verbose=Verbose
+cyobot_v2_esp32s3.menu.DebugLevel.verbose.build.code_debug=5
+
+cyobot_v2_esp32s3.menu.EraseFlash.none=Disabled
+cyobot_v2_esp32s3.menu.EraseFlash.none.upload.erase_cmd=
+cyobot_v2_esp32s3.menu.EraseFlash.all=Enabled
+cyobot_v2_esp32s3.menu.EraseFlash.all.upload.erase_cmd=-e
+
+cyobot_v2_esp32s3.menu.ZigbeeMode.default=Disabled
+cyobot_v2_esp32s3.menu.ZigbeeMode.default.build.zigbee_mode=
+cyobot_v2_esp32s3.menu.ZigbeeMode.default.build.zigbee_libs=
+cyobot_v2_esp32s3.menu.ZigbeeMode.zczr=Zigbee ZCZR (coordinator/router)
+cyobot_v2_esp32s3.menu.ZigbeeMode.zczr.build.zigbee_mode=-DZIGBEE_MODE_ZCZR
+cyobot_v2_esp32s3.menu.ZigbeeMode.zczr.build.zigbee_libs=-lesp_zb_api_zczr -lesp_zb_cli_command -lzboss_stack.zczr -lzboss_port
+
+##############################################################

From 1249195ed2970f5cc62e0f2e6d3fc515224c9f45 Mon Sep 17 00:00:00 2001
From: mhpham23 <mhpham23@vt.edu>
Date: Tue, 18 Feb 2025 19:09:51 -0500
Subject: [PATCH 4/7] fix(boards.txt): fix name of CYOBot board

- Change name to uppercase
---
 boards.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/boards.txt b/boards.txt
index 3888d51f94d..3d272dc8e26 100644
--- a/boards.txt
+++ b/boards.txt
@@ -49096,8 +49096,8 @@ huidu_hd_wf4.menu.EraseFlash.all.upload.erase_cmd=-e
 
 ##############################################################
 
-# CYObot (CYObrain V2 ESP32S3) Board
-cyobot_v2_esp32s3.name=CYObot V2 ESP32S3
+# CYOBot (CYOBrain V2 ESP32S3) Board
+cyobot_v2_esp32s3.name=CYOBOT V2 ESP32S3
 
 cyobot_v2_esp32s3.bootloader.tool=esptool_py
 cyobot_v2_esp32s3.bootloader.tool.default=esptool_py

From 1fdc989ede9115770eb8520613b5115ecb6f32a7 Mon Sep 17 00:00:00 2001
From: mhpham23 <mhpham23@vt.edu>
Date: Mon, 24 Feb 2025 21:27:21 -0500
Subject: [PATCH 5/7] fix(CYOBot): fix boards.txt & pin_arduino.h

---
 boards.txt                                |  2 +-
 variants/cyobot_v2_esp32s3/pins_arduino.h | 10 +---------
 2 files changed, 2 insertions(+), 10 deletions(-)

diff --git a/boards.txt b/boards.txt
index 079e7262a43..c6020a77795 100644
--- a/boards.txt
+++ b/boards.txt
@@ -49280,6 +49280,6 @@ cyobot_v2_esp32s3.menu.ZigbeeMode.default.build.zigbee_mode=
 cyobot_v2_esp32s3.menu.ZigbeeMode.default.build.zigbee_libs=
 cyobot_v2_esp32s3.menu.ZigbeeMode.zczr=Zigbee ZCZR (coordinator/router)
 cyobot_v2_esp32s3.menu.ZigbeeMode.zczr.build.zigbee_mode=-DZIGBEE_MODE_ZCZR
-cyobot_v2_esp32s3.menu.ZigbeeMode.zczr.build.zigbee_libs=-lesp_zb_api_zczr -lesp_zb_cli_command -lzboss_stack.zczr -lzboss_port
+cyobot_v2_esp32s3.menu.ZigbeeMode.zczr.build.zigbee_libs=-lesp_zb_api.zczr -lzboss_stack.zczr -lzboss_port.remote
 
 ##############################################################
diff --git a/variants/cyobot_v2_esp32s3/pins_arduino.h b/variants/cyobot_v2_esp32s3/pins_arduino.h
index 3badf008af1..f1dfab7c7db 100644
--- a/variants/cyobot_v2_esp32s3/pins_arduino.h
+++ b/variants/cyobot_v2_esp32s3/pins_arduino.h
@@ -7,8 +7,6 @@
 #define USB_PRODUCT      "CYObrain ESP32S3"
 #define USB_SERIAL       ""  // Empty string for MAC address
 
-/* Welcome to CYObot! - Pin header file is for CYObrain_v2_esp32s3 */
-// Last Updated: 02/06/2025 - by Phamm
 
 static const uint8_t BUTTON0 = 4;
 static const uint8_t BUTTON1 = 38;
@@ -27,16 +25,10 @@ static const uint8_t I2S0_DSDIN = 8;
 static const uint8_t I2S0_SCLK = 9;
 static const uint8_t I2S0_LRCK = 45;
 
-/* static const uint8_t I2C_SDA = 17  - Naming convention */
+
 static const uint8_t SDA = 17;
-/* static const uint8_t I2C_SCL = 18 - Naming convention */
 static const uint8_t SCL = 18;
 
-/* Naming convention changes 
-static const uint8_t SPI_CS = 5;
-static const uint8_t SPI_SCK = 41;
-static const uint8_t SPI_MISO = 42;
-static const uint8_t SPI_MOSI = 2; */
 
 static const uint8_t SS = 5;
 static const uint8_t MOSI = 2;

From a4f88947c9e1ac554f6b28097fb1959c39945def Mon Sep 17 00:00:00 2001
From: mhpham23 <mhpham23@vt.edu>
Date: Mon, 24 Feb 2025 22:23:42 -0500
Subject: [PATCH 6/7] fix(pins_arduino.h): capitalize name

---
 variants/cyobot_v2_esp32s3/pins_arduino.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/variants/cyobot_v2_esp32s3/pins_arduino.h b/variants/cyobot_v2_esp32s3/pins_arduino.h
index f1dfab7c7db..7a25e3c4d57 100644
--- a/variants/cyobot_v2_esp32s3/pins_arduino.h
+++ b/variants/cyobot_v2_esp32s3/pins_arduino.h
@@ -3,8 +3,8 @@
 
 #include <stdint.h>
 
-#define USB_MANUFACTURER "CYObot"
-#define USB_PRODUCT      "CYObrain ESP32S3"
+#define USB_MANUFACTURER "CYOBot"
+#define USB_PRODUCT      "CYOBrain ESP32S3"
 #define USB_SERIAL       ""  // Empty string for MAC address
 
 

From 7ac185ba9761c9e494a60f823386bc95cbc3d096 Mon Sep 17 00:00:00 2001
From: "pre-commit-ci-lite[bot]"
 <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Date: Tue, 25 Feb 2025 08:01:06 +0000
Subject: [PATCH 7/7] ci(pre-commit): Apply automatic fixes

---
 variants/cyobot_v2_esp32s3/pins_arduino.h | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/variants/cyobot_v2_esp32s3/pins_arduino.h b/variants/cyobot_v2_esp32s3/pins_arduino.h
index 7a25e3c4d57..45f0968ef2a 100644
--- a/variants/cyobot_v2_esp32s3/pins_arduino.h
+++ b/variants/cyobot_v2_esp32s3/pins_arduino.h
@@ -7,13 +7,10 @@
 #define USB_PRODUCT      "CYOBrain ESP32S3"
 #define USB_SERIAL       ""  // Empty string for MAC address
 
-
 static const uint8_t BUTTON0 = 4;
 static const uint8_t BUTTON1 = 38;
 static const uint8_t LED = 24;
 
-
-
 static const uint8_t BAT_MEAS = 6;
 static const uint8_t CHAR_DET = 23;
 
@@ -25,11 +22,9 @@ static const uint8_t I2S0_DSDIN = 8;
 static const uint8_t I2S0_SCLK = 9;
 static const uint8_t I2S0_LRCK = 45;
 
-
 static const uint8_t SDA = 17;
 static const uint8_t SCL = 18;
 
-
 static const uint8_t SS = 5;
 static const uint8_t MOSI = 2;
 static const uint8_t MISO = 42;
@@ -54,5 +49,4 @@ static const uint8_t SD_SPI_CS = 14;
 
 static const uint8_t PA_CTRL = 25;
 
-
-#endif /* Pins_Arduino_h */
\ No newline at end of file
+#endif /* Pins_Arduino_h */