diff --git a/.github/workflows/build-clang-doxy.yml b/.github/workflows/build-clang-doxy.yml index 9d6057e99..e5be7e9cd 100644 --- a/.github/workflows/build-clang-doxy.yml +++ b/.github/workflows/build-clang-doxy.yml @@ -20,14 +20,14 @@ jobs: build-esp32sx-esptool: name: 🏗️ESP32-Sx(lvgl) runs-on: ubuntu-latest - continue-on-error: true strategy: fail-fast: false matrix: arduino-platform: [ "funhouse_noota", - "esp32s3_devkitc_1_n8" + "esp32s3_devkitc_1_n8", + "xiao_esp32s3", ] include: - offset: "0x0" @@ -35,6 +35,7 @@ jobs: arduino-platform: "funhouse_noota" steps: - name: "skip if unwanted" + continue-on-error: true if: | github.event_name == 'workflow_dispatch' && github.event.inputs.board != '' && @@ -159,14 +160,14 @@ jobs: - name: boot_app0 file from esp32 source bsp if: steps.check_files.outputs.files_exists == 'false' run: mv /home/runner/Arduino/hardware/espressif/esp32/tools/partitions/boot_app0.bin wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.boot_app0.bin - - name: Create combined binary using Esptool merge_bin + - name: Create combined binary using Esptool merge-bin run: | echo ${{ steps.get_board_json.outputs.boardJson }} echo ${{ fromJson(steps.get_board_json.outputs.boardJson) }} - python3 -m esptool --chip ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.chip}} merge_bin \ - --flash_mode ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashMode}} \ - --flash_freq ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashFreq}} \ - --flash_size ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashSize}} \ + python3 -m esptool --chip ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.chip}} merge-bin \ + --flash-mode ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashMode}} \ + --flash-freq ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashFreq}} \ + --flash-size ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashSize}} \ -o wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.combined.bin \ ${{ matrix.offset }} wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.bootloader.bin \ 0x8000 wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.partitions.bin \ @@ -194,7 +195,6 @@ jobs: build-esp32sx: name: 🏗️ESP32-Sx runs-on: ubuntu-latest - continue-on-error: true strategy: fail-fast: false matrix: @@ -216,6 +216,7 @@ jobs: ] steps: - name: "skip if unwanted" + continue-on-error: true if: | github.event_name == 'workflow_dispatch' && github.event.inputs.board != '' && @@ -306,7 +307,6 @@ jobs: build-esp32: name: 🏗️ESP32/Cx runs-on: ubuntu-latest - continue-on-error: true strategy: fail-fast: false matrix: @@ -329,6 +329,7 @@ jobs: arduino-platform: "wippersnapper_feather_esp32c6" steps: - name: "skip if unwanted" + continue-on-error: true if: | github.event_name == 'workflow_dispatch' && github.event.inputs.board != '' && @@ -391,7 +392,7 @@ jobs: mv nanopb/pb.h src/nanopb/nanopb.pb.h - name: Install Dependencies run: | - pip install esptool==4.6 + pip install esptool - name: build ESP32 platforms run: python3 ci/build_platform.py ${{ matrix.arduino-platform }} --build_timeout 48000 - name: Check artifacts @@ -429,14 +430,14 @@ jobs: echo $content echo EOF } >> "$GITHUB_OUTPUT" - - name: Create combined binary using Esptool merge_bin + - name: Create combined binary using Esptool merge-bin run: | echo ${{ steps.get_board_json.outputs.boardJson }} echo ${{ fromJson(steps.get_board_json.outputs.boardJson) }} - python3 -m esptool --chip ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.chip}} merge_bin \ - --flash_mode ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashMode}} \ - --flash_freq ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashFreq}} \ - --flash_size ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashSize}} \ + python3 -m esptool --chip ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.chip}} merge-bin \ + --flash-mode ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashMode}} \ + --flash-freq ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashFreq}} \ + --flash-size ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashSize}} \ -o wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.combined.bin \ ${{ matrix.offset }} wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.bootloader.bin \ 0x8000 wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.partitions.bin \ @@ -455,7 +456,6 @@ jobs: build-samd: name: 🏗️SAMD runs-on: ubuntu-latest - continue-on-error: true strategy: fail-fast: false matrix: @@ -467,6 +467,7 @@ jobs: ] steps: - name: "skip if unwanted" + continue-on-error: true if: | github.event_name == 'workflow_dispatch' && github.event.inputs.board != '' && @@ -542,13 +543,13 @@ jobs: build-rp2040: name: 🏗️RP2040 runs-on: ubuntu-latest - continue-on-error: true strategy: fail-fast: false matrix: arduino-platform: ["picow_rp2040_tinyusb", "picow_rp2350_tinyusb"] steps: - name: "skip if unwanted" + continue-on-error: true if: | github.event_name == 'workflow_dispatch' && github.event.inputs.board != '' && @@ -621,13 +622,13 @@ jobs: build-esp8266: name: 🏗️ESP8266 runs-on: ubuntu-latest - continue-on-error: true strategy: fail-fast: false matrix: arduino-platform: ["feather_esp8266"] steps: - name: "skip if unwanted" + continue-on-error: true if: | github.event_name == 'workflow_dispatch' && github.event.inputs.board != '' && @@ -707,7 +708,6 @@ jobs: build-esp32sx-dev: name: 🏗️ESP32-Sx(DEV) runs-on: ubuntu-latest - continue-on-error: true strategy: fail-fast: false matrix: @@ -725,6 +725,7 @@ jobs: ] steps: - name: "skip if unwanted" + continue-on-error: true if: | github.event_name == 'workflow_dispatch' && github.event.inputs.board != '' && @@ -815,7 +816,6 @@ jobs: build-esp32-dev: name: 🏗️ESP32/Cx(DEV) runs-on: ubuntu-latest - continue-on-error: true strategy: fail-fast: false matrix: @@ -829,6 +829,7 @@ jobs: arduino-platform: "wippersnapper_feather_esp32c6_debug" steps: - name: "skip if unwanted" + continue-on-error: true if: | github.event_name == 'workflow_dispatch' && github.event.inputs.board != '' && @@ -931,14 +932,14 @@ jobs: echo $content echo EOF } >> "$GITHUB_OUTPUT" - - name: Create combined binary using Esptool merge_bin + - name: Create combined binary using Esptool merge-bin run: | echo ${{ steps.get_board_json.outputs.boardJson }} echo ${{ fromJson(steps.get_board_json.outputs.boardJson) }} - python3 -m esptool --chip ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.chip}} merge_bin \ - --flash_mode ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashMode}} \ - --flash_freq ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashFreq}} \ - --flash_size ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashSize}} \ + python3 -m esptool --chip ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.chip}} merge-bin \ + --flash-mode ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashMode}} \ + --flash-freq ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashFreq}} \ + --flash-size ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashSize}} \ -o wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.combined.bin \ ${{ matrix.offset }} wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.bootloader.bin \ 0x8000 wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.partitions.bin \ diff --git a/examples/Wippersnapper_demo/.xiao_esp32s3.generate b/examples/Wippersnapper_demo/.xiao_esp32s3.generate new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/examples/Wippersnapper_demo/.xiao_esp32s3.generate @@ -0,0 +1 @@ + diff --git a/examples/wippersnapper_debug/.xiao_esp32s3.test.skip b/examples/wippersnapper_debug/.xiao_esp32s3.test.skip new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/examples/wippersnapper_debug/.xiao_esp32s3.test.skip @@ -0,0 +1 @@ + diff --git a/platformio.ini b/platformio.ini index 2613d2e96..638f11205 100644 --- a/platformio.ini +++ b/platformio.ini @@ -370,7 +370,7 @@ extra_scripts = pre:rename_usb_config.py extends = common:esp32 board = adafruit_qtpy_esp32s3_nopsram build_flags = -DARDUINO_ADAFRUIT_QTPY_ESP32S3_NOPSRAM -board_build.partitions = tinyuf2-partitions-4MB.csv +board_build.partitions = tinyuf2-partitions-8MB.csv extra_scripts = pre:rename_usb_config.py ; Adafruit QT Py ESP32-S3 with PSRAM @@ -435,6 +435,19 @@ build_flags = board_build.partitions = noota_ffat.csv ; extra_scripts = pre:rename_usb_config.py +; Seeed Studio ESP32 boards: + +; Xiao ESP32S3 N8R8 (SENSE) +[env:seeed-xiao_esp32s3_n8r8] +extends = common:esp32 +board = seeed_xiao_esp32s3 +build_flags = -DARDUINO_XIAO_ESP32S3 -DUSE_TINYUSB -DBOARD_HAS_PSRAM -DARDUINO_USB_CDC_ON_BOOT=1 -DARDUINO_USB_MODE=0 +board_build.partitions = tinyuf2-partitions-8MB.csv +extra_scripts = pre:rename_usb_config.py + + + + ; ESP8266 Boards ; Adafruit Feather HUZZAH ESP8266 diff --git a/src/Wippersnapper_Boards.h b/src/Wippersnapper_Boards.h index 84a07b896..13bbd00a7 100644 --- a/src/Wippersnapper_Boards.h +++ b/src/Wippersnapper_Boards.h @@ -208,6 +208,13 @@ #define USE_TINYUSB #define USE_STATUS_LED #define STATUS_LED_PIN LED_BUILTIN +#elif defined(ARDUINO_XIAO_ESP32S3) +#define BOARD_ID "seeed-xiao-esp32s3" +#define BOARD_HAS_PSRAM +#define USE_PSRAM +#define USE_TINYUSB +#define USE_STATUS_LED +#define STATUS_LED_PIN LED_BUILTIN #else #warning "Board type not identified within Wippersnapper_Boards.h!" #endif diff --git a/src/provisioning/tinyusb/Wippersnapper_FS.cpp b/src/provisioning/tinyusb/Wippersnapper_FS.cpp index a3e2dc0c8..3981c72a6 100644 --- a/src/provisioning/tinyusb/Wippersnapper_FS.cpp +++ b/src/provisioning/tinyusb/Wippersnapper_FS.cpp @@ -27,7 +27,8 @@ 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) + defined(ARDUINO_ADAFRUIT_QTPY_ESP32S3_N4R2) || \ + defined(ARDUINO_XIAO_ESP32S3) #include "Wippersnapper_FS.h" #include "print_dependencies.h" // On-board external flash (QSPI or SPI) macros should already @@ -552,7 +553,7 @@ bool Wippersnapper_FS::parseDisplayConfig(displayConfig &dispCfg, bool force_rec createDisplayConfig(); #endif } - + // Check if display_config.json file exists, if not, generate it if (!wipperFatFs.exists("/display_config.json")) { WS_DEBUG_PRINTLN("Could not find display_config.json, generating...");