From 9a144fdb01af3337244494d4cfe9b64dcb0033f1 Mon Sep 17 00:00:00 2001 From: Tyeth Gundry Date: Thu, 26 Jun 2025 22:03:41 +0100 Subject: [PATCH 01/14] Add ESP32S3 DevKitC-1 (N8 with 8MB flash and no PSRAM) --- examples/Wippersnapper_demo/.esp32s3_devkitc_1_n8.generate | 1 + .../.esp32s3_devkitc_1_n8_debug.test.skip | 1 + .../wippersnapper_debug/.esp32s3_devkitc_1_n8.test.skip | 1 + .../.esp32s3_devkitc_1_n8_debug.generate | 1 + src/Wippersnapper_Boards.h | 6 ++++++ src/provisioning/tinyusb/Wippersnapper_FS.cpp | 2 +- 6 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 examples/Wippersnapper_demo/.esp32s3_devkitc_1_n8.generate create mode 100644 examples/Wippersnapper_demo/.esp32s3_devkitc_1_n8_debug.test.skip create mode 100644 examples/wippersnapper_debug/.esp32s3_devkitc_1_n8.test.skip create mode 100644 examples/wippersnapper_debug/.esp32s3_devkitc_1_n8_debug.generate diff --git a/examples/Wippersnapper_demo/.esp32s3_devkitc_1_n8.generate b/examples/Wippersnapper_demo/.esp32s3_devkitc_1_n8.generate new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/examples/Wippersnapper_demo/.esp32s3_devkitc_1_n8.generate @@ -0,0 +1 @@ + diff --git a/examples/Wippersnapper_demo/.esp32s3_devkitc_1_n8_debug.test.skip b/examples/Wippersnapper_demo/.esp32s3_devkitc_1_n8_debug.test.skip new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/examples/Wippersnapper_demo/.esp32s3_devkitc_1_n8_debug.test.skip @@ -0,0 +1 @@ + diff --git a/examples/wippersnapper_debug/.esp32s3_devkitc_1_n8.test.skip b/examples/wippersnapper_debug/.esp32s3_devkitc_1_n8.test.skip new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/examples/wippersnapper_debug/.esp32s3_devkitc_1_n8.test.skip @@ -0,0 +1 @@ + diff --git a/examples/wippersnapper_debug/.esp32s3_devkitc_1_n8_debug.generate b/examples/wippersnapper_debug/.esp32s3_devkitc_1_n8_debug.generate new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/examples/wippersnapper_debug/.esp32s3_devkitc_1_n8_debug.generate @@ -0,0 +1 @@ + diff --git a/src/Wippersnapper_Boards.h b/src/Wippersnapper_Boards.h index 756e185fd..03e8baabc 100644 --- a/src/Wippersnapper_Boards.h +++ b/src/Wippersnapper_Boards.h @@ -51,6 +51,12 @@ #define STATUS_NEOPIXEL_PIN 45 #define STATUS_NEOPIXEL_NUM 1 #define USE_PSRAM ///< Board has PSRAM, use it for dynamic memory allocation +#elif defined(ARDUINO_ESP32S3) +#define BOARD_ID "esp32s3-devkitc-1-n8" +#define USE_TINYUSB +#define USE_STATUS_NEOPIXEL +#define STATUS_NEOPIXEL_PIN 48 +#define STATUS_NEOPIXEL_NUM 1 #elif defined(ARDUINO_METRO_ESP32S3) #define BOARD_ID "metroesp32s3" #define USE_TINYUSB diff --git a/src/provisioning/tinyusb/Wippersnapper_FS.cpp b/src/provisioning/tinyusb/Wippersnapper_FS.cpp index 83e4453b5..3c8c03097 100644 --- a/src/provisioning/tinyusb/Wippersnapper_FS.cpp +++ b/src/provisioning/tinyusb/Wippersnapper_FS.cpp @@ -22,7 +22,7 @@ defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S2_TFT) || \ defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S3_NOPSRAM) || \ defined(ARDUINO_ADAFRUIT_QTPY_ESP32S3_NOPSRAM) || \ - defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S3) || \ + defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S3) || defined(ARDUINO_ESP32S3) || \ defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S3_TFT) || \ defined(ARDUINO_ARCH_RP2040) || \ defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S3_REVTFT) || \ From 7ce619455d64b3a187f35f846628001e755bd0cb Mon Sep 17 00:00:00 2001 From: Tyeth Gundry Date: Thu, 26 Jun 2025 22:04:48 +0100 Subject: [PATCH 02/14] Add ESP32S3 build target in CI --- .github/workflows/build-clang-doxy.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build-clang-doxy.yml b/.github/workflows/build-clang-doxy.yml index e0d912256..a0578e10b 100644 --- a/.github/workflows/build-clang-doxy.yml +++ b/.github/workflows/build-clang-doxy.yml @@ -182,6 +182,7 @@ jobs: "magtag", "metroesp32s2", "metro_esp32s3", + "esp32s3_devkitc_1_n8", "feather_esp32s2", "feather_esp32s2_tft", "feather_esp32s2_reverse_tft", @@ -652,6 +653,7 @@ jobs: matrix: arduino-platform: [ + "esp32s3_devkitc_1_n8_debug", "feather_esp32s2_debug", "feather_esp32s2_tft_debug", "feather_esp32s3_debug", From 92d769e32133e53891c3630463dddba9753212e4 Mon Sep 17 00:00:00 2001 From: Tyeth Gundry Date: Thu, 26 Jun 2025 22:33:36 +0100 Subject: [PATCH 03/14] Correct ifdef for s3 devkit --- src/Wippersnapper_Boards.h | 2 +- src/provisioning/tinyusb/Wippersnapper_FS.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Wippersnapper_Boards.h b/src/Wippersnapper_Boards.h index 03e8baabc..b424c12e6 100644 --- a/src/Wippersnapper_Boards.h +++ b/src/Wippersnapper_Boards.h @@ -51,7 +51,7 @@ #define STATUS_NEOPIXEL_PIN 45 #define STATUS_NEOPIXEL_NUM 1 #define USE_PSRAM ///< Board has PSRAM, use it for dynamic memory allocation -#elif defined(ARDUINO_ESP32S3) +#elif defined(ARDUINO_ESP32S3_DEV) #define BOARD_ID "esp32s3-devkitc-1-n8" #define USE_TINYUSB #define USE_STATUS_NEOPIXEL diff --git a/src/provisioning/tinyusb/Wippersnapper_FS.cpp b/src/provisioning/tinyusb/Wippersnapper_FS.cpp index 3c8c03097..b3c25bd61 100644 --- a/src/provisioning/tinyusb/Wippersnapper_FS.cpp +++ b/src/provisioning/tinyusb/Wippersnapper_FS.cpp @@ -22,9 +22,9 @@ defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S2_TFT) || \ defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S3_NOPSRAM) || \ defined(ARDUINO_ADAFRUIT_QTPY_ESP32S3_NOPSRAM) || \ - defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S3) || defined(ARDUINO_ESP32S3) || \ + defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S3) || \ defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S3_TFT) || \ - defined(ARDUINO_ARCH_RP2040) || \ + defined(ARDUINO_ARCH_RP2040) || defined(ARDUINO_ESP32S3_DEV) || \ defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S3_REVTFT) || \ defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S2_REVTFT) || \ defined(ARDUINO_ADAFRUIT_QTPY_ESP32S3_N4R2) From f6af170e602485e8574ef4f1cffe5401d9328400 Mon Sep 17 00:00:00 2001 From: Tyeth Gundry Date: Thu, 26 Jun 2025 22:34:48 +0100 Subject: [PATCH 04/14] Add optional psram for esp32s3 dev --- src/Wippersnapper_Boards.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Wippersnapper_Boards.h b/src/Wippersnapper_Boards.h index b424c12e6..84a07b896 100644 --- a/src/Wippersnapper_Boards.h +++ b/src/Wippersnapper_Boards.h @@ -57,6 +57,9 @@ #define USE_STATUS_NEOPIXEL #define STATUS_NEOPIXEL_PIN 48 #define STATUS_NEOPIXEL_NUM 1 +#ifdef BOARD_HAS_PSRAM +#define USE_PSRAM ///< Board has PSRAM, use it for dynamic memory allocation +#endif #elif defined(ARDUINO_METRO_ESP32S3) #define BOARD_ID "metroesp32s3" #define USE_TINYUSB From ebf5e40eddca6c6c431d8a05fca2935583e596df Mon Sep 17 00:00:00 2001 From: tyeth Date: Fri, 4 Jul 2025 18:59:12 +0100 Subject: [PATCH 05/14] Update build flags for esp32s3 devkit --- platformio.ini | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/platformio.ini b/platformio.ini index bddb00c06..e96a48c45 100644 --- a/platformio.ini +++ b/platformio.ini @@ -407,7 +407,8 @@ extra_scripts = pre:rename_usb_config.py [env:espressif_esp32s3_devkitc_1_n8] extends = common:esp32 board = esp32-s3-devkitc-1 -build_flags = -DARDUINO_ESPRESSIF_ESP32S3_DEVKITC_1_N8 +build_flags = -DARDUINO_ESPRESSIF_ESP32S3_DEVKITC_1_N8 -DUSE_TINYUSB -DARDUINO_USB_MODE=0 -DARDUINO_USB_CDC_ON_BOOT=1 +board_build.partitions = tinyuf2-partitions-8MB.csv extra_scripts = pre:rename_usb_config.py ; Espressif ESP32-S3 NO PSRAM espressif_esp32s3_devkitc_1_n8 (DEBUG) @@ -417,6 +418,8 @@ board = esp32-s3-devkitc-1 build_type = debug build_flags = -DUSE_TINYUSB=1 + -DARDUINO_USB_MODE=0 + -DARDUINO_USB_CDC_ON_BOOT=1 -DARDUINO_ESPRESSIF_ESP32S3_DEVKITC_1_N8 -DNDEBUG=1 -DDEBUG=1 From 3be45da123a1bc6d75aeb7560b178e5fc4768115 Mon Sep 17 00:00:00 2001 From: tyeth Date: Sat, 5 Jul 2025 13:57:59 +0100 Subject: [PATCH 06/14] tested on win11 with 3.13 BSP, tinyUSB 3.7.0, and no rename_usb_config --- platformio.ini | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/platformio.ini b/platformio.ini index e96a48c45..25c1e9cc9 100644 --- a/platformio.ini +++ b/platformio.ini @@ -407,9 +407,9 @@ extra_scripts = pre:rename_usb_config.py [env:espressif_esp32s3_devkitc_1_n8] extends = common:esp32 board = esp32-s3-devkitc-1 -build_flags = -DARDUINO_ESPRESSIF_ESP32S3_DEVKITC_1_N8 -DUSE_TINYUSB -DARDUINO_USB_MODE=0 -DARDUINO_USB_CDC_ON_BOOT=1 +build_flags = -DARDUINO_ESPRESSIF_ESP32S3_DEVKITC_1_N8 -DUSE_TINYUSB=1 -DARDUINO_USB_MODE=0 -DARDUINO_USB_CDC_ON_BOOT=1 board_build.partitions = tinyuf2-partitions-8MB.csv -extra_scripts = pre:rename_usb_config.py +; extra_scripts = pre:rename_usb_config.py ; Espressif ESP32-S3 NO PSRAM espressif_esp32s3_devkitc_1_n8 (DEBUG) [env:espressif_esp32s3_devkitc_1_n8_debug] @@ -421,16 +421,13 @@ build_flags = -DARDUINO_USB_MODE=0 -DARDUINO_USB_CDC_ON_BOOT=1 -DARDUINO_ESPRESSIF_ESP32S3_DEVKITC_1_N8 - -DNDEBUG=1 -DDEBUG=1 -DESP_LOG_LEVEL=5 - -DARDUINO_CORE_DEBUG_LEVEL=5 - -DARDUINO_DEBUG_LEVEL=5 + -DARDUINO_CORE_LOG_LEVEL=5 -DARDUINO_LOG_LEVEL=5 - -DCORE_DEBUG_LEVEL=5 -DARDUHAL_LOG_LEVEL=5 board_build.partitions = tinyuf2-partitions-8MB.csv -extra_scripts = pre:rename_usb_config.py +; extra_scripts = pre:rename_usb_config.py ; ESP8266 Boards From 3a9137480df52d1d3a05915894c741695bf31b12 Mon Sep 17 00:00:00 2001 From: Tyeth Gundry Date: Mon, 7 Jul 2025 22:46:08 +0100 Subject: [PATCH 07/14] Move esp32s3 devkitc to zip build task --- .github/workflows/build-clang-doxy.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-clang-doxy.yml b/.github/workflows/build-clang-doxy.yml index a0578e10b..a5e4a821d 100644 --- a/.github/workflows/build-clang-doxy.yml +++ b/.github/workflows/build-clang-doxy.yml @@ -18,9 +18,15 @@ jobs: strategy: fail-fast: false matrix: - arduino-platform: ["funhouse_noota"] + arduino-platform: [ + "funhouse_noota", + "esp32s3_devkitc_1_n8" + ] include: - offset: "0x1000" + arduino-platform: "funhouse_noota" + - offset: "0x0" + arduino-platform: "esp32s3_devkitc_1_n8" steps: - uses: actions/setup-python@v5 with: @@ -182,7 +188,6 @@ jobs: "magtag", "metroesp32s2", "metro_esp32s3", - "esp32s3_devkitc_1_n8", "feather_esp32s2", "feather_esp32s2_tft", "feather_esp32s2_reverse_tft", From 5fa3e2dc0ce21d61373162f4c61bf63df1b7475b Mon Sep 17 00:00:00 2001 From: Tyeth Gundry Date: Mon, 7 Jul 2025 23:34:19 +0100 Subject: [PATCH 08/14] WIP: Swap boards branch to PR --- .github/workflows/build-clang-doxy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-clang-doxy.yml b/.github/workflows/build-clang-doxy.yml index a5e4a821d..f3e7d54e2 100644 --- a/.github/workflows/build-clang-doxy.yml +++ b/.github/workflows/build-clang-doxy.yml @@ -47,6 +47,7 @@ jobs: with: repository: adafruit/Wippersnapper_Boards path: ws-boards + ref: espressif-devkit-s3 - name: Install CI-Arduino run: bash ci/actions_install.sh - name: Install extra Arduino libraries From d109ea690556a6fac68becf41c07686b068c03cd Mon Sep 17 00:00:00 2001 From: Tyeth Gundry Date: Tue, 8 Jul 2025 12:08:38 +0100 Subject: [PATCH 09/14] feather 8mb partition --- platformio.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/platformio.ini b/platformio.ini index 25c1e9cc9..1500d573f 100644 --- a/platformio.ini +++ b/platformio.ini @@ -232,6 +232,7 @@ extra_scripts = pre:rename_usb_config.py extends = common:esp32 board = adafruit_feather_esp32s3_nopsram build_flags = -DARDUINO_ADAFRUIT_FEATHER_ESP32S3_NOPSRAM +board_build.partitions = tinyuf2-partitions-8MB.csv extra_scripts = pre:rename_usb_config.py ; Adafruit Feather ESP32-S3 TFT From 7f491da2f8a059b9f17f6a2cea9c7ee0245eae4c Mon Sep 17 00:00:00 2001 From: Tyeth Gundry Date: Tue, 8 Jul 2025 14:29:38 +0100 Subject: [PATCH 10/14] Update offset for esp32s3 devkit --- .github/workflows/build-clang-doxy.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-clang-doxy.yml b/.github/workflows/build-clang-doxy.yml index f3e7d54e2..c5f234dc2 100644 --- a/.github/workflows/build-clang-doxy.yml +++ b/.github/workflows/build-clang-doxy.yml @@ -23,9 +23,10 @@ jobs: "esp32s3_devkitc_1_n8" ] include: + - offset: "0x0" - offset: "0x1000" arduino-platform: "funhouse_noota" - - offset: "0x0" + - offset: "0x1000" arduino-platform: "esp32s3_devkitc_1_n8" steps: - uses: actions/setup-python@v5 From aa2d7d40c3de40826a20c9de414b6bef448ee3d4 Mon Sep 17 00:00:00 2001 From: Tyeth Gundry Date: Tue, 8 Jul 2025 14:30:48 +0100 Subject: [PATCH 11/14] Match Arduino-CLI partitions for S3 devkit --- platformio.ini | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/platformio.ini b/platformio.ini index 1500d573f..147e20941 100644 --- a/platformio.ini +++ b/platformio.ini @@ -409,7 +409,8 @@ extra_scripts = pre:rename_usb_config.py extends = common:esp32 board = esp32-s3-devkitc-1 build_flags = -DARDUINO_ESPRESSIF_ESP32S3_DEVKITC_1_N8 -DUSE_TINYUSB=1 -DARDUINO_USB_MODE=0 -DARDUINO_USB_CDC_ON_BOOT=1 -board_build.partitions = tinyuf2-partitions-8MB.csv +board_build.partitions = noota_ffat.csv +; board_build.partitions = tinyuf2-partitions-8MB.csv ; extra_scripts = pre:rename_usb_config.py ; Espressif ESP32-S3 NO PSRAM espressif_esp32s3_devkitc_1_n8 (DEBUG) @@ -427,7 +428,8 @@ build_flags = -DARDUINO_CORE_LOG_LEVEL=5 -DARDUINO_LOG_LEVEL=5 -DARDUHAL_LOG_LEVEL=5 -board_build.partitions = tinyuf2-partitions-8MB.csv +; board_build.partitions = tinyuf2-partitions-8MB.csv +board_build.partitions = noota_ffat.csv ; extra_scripts = pre:rename_usb_config.py ; ESP8266 Boards From f7ec0e5d4a25968899682abdbc24a3f4f38d973f Mon Sep 17 00:00:00 2001 From: Tyeth Gundry Date: Tue, 8 Jul 2025 15:59:15 +0100 Subject: [PATCH 12/14] reset bootloader offset to 0x0 for esp32s3 devkit --- .github/workflows/build-clang-doxy.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-clang-doxy.yml b/.github/workflows/build-clang-doxy.yml index c5f234dc2..3da612e97 100644 --- a/.github/workflows/build-clang-doxy.yml +++ b/.github/workflows/build-clang-doxy.yml @@ -18,16 +18,15 @@ jobs: strategy: fail-fast: false matrix: - arduino-platform: [ - "funhouse_noota", - "esp32s3_devkitc_1_n8" + arduino-platform: + [ + "funhouse_noota", + "esp32s3_devkitc_1_n8" ] include: - offset: "0x0" - offset: "0x1000" arduino-platform: "funhouse_noota" - - offset: "0x1000" - arduino-platform: "esp32s3_devkitc_1_n8" steps: - uses: actions/setup-python@v5 with: From 7b83905e55f827e67a119c74d8d9bf90fff287c5 Mon Sep 17 00:00:00 2001 From: Tyeth Gundry Date: Wed, 9 Jul 2025 14:07:40 +0100 Subject: [PATCH 13/14] Add auto created merged bin to web-native-usb assets --- .github/workflows/build-clang-doxy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-clang-doxy.yml b/.github/workflows/build-clang-doxy.yml index 3da612e97..8b1edb8cd 100644 --- a/.github/workflows/build-clang-doxy.yml +++ b/.github/workflows/build-clang-doxy.yml @@ -112,6 +112,7 @@ jobs: mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.elf wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.elf mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.map wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.map mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.bootloader.bin wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.bootloader.bin + mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.merged.bin wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.merged_auto.bin mv examples/Wippersnapper_demo/build/*/Wippersnapper_demo.ino.partitions.bin wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.partitions.bin - name: Get Board Flash Parameters id: get_board_json From 6ccd81433a5791ac58ada6473fa115c2579da2d9 Mon Sep 17 00:00:00 2001 From: Tyeth Gundry Date: Thu, 10 Jul 2025 18:57:30 +0100 Subject: [PATCH 14/14] Switch board repo back to main --- .github/workflows/build-clang-doxy.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build-clang-doxy.yml b/.github/workflows/build-clang-doxy.yml index 8b1edb8cd..7a5ef627e 100644 --- a/.github/workflows/build-clang-doxy.yml +++ b/.github/workflows/build-clang-doxy.yml @@ -47,7 +47,6 @@ jobs: with: repository: adafruit/Wippersnapper_Boards path: ws-boards - ref: espressif-devkit-s3 - name: Install CI-Arduino run: bash ci/actions_install.sh - name: Install extra Arduino libraries