Skip to content

Commit 298442d

Browse files
new variant Seeed XIAO_ESP32S3 (#7971)
* new variant Seeed XIAO_ESP32S3 * add pin define for camera example * Remove excess comments and fix minor errors --------- Co-authored-by: Jan Procházka <[email protected]>
1 parent bfe0306 commit 298442d

File tree

7 files changed

+275
-1
lines changed

7 files changed

+275
-1
lines changed

Diff for: boards.txt

+181-1
Original file line numberDiff line numberDiff line change
@@ -19779,7 +19779,7 @@ AirM2M_CORE_ESP32C3.menu.EraseFlash.all.upload.erase_cmd=-e
1977919779

1978019780
XIAO_ESP32C3.name=XIAO_ESP32C3
1978119781
XIAO_ESP32C3.vid.0=0x2886
19782-
XIAO_ESP32C3.pid.0=0x0047
19782+
XIAO_ESP32C3.pid.0=0x0046
1978319783

1978419784
XIAO_ESP32C3.bootloader.tool=esptool_py
1978519785
XIAO_ESP32C3.bootloader.tool.default=esptool_py
@@ -19931,6 +19931,186 @@ XIAO_ESP32C3.menu.EraseFlash.all.upload.erase_cmd=-e
1993119931

1993219932
##############################################################
1993319933

19934+
19935+
XIAO_ESP32S3.name=XIAO_ESP32S3
19936+
XIAO_ESP32S3.vid.0=0x2886
19937+
XIAO_ESP32S3.pid.0=0x0056
19938+
XIAO_ESP32S3.vid.1=0x2886
19939+
XIAO_ESP32S3.pid.1=0x8056
19940+
19941+
XIAO_ESP32S3.bootloader.tool=esptool_py
19942+
XIAO_ESP32S3.bootloader.tool.default=esptool_py
19943+
19944+
XIAO_ESP32S3.upload.tool=esptool_py
19945+
XIAO_ESP32S3.upload.tool.default=esptool_py
19946+
XIAO_ESP32S3.upload.tool.network=esp_ota
19947+
19948+
XIAO_ESP32S3.upload.maximum_size=1310720
19949+
XIAO_ESP32S3.upload.maximum_data_size=327680
19950+
XIAO_ESP32S3.upload.flags=
19951+
XIAO_ESP32S3.upload.extra_flags=
19952+
XIAO_ESP32S3.upload.use_1200bps_touch=false
19953+
XIAO_ESP32S3.upload.wait_for_upload_port=false
19954+
19955+
XIAO_ESP32S3.serial.disableDTR=false
19956+
XIAO_ESP32S3.serial.disableRTS=false
19957+
19958+
XIAO_ESP32S3.build.tarch=xtensa
19959+
XIAO_ESP32S3.build.bootloader_addr=0x0
19960+
XIAO_ESP32S3.build.target=esp32s3
19961+
XIAO_ESP32S3.build.mcu=esp32s3
19962+
XIAO_ESP32S3.build.core=esp32
19963+
XIAO_ESP32S3.build.variant=XIAO_ESP32S3
19964+
XIAO_ESP32S3.build.board=XIAO_ESP32S3
19965+
19966+
XIAO_ESP32S3.build.usb_mode=0
19967+
XIAO_ESP32S3.build.cdc_on_boot=1
19968+
XIAO_ESP32S3.build.msc_on_boot=0
19969+
XIAO_ESP32S3.build.dfu_on_boot=0
19970+
XIAO_ESP32S3.build.f_cpu=240000000L
19971+
XIAO_ESP32S3.build.flash_size=8MB
19972+
XIAO_ESP32S3.build.flash_freq=80m
19973+
XIAO_ESP32S3.build.flash_mode=dio
19974+
XIAO_ESP32S3.build.boot=qio
19975+
XIAO_ESP32S3.build.boot_freq=80m
19976+
XIAO_ESP32S3.build.partitions=default_8MB
19977+
XIAO_ESP32S3.build.defines=
19978+
XIAO_ESP32S3.build.loop_core=
19979+
XIAO_ESP32S3.build.event_core=
19980+
XIAO_ESP32S3.build.psram_type=qspi
19981+
XIAO_ESP32S3.build.memory_type={build.boot}_{build.psram_type}
19982+
19983+
XIAO_ESP32S3.menu.JTAGAdapter.default=Disabled
19984+
XIAO_ESP32S3.menu.JTAGAdapter.default.build.copy_jtag_files=0
19985+
XIAO_ESP32S3.menu.JTAGAdapter.builtin=Integrated USB JTAG
19986+
XIAO_ESP32S3.menu.JTAGAdapter.builtin.build.openocdscript=esp32s3-builtin.cfg
19987+
XIAO_ESP32S3.menu.JTAGAdapter.builtin.build.copy_jtag_files=1
19988+
XIAO_ESP32S3.menu.JTAGAdapter.external=FTDI Adapter
19989+
XIAO_ESP32S3.menu.JTAGAdapter.external.build.openocdscript=esp32s3-ftdi.cfg
19990+
XIAO_ESP32S3.menu.JTAGAdapter.external.build.copy_jtag_files=1
19991+
XIAO_ESP32S3.menu.JTAGAdapter.bridge=ESP USB Bridge
19992+
XIAO_ESP32S3.menu.JTAGAdapter.bridge.build.openocdscript=esp32s3-bridge.cfg
19993+
XIAO_ESP32S3.menu.JTAGAdapter.bridge.build.copy_jtag_files=1
19994+
19995+
XIAO_ESP32S3.menu.PSRAM.disabled=Disabled
19996+
XIAO_ESP32S3.menu.PSRAM.disabled.build.defines=
19997+
XIAO_ESP32S3.menu.PSRAM.disabled.build.psram_type=qspi
19998+
XIAO_ESP32S3.menu.PSRAM.opi=OPI PSRAM
19999+
XIAO_ESP32S3.menu.PSRAM.opi.build.defines=-DBOARD_HAS_PSRAM
20000+
XIAO_ESP32S3.menu.PSRAM.opi.build.psram_type=opi
20001+
20002+
XIAO_ESP32S3.menu.FlashMode.qio=QIO 80MHz
20003+
XIAO_ESP32S3.menu.FlashMode.qio.build.flash_mode=dio
20004+
XIAO_ESP32S3.menu.FlashMode.qio.build.boot=qio
20005+
XIAO_ESP32S3.menu.FlashMode.qio.build.boot_freq=80m
20006+
XIAO_ESP32S3.menu.FlashMode.qio.build.flash_freq=80m
20007+
XIAO_ESP32S3.menu.FlashMode.dio=DIO 80MHz
20008+
XIAO_ESP32S3.menu.FlashMode.dio.build.flash_mode=dio
20009+
XIAO_ESP32S3.menu.FlashMode.dio.build.boot=dio
20010+
XIAO_ESP32S3.menu.FlashMode.dio.build.boot_freq=80m
20011+
XIAO_ESP32S3.menu.FlashMode.dio.build.flash_freq=80m
20012+
20013+
XIAO_ESP32S3.menu.FlashSize.8M=8MB (64Mb)
20014+
XIAO_ESP32S3.menu.FlashSize.8M.build.flash_size=8MB
20015+
XIAO_ESP32S3.menu.FlashSize.8M.build.partitions=default_8MB
20016+
20017+
XIAO_ESP32S3.menu.LoopCore.1=Core 1
20018+
XIAO_ESP32S3.menu.LoopCore.1.build.loop_core=-DARDUINO_RUNNING_CORE=1
20019+
XIAO_ESP32S3.menu.LoopCore.0=Core 0
20020+
XIAO_ESP32S3.menu.LoopCore.0.build.loop_core=-DARDUINO_RUNNING_CORE=0
20021+
20022+
XIAO_ESP32S3.menu.EventsCore.1=Core 1
20023+
XIAO_ESP32S3.menu.EventsCore.1.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=1
20024+
XIAO_ESP32S3.menu.EventsCore.0=Core 0
20025+
XIAO_ESP32S3.menu.EventsCore.0.build.event_core=-DARDUINO_EVENT_RUNNING_CORE=0
20026+
20027+
XIAO_ESP32S3.menu.USBMode.hwcdc=Hardware CDC and JTAG
20028+
XIAO_ESP32S3.menu.USBMode.hwcdc.build.usb_mode=1
20029+
XIAO_ESP32S3.menu.USBMode.default=USB-OTG (TinyUSB)
20030+
XIAO_ESP32S3.menu.USBMode.default.build.usb_mode=0
20031+
20032+
XIAO_ESP32S3.menu.CDCOnBoot.default=Enabled
20033+
XIAO_ESP32S3.menu.CDCOnBoot.default.build.cdc_on_boot=1
20034+
XIAO_ESP32S3.menu.CDCOnBoot.cdc=Disabled
20035+
XIAO_ESP32S3.menu.CDCOnBoot.cdc.build.cdc_on_boot=0
20036+
20037+
XIAO_ESP32S3.menu.MSCOnBoot.default=Disabled
20038+
XIAO_ESP32S3.menu.MSCOnBoot.default.build.msc_on_boot=0
20039+
XIAO_ESP32S3.menu.MSCOnBoot.msc=Enabled (Requires USB-OTG Mode)
20040+
XIAO_ESP32S3.menu.MSCOnBoot.msc.build.msc_on_boot=1
20041+
20042+
XIAO_ESP32S3.menu.DFUOnBoot.default=Disabled
20043+
XIAO_ESP32S3.menu.DFUOnBoot.default.build.dfu_on_boot=0
20044+
XIAO_ESP32S3.menu.DFUOnBoot.dfu=Enabled (Requires USB-OTG Mode)
20045+
XIAO_ESP32S3.menu.DFUOnBoot.dfu.build.dfu_on_boot=1
20046+
20047+
XIAO_ESP32S3.menu.UploadMode.default=UART0 / Hardware CDC
20048+
XIAO_ESP32S3.menu.UploadMode.default.upload.use_1200bps_touch=false
20049+
XIAO_ESP32S3.menu.UploadMode.default.upload.wait_for_upload_port=false
20050+
XIAO_ESP32S3.menu.UploadMode.cdc=USB-OTG CDC (TinyUSB)
20051+
XIAO_ESP32S3.menu.UploadMode.cdc.upload.use_1200bps_touch=true
20052+
XIAO_ESP32S3.menu.UploadMode.cdc.upload.wait_for_upload_port=true
20053+
20054+
XIAO_ESP32S3.menu.PartitionScheme.default_8MB=Default with spiffs (3MB APP/1.5MB SPIFFS)
20055+
XIAO_ESP32S3.menu.PartitionScheme.default_8MB.build.partitions=default_8MB
20056+
XIAO_ESP32S3.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336
20057+
XIAO_ESP32S3.menu.PartitionScheme.max_app_8MB=Maximum APP (7.9MB APP No OTA/No FS)
20058+
XIAO_ESP32S3.menu.PartitionScheme.max_app_8MB.build.partitions=max_app_8MB
20059+
XIAO_ESP32S3.menu.PartitionScheme.max_app_8MB.upload.maximum_size=8257536
20060+
XIAO_ESP32S3.menu.PartitionScheme.tinyuf2=TinyUF2 8MB (2MB APP/3.7MB FFAT)
20061+
XIAO_ESP32S3.menu.PartitionScheme.tinyuf2.build.custom_bootloader=bootloader-tinyuf2
20062+
XIAO_ESP32S3.menu.PartitionScheme.tinyuf2.build.custom_partitions=partitions-8MB-tinyuf2
20063+
XIAO_ESP32S3.menu.PartitionScheme.tinyuf2.upload.maximum_size=2097152
20064+
XIAO_ESP32S3.menu.PartitionScheme.tinyuf2.upload.extra_flags=0x410000 "{runtime.platform.path}/variants/{build.variant}/tinyuf2.bin"
20065+
20066+
XIAO_ESP32S3.menu.CPUFreq.240=240MHz (WiFi)
20067+
XIAO_ESP32S3.menu.CPUFreq.240.build.f_cpu=240000000L
20068+
XIAO_ESP32S3.menu.CPUFreq.160=160MHz (WiFi)
20069+
XIAO_ESP32S3.menu.CPUFreq.160.build.f_cpu=160000000L
20070+
XIAO_ESP32S3.menu.CPUFreq.80=80MHz (WiFi)
20071+
XIAO_ESP32S3.menu.CPUFreq.80.build.f_cpu=80000000L
20072+
XIAO_ESP32S3.menu.CPUFreq.40=40MHz
20073+
XIAO_ESP32S3.menu.CPUFreq.40.build.f_cpu=40000000L
20074+
XIAO_ESP32S3.menu.CPUFreq.20=20MHz
20075+
XIAO_ESP32S3.menu.CPUFreq.20.build.f_cpu=20000000L
20076+
XIAO_ESP32S3.menu.CPUFreq.10=10MHz
20077+
XIAO_ESP32S3.menu.CPUFreq.10.build.f_cpu=10000000L
20078+
20079+
XIAO_ESP32S3.menu.UploadSpeed.921600=921600
20080+
XIAO_ESP32S3.menu.UploadSpeed.921600.upload.speed=921600
20081+
XIAO_ESP32S3.menu.UploadSpeed.115200=115200
20082+
XIAO_ESP32S3.menu.UploadSpeed.115200.upload.speed=115200
20083+
XIAO_ESP32S3.menu.UploadSpeed.256000.windows=256000
20084+
XIAO_ESP32S3.menu.UploadSpeed.256000.upload.speed=256000
20085+
XIAO_ESP32S3.menu.UploadSpeed.230400.windows.upload.speed=256000
20086+
XIAO_ESP32S3.menu.UploadSpeed.230400=230400
20087+
XIAO_ESP32S3.menu.UploadSpeed.230400.upload.speed=230400
20088+
XIAO_ESP32S3.menu.UploadSpeed.460800.linux=460800
20089+
XIAO_ESP32S3.menu.UploadSpeed.460800.macosx=460800
20090+
XIAO_ESP32S3.menu.UploadSpeed.460800.upload.speed=460800
20091+
XIAO_ESP32S3.menu.UploadSpeed.512000.windows=512000
20092+
XIAO_ESP32S3.menu.UploadSpeed.512000.upload.speed=512000
20093+
20094+
XIAO_ESP32S3.menu.DebugLevel.none=None
20095+
XIAO_ESP32S3.menu.DebugLevel.none.build.code_debug=0
20096+
XIAO_ESP32S3.menu.DebugLevel.error=Error
20097+
XIAO_ESP32S3.menu.DebugLevel.error.build.code_debug=1
20098+
XIAO_ESP32S3.menu.DebugLevel.warn=Warn
20099+
XIAO_ESP32S3.menu.DebugLevel.warn.build.code_debug=2
20100+
XIAO_ESP32S3.menu.DebugLevel.info=Info
20101+
XIAO_ESP32S3.menu.DebugLevel.info.build.code_debug=3
20102+
XIAO_ESP32S3.menu.DebugLevel.debug=Debug
20103+
XIAO_ESP32S3.menu.DebugLevel.debug.build.code_debug=4
20104+
XIAO_ESP32S3.menu.DebugLevel.verbose=Verbose
20105+
XIAO_ESP32S3.menu.DebugLevel.verbose.build.code_debug=5
20106+
20107+
XIAO_ESP32S3.menu.EraseFlash.none=Disabled
20108+
XIAO_ESP32S3.menu.EraseFlash.none.upload.erase_cmd=
20109+
XIAO_ESP32S3.menu.EraseFlash.all=Enabled
20110+
XIAO_ESP32S3.menu.EraseFlash.all.upload.erase_cmd=-e
20111+
20112+
##############################################################
20113+
1993420114
connaxio_espoir.name=Connaxio's Espoir
1993520115
connaxio_espoir.vid.0=0x10C4
1993620116
connaxio_espoir.pid.0=0x8D9A

Diff for: libraries/ESP32/examples/Camera/CameraWebServer/CameraWebServer.ino

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
//#define CAMERA_MODEL_M5STACK_UNITCAM // No PSRAM
2424
//#define CAMERA_MODEL_AI_THINKER // Has PSRAM
2525
//#define CAMERA_MODEL_TTGO_T_JOURNAL // No PSRAM
26+
//#define CAMERA_MODEL_XIAO_ESP32S3 // Has PSRAM
2627
// ** Espressif Internal Boards **
2728
//#define CAMERA_MODEL_ESP32_CAM_BOARD
2829
//#define CAMERA_MODEL_ESP32S2_CAM_BOARD

Diff for: libraries/ESP32/examples/Camera/CameraWebServer/camera_pins.h

+18
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,24 @@
176176
#define HREF_GPIO_NUM 26
177177
#define PCLK_GPIO_NUM 21
178178

179+
#elif defined(CAMERA_MODEL_XIAO_ESP32S3)
180+
#define PWDN_GPIO_NUM -1
181+
#define RESET_GPIO_NUM -1
182+
#define XCLK_GPIO_NUM 10
183+
#define SIOD_GPIO_NUM 40
184+
#define SIOC_GPIO_NUM 39
185+
186+
#define Y9_GPIO_NUM 48
187+
#define Y8_GPIO_NUM 11
188+
#define Y7_GPIO_NUM 12
189+
#define Y6_GPIO_NUM 14
190+
#define Y5_GPIO_NUM 16
191+
#define Y4_GPIO_NUM 18
192+
#define Y3_GPIO_NUM 17
193+
#define Y2_GPIO_NUM 15
194+
#define VSYNC_GPIO_NUM 38
195+
#define HREF_GPIO_NUM 47
196+
#define PCLK_GPIO_NUM 13
179197

180198
#elif defined(CAMERA_MODEL_ESP32_CAM_BOARD)
181199
// The 18 pin header on the board has Y5 and Y3 swapped

Diff for: variants/XIAO_ESP32S3/bootloader-tinyuf2.bin

20.9 KB
Binary file not shown.

Diff for: variants/XIAO_ESP32S3/partitions-8MB.csv

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# ESP-IDF Partition Table
2+
# Name, Type, SubType, Offset, Size, Flags
3+
# bootloader.bin,, 0x1000, 32K
4+
# partition table,, 0x8000, 4K
5+
nvs, data, nvs, 0x9000, 20K,
6+
otadata, data, ota, 0xe000, 8K,
7+
ota_0, 0, ota_0, 0x10000, 2048K,
8+
ota_1, 0, ota_1, 0x210000, 2048K,
9+
uf2, app, factory,0x410000, 256K,
10+
ffat, data, fat, 0x450000, 3776K,

Diff for: variants/XIAO_ESP32S3/pins_arduino.h

+65
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
#ifndef Pins_Arduino_h
2+
#define Pins_Arduino_h
3+
4+
#include <stdint.h>
5+
#include "soc/soc_caps.h"
6+
7+
#define USB_VID 0x2886
8+
#define USB_PID 0x0056
9+
10+
#define EXTERNAL_NUM_INTERRUPTS 46
11+
#define NUM_DIGITAL_PINS 48
12+
#define NUM_ANALOG_INPUTS 20
13+
14+
static const uint8_t LED_BUILTIN = 21;
15+
#define BUILTIN_LED LED_BUILTIN // backward compatibility
16+
#define LED_BUILTIN LED_BUILTIN
17+
18+
#define analogInputToDigitalPin(p) (((p)<NUM_ANALOG_INPUTS)?(analogChannelToDigitalPin(p)):-1)
19+
#define digitalPinToInterrupt(p) (((p)<NUM_DIGITAL_PINS)?(p):-1)
20+
#define digitalPinHasPWM(p) (p < EXTERNAL_NUM_INTERRUPTS)
21+
22+
static const uint8_t TX = 43;
23+
static const uint8_t RX = 44;
24+
25+
static const uint8_t SDA = 5;
26+
static const uint8_t SCL = 6;
27+
28+
static const uint8_t SS = 44;
29+
static const uint8_t MOSI = 9;
30+
static const uint8_t MISO = 8;
31+
static const uint8_t SCK = 7;
32+
33+
static const uint8_t A0 = 1;
34+
static const uint8_t A1 = 2;
35+
static const uint8_t A2 = 3;
36+
static const uint8_t A3 = 4;
37+
static const uint8_t A4 = 5;
38+
static const uint8_t A5 = 6;
39+
static const uint8_t A8 = 7;
40+
static const uint8_t A9 = 8;
41+
static const uint8_t A10 = 9;
42+
43+
static const uint8_t D0 = 1;
44+
static const uint8_t D1 = 2;
45+
static const uint8_t D2 = 3;
46+
static const uint8_t D3 = 4;
47+
static const uint8_t D4 = 5;
48+
static const uint8_t D5 = 6;
49+
static const uint8_t D6 = 43;
50+
static const uint8_t D7 = 44;
51+
static const uint8_t D8 = 7;
52+
static const uint8_t D9 = 8;
53+
static const uint8_t D10 = 9;
54+
55+
static const uint8_t T1 = 1;
56+
static const uint8_t T2 = 2;
57+
static const uint8_t T3 = 3;
58+
static const uint8_t T4 = 4;
59+
static const uint8_t T5 = 5;
60+
static const uint8_t T6 = 6;
61+
static const uint8_t T7 = 7;
62+
static const uint8_t T8 = 8;
63+
static const uint8_t T9 = 9;
64+
65+
#endif /* Pins_Arduino_h */

Diff for: variants/XIAO_ESP32S3/tinyuf2.bin

139 KB
Binary file not shown.

0 commit comments

Comments
 (0)