Skip to content

Commit 39a992b

Browse files
rcsimxiaoxiang781216
authored andcommitted
Documentation: Add Seeed Studio XIAO ESP32S3 Board
This commit adds the documentation for Seeed Studio XIAO ESP32S3 board. This includes examples for gpios and user leds.
1 parent 8a835dd commit 39a992b

File tree

2 files changed

+191
-0
lines changed

2 files changed

+191
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,191 @@
1+
=========================
2+
Seeed Studio XIAO ESP32S3
3+
=========================
4+
5+
The `Seeed Studio XIAO ESP32S3 <https://wiki.seeedstudio.com/xiao_esp32s3_getting_started/>`_ is a general purpose board supplied by
6+
Seeed Studio and it is compatible with the Espressif ESP32S3 ecosystem, sharing the same MCU as ESP32-S3-DevKitC.
7+
8+
.. figure:: xiao-esp32s3.jpg
9+
:align: center
10+
11+
Features
12+
========
13+
14+
* ESP32-S3R8 Xtensa LX7 dual-core, 32-bit processor that operates at up to 240 MHz
15+
* On-chip 8M PSRAM & 8MB Flash
16+
* USB Type-C interface
17+
* Wireless: Complete 2.4GHz Wi-Fi subsystem;
18+
* BLE: Bluetooth 5.0, Bluetooth mesh
19+
* 1x UART, 1x I2C, 1x I2S, 1x SPI, 11x GPIOs (PWM), 9x ADC
20+
* 1 user LED, 1 power LED
21+
* 1 RESET button, 1 BOOT button
22+
23+
NSH Console
24+
===========
25+
26+
The NuttShell (NSH) console is available over USB using the CDC/ACM
27+
serial interface. To access the console, connect via a terminal emulator
28+
at 115200 baud, 8 data bits, no parity, and 1 stop bit (115200-8N1).
29+
30+
User LED
31+
========
32+
33+
The USER LED, a yellow LED located on the XIAO ESP32S3 board, is
34+
connected to GPIO21 as indicated in the board's schematic. This LED
35+
can be controlled through NuttX by configuring GPIO21 as an output
36+
and toggling its state.
37+
38+
Buttons
39+
=======
40+
41+
The RESET and BOOT buttons can be used to enter "Bootloader" mode by
42+
press and hold the BOOT key while powering up and then press the RESET key once.
43+
44+
Pin Mapping
45+
===========
46+
Pads numbered anticlockwise from USB connector.
47+
48+
===== ========== ==========
49+
Pad Signal Notes
50+
===== ========== ==========
51+
0 GPIO01 D0/A0
52+
1 GPIO02 D1/A1
53+
2 GPIO03 D2/A2
54+
3 GPIO04 D3/A3
55+
4 GPIO05 D4/SDA
56+
5 GPIO06 D5/SCL
57+
6 GPIO43 D6/Default TX for UART0 serial console
58+
7 GPIO44 D7/Default RX for UART0 serial console
59+
8 GPIO07 D8/SCK
60+
9 GPIO08 D9/MISO
61+
10 GPIO09 D10/MOSI
62+
11 3V3 Power output to peripherals
63+
12 Ground
64+
13 VIN +5V Supply to board
65+
===== ========== ==========
66+
67+
Power Supply
68+
============
69+
The working voltage of the MCU is 3.3V. Voltage input connected to
70+
general I/O pins may cause chip damage if it’s higher than 3.3V.
71+
72+
Installation
73+
============
74+
75+
1. Configure and build NuttX:
76+
77+
.. code-block:: console
78+
79+
$ git clone https://github.com/apache/nuttx.git nuttx
80+
$ git clone https://github.com/apache/nuttx-apps.git apps
81+
$ cd nuttx
82+
$ make distclean
83+
$ ./tools/configure.sh xiao-esp32s3:usbnsh
84+
$ make V=1
85+
86+
2. Connect the Seeed Studio XIAO ESP32S3, and enter "Bootloader" mode,
87+
then, flash the ``nuttx.hex`` file using ``esptool``:
88+
(https://docs.espressif.com/projects/esptool/en/latest/esp32/)
89+
90+
Example command:
91+
92+
.. code-block:: bash
93+
94+
make flash ESPTOOL_PORT=/dev/ttyACM0 ESPTOOL_BINDIR=./
95+
96+
97+
Configurations
98+
==============
99+
100+
usbnsh
101+
------
102+
Basic NuttShell configuration using CDC/ACM serial (console enabled in USB Port,
103+
at 115200 bps).
104+
105+
.. code-block:: console
106+
107+
NuttShell (NSH) NuttX-12.8.0
108+
nsh> uname -a
109+
NuttX 12.8.0 2c845426da-dirty Apr 6 2025 22:53:57 xtensa esp32s3-xiao
110+
111+
112+
combo
113+
-----
114+
This configuration enabled NuttShell via USB and enabled led and gpio examples:
115+
116+
Testing leds:
117+
118+
.. code-block:: console
119+
120+
nsh> leds
121+
leds_main: Starting the led_daemon
122+
leds_main: led_daemon started
123+
124+
led_daemon (pid# 10): Running
125+
led_daemon: Opening /dev/userleds
126+
led_daemon: Supported LEDs 0x01
127+
led_daemon: LED set 0x01
128+
nsh> led_daemon: LED set 0x00
129+
led_daemon: LED set 0x01
130+
led_daemon: LED set 0x00
131+
led_daemon: LED set 0x01
132+
led_daemon: LED set 0x00
133+
134+
Testing gpios:
135+
136+
======== ====== ==========
137+
PIN/GPIO Mode Device
138+
======== ====== ==========
139+
D1/GPIO2 Output /dev/gpio0
140+
D0/GPIO1 Input /dev/gpio1
141+
D2/GPIO3 Input /dev/gpio2
142+
======== ====== ==========
143+
144+
.. code-block:: console
145+
146+
nsh> ls /dev
147+
/dev:
148+
console
149+
gpio0
150+
gpio1
151+
gpio2
152+
null
153+
ttyACM0
154+
ttyS0
155+
userleds
156+
zero
157+
nsh> gpio -o 1 /dev/gpio0
158+
Driver: /dev/gpio0
159+
Output pin: Value=0
160+
Writing: Value=1
161+
Verify: Value=1
162+
nsh> gpio -o 0 /dev/gpio0
163+
Driver: /dev/gpio0
164+
Output pin: Value=1
165+
Writing: Value=0
166+
Verify: Value=0
167+
nsh> gpio /dev/gpio1
168+
Driver: /dev/gpio1
169+
Input pin: Value=0
170+
nsh> gpio /dev/gpio1
171+
Driver: /dev/gpio1
172+
Input pin: Value=1
173+
nsh> gpio /dev/gpio1
174+
Driver: /dev/gpio1
175+
Input pin: Value=0
176+
nsh> gpio -w 1 /dev/gpio2
177+
Driver: /dev/gpio2
178+
Interrupt pin: Value=0
179+
Verify: Value=1
180+
nsh> gpio -w 1 /dev/gpio2
181+
Driver: /dev/gpio2
182+
Interrupt pin: Value=0
183+
Verify: Value=1
184+
185+
186+
187+
188+
189+
190+
191+
Loading

0 commit comments

Comments
 (0)