Skip to content

Commit b637366

Browse files
authored
Merge pull request #764 from adafruit/xiao-s3
Xiao s3
2 parents 9a80336 + 3308d72 commit b637366

File tree

6 files changed

+51
-27
lines changed

6 files changed

+51
-27
lines changed

.github/workflows/build-clang-doxy.yml

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -20,21 +20,22 @@ jobs:
2020
build-esp32sx-esptool:
2121
name: 🏗️ESP32-Sx(lvgl)
2222
runs-on: ubuntu-latest
23-
continue-on-error: true
2423
strategy:
2524
fail-fast: false
2625
matrix:
2726
arduino-platform:
2827
[
2928
"funhouse_noota",
30-
"esp32s3_devkitc_1_n8"
29+
"esp32s3_devkitc_1_n8",
30+
"xiao_esp32s3",
3131
]
3232
include:
3333
- offset: "0x0"
3434
- offset: "0x1000"
3535
arduino-platform: "funhouse_noota"
3636
steps:
3737
- name: "skip if unwanted"
38+
continue-on-error: true
3839
if: |
3940
github.event_name == 'workflow_dispatch' &&
4041
github.event.inputs.board != '' &&
@@ -159,14 +160,14 @@ jobs:
159160
- name: boot_app0 file from esp32 source bsp
160161
if: steps.check_files.outputs.files_exists == 'false'
161162
run: mv /home/runner/Arduino/hardware/espressif/esp32/tools/partitions/boot_app0.bin wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.boot_app0.bin
162-
- name: Create combined binary using Esptool merge_bin
163+
- name: Create combined binary using Esptool merge-bin
163164
run: |
164165
echo ${{ steps.get_board_json.outputs.boardJson }}
165166
echo ${{ fromJson(steps.get_board_json.outputs.boardJson) }}
166-
python3 -m esptool --chip ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.chip}} merge_bin \
167-
--flash_mode ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashMode}} \
168-
--flash_freq ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashFreq}} \
169-
--flash_size ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashSize}} \
167+
python3 -m esptool --chip ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.chip}} merge-bin \
168+
--flash-mode ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashMode}} \
169+
--flash-freq ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashFreq}} \
170+
--flash-size ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashSize}} \
170171
-o wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.combined.bin \
171172
${{ matrix.offset }} wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.bootloader.bin \
172173
0x8000 wippersnapper.${{ matrix.arduino-platform }}.fatfs.${{ env.WS_VERSION }}.partitions.bin \
@@ -194,7 +195,6 @@ jobs:
194195
build-esp32sx:
195196
name: 🏗️ESP32-Sx
196197
runs-on: ubuntu-latest
197-
continue-on-error: true
198198
strategy:
199199
fail-fast: false
200200
matrix:
@@ -216,6 +216,7 @@ jobs:
216216
]
217217
steps:
218218
- name: "skip if unwanted"
219+
continue-on-error: true
219220
if: |
220221
github.event_name == 'workflow_dispatch' &&
221222
github.event.inputs.board != '' &&
@@ -306,7 +307,6 @@ jobs:
306307
build-esp32:
307308
name: 🏗️ESP32/Cx
308309
runs-on: ubuntu-latest
309-
continue-on-error: true
310310
strategy:
311311
fail-fast: false
312312
matrix:
@@ -329,6 +329,7 @@ jobs:
329329
arduino-platform: "wippersnapper_feather_esp32c6"
330330
steps:
331331
- name: "skip if unwanted"
332+
continue-on-error: true
332333
if: |
333334
github.event_name == 'workflow_dispatch' &&
334335
github.event.inputs.board != '' &&
@@ -391,7 +392,7 @@ jobs:
391392
mv nanopb/pb.h src/nanopb/nanopb.pb.h
392393
- name: Install Dependencies
393394
run: |
394-
pip install esptool==4.6
395+
pip install esptool
395396
- name: build ESP32 platforms
396397
run: python3 ci/build_platform.py ${{ matrix.arduino-platform }} --build_timeout 48000
397398
- name: Check artifacts
@@ -429,14 +430,14 @@ jobs:
429430
echo $content
430431
echo EOF
431432
} >> "$GITHUB_OUTPUT"
432-
- name: Create combined binary using Esptool merge_bin
433+
- name: Create combined binary using Esptool merge-bin
433434
run: |
434435
echo ${{ steps.get_board_json.outputs.boardJson }}
435436
echo ${{ fromJson(steps.get_board_json.outputs.boardJson) }}
436-
python3 -m esptool --chip ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.chip}} merge_bin \
437-
--flash_mode ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashMode}} \
438-
--flash_freq ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashFreq}} \
439-
--flash_size ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashSize}} \
437+
python3 -m esptool --chip ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.chip}} merge-bin \
438+
--flash-mode ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashMode}} \
439+
--flash-freq ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashFreq}} \
440+
--flash-size ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashSize}} \
440441
-o wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.combined.bin \
441442
${{ matrix.offset }} wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.bootloader.bin \
442443
0x8000 wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.partitions.bin \
@@ -455,7 +456,6 @@ jobs:
455456
build-samd:
456457
name: 🏗️SAMD
457458
runs-on: ubuntu-latest
458-
continue-on-error: true
459459
strategy:
460460
fail-fast: false
461461
matrix:
@@ -467,6 +467,7 @@ jobs:
467467
]
468468
steps:
469469
- name: "skip if unwanted"
470+
continue-on-error: true
470471
if: |
471472
github.event_name == 'workflow_dispatch' &&
472473
github.event.inputs.board != '' &&
@@ -542,13 +543,13 @@ jobs:
542543
build-rp2040:
543544
name: 🏗️RP2040
544545
runs-on: ubuntu-latest
545-
continue-on-error: true
546546
strategy:
547547
fail-fast: false
548548
matrix:
549549
arduino-platform: ["picow_rp2040_tinyusb", "picow_rp2350_tinyusb"]
550550
steps:
551551
- name: "skip if unwanted"
552+
continue-on-error: true
552553
if: |
553554
github.event_name == 'workflow_dispatch' &&
554555
github.event.inputs.board != '' &&
@@ -621,13 +622,13 @@ jobs:
621622
build-esp8266:
622623
name: 🏗️ESP8266
623624
runs-on: ubuntu-latest
624-
continue-on-error: true
625625
strategy:
626626
fail-fast: false
627627
matrix:
628628
arduino-platform: ["feather_esp8266"]
629629
steps:
630630
- name: "skip if unwanted"
631+
continue-on-error: true
631632
if: |
632633
github.event_name == 'workflow_dispatch' &&
633634
github.event.inputs.board != '' &&
@@ -707,7 +708,6 @@ jobs:
707708
build-esp32sx-dev:
708709
name: 🏗️ESP32-Sx(DEV)
709710
runs-on: ubuntu-latest
710-
continue-on-error: true
711711
strategy:
712712
fail-fast: false
713713
matrix:
@@ -725,6 +725,7 @@ jobs:
725725
]
726726
steps:
727727
- name: "skip if unwanted"
728+
continue-on-error: true
728729
if: |
729730
github.event_name == 'workflow_dispatch' &&
730731
github.event.inputs.board != '' &&
@@ -815,7 +816,6 @@ jobs:
815816
build-esp32-dev:
816817
name: 🏗️ESP32/Cx(DEV)
817818
runs-on: ubuntu-latest
818-
continue-on-error: true
819819
strategy:
820820
fail-fast: false
821821
matrix:
@@ -829,6 +829,7 @@ jobs:
829829
arduino-platform: "wippersnapper_feather_esp32c6_debug"
830830
steps:
831831
- name: "skip if unwanted"
832+
continue-on-error: true
832833
if: |
833834
github.event_name == 'workflow_dispatch' &&
834835
github.event.inputs.board != '' &&
@@ -931,14 +932,14 @@ jobs:
931932
echo $content
932933
echo EOF
933934
} >> "$GITHUB_OUTPUT"
934-
- name: Create combined binary using Esptool merge_bin
935+
- name: Create combined binary using Esptool merge-bin
935936
run: |
936937
echo ${{ steps.get_board_json.outputs.boardJson }}
937938
echo ${{ fromJson(steps.get_board_json.outputs.boardJson) }}
938-
python3 -m esptool --chip ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.chip}} merge_bin \
939-
--flash_mode ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashMode}} \
940-
--flash_freq ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashFreq}} \
941-
--flash_size ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashSize}} \
939+
python3 -m esptool --chip ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.chip}} merge-bin \
940+
--flash-mode ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashMode}} \
941+
--flash-freq ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashFreq}} \
942+
--flash-size ${{fromJson(steps.get_board_json.outputs.boardJson).esptool.flashSize}} \
942943
-o wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.combined.bin \
943944
${{ matrix.offset }} wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.bootloader.bin \
944945
0x8000 wippersnapper.${{ matrix.arduino-platform }}.littlefs.${{ env.WS_VERSION }}.partitions.bin \
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+

platformio.ini

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -436,6 +436,19 @@ build_flags =
436436
board_build.partitions = noota_ffat.csv
437437
; extra_scripts = pre:rename_usb_config.py
438438

439+
; Seeed Studio ESP32 boards:
440+
441+
; Xiao ESP32S3 N8R8 (SENSE)
442+
[env:seeed-xiao_esp32s3_n8r8]
443+
extends = common:esp32
444+
board = seeed_xiao_esp32s3
445+
build_flags = -DARDUINO_XIAO_ESP32S3 -DUSE_TINYUSB -DBOARD_HAS_PSRAM -DARDUINO_USB_CDC_ON_BOOT=1 -DARDUINO_USB_MODE=0
446+
board_build.partitions = tinyuf2-partitions-8MB.csv
447+
extra_scripts = pre:rename_usb_config.py
448+
449+
450+
451+
439452
; ESP8266 Boards
440453

441454
; Adafruit Feather HUZZAH ESP8266

src/Wippersnapper_Boards.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,13 @@
208208
#define USE_TINYUSB
209209
#define USE_STATUS_LED
210210
#define STATUS_LED_PIN LED_BUILTIN
211+
#elif defined(ARDUINO_XIAO_ESP32S3)
212+
#define BOARD_ID "seeed-xiao-esp32s3"
213+
#define BOARD_HAS_PSRAM
214+
#define USE_PSRAM
215+
#define USE_TINYUSB
216+
#define USE_STATUS_LED
217+
#define STATUS_LED_PIN LED_BUILTIN
211218
#else
212219
#warning "Board type not identified within Wippersnapper_Boards.h!"
213220
#endif

src/provisioning/tinyusb/Wippersnapper_FS.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@
2727
defined(ARDUINO_ARCH_RP2040) || defined(ARDUINO_ESP32S3_DEV) || \
2828
defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S3_REVTFT) || \
2929
defined(ARDUINO_ADAFRUIT_FEATHER_ESP32S2_REVTFT) || \
30-
defined(ARDUINO_ADAFRUIT_QTPY_ESP32S3_N4R2)
30+
defined(ARDUINO_ADAFRUIT_QTPY_ESP32S3_N4R2) || \
31+
defined(ARDUINO_XIAO_ESP32S3)
3132
#include "Wippersnapper_FS.h"
3233
#include "print_dependencies.h"
3334
// On-board external flash (QSPI or SPI) macros should already
@@ -552,7 +553,7 @@ bool Wippersnapper_FS::parseDisplayConfig(displayConfig &dispCfg, bool force_rec
552553
createDisplayConfig();
553554
#endif
554555
}
555-
556+
556557
// Check if display_config.json file exists, if not, generate it
557558
if (!wipperFatFs.exists("/display_config.json")) {
558559
WS_DEBUG_PRINTLN("Could not find display_config.json, generating...");

0 commit comments

Comments
 (0)