Getting Started with Seeed Studio XIAO ESP32S3 (Sense)
Seeed Studio XIAO ESP32S3 | Seeed Studio XIAO ESP32S3 Sense |
---|---|
Introduction
Seeed Studio XIAO Series are diminutive development boards, sharing a similar hardware structure, where the size is literally thumb-sized. The code name "XIAO" here represents its half feature "Tiny", and the other half will be "Puissant". Seeed Studio XIAO ESP32S3 Sense integrates camera sensor, digital microphone and SD card supporting. Combining embedded ML computing power and photography capability, this development board can be your great tool to get started with intelligent voice and vision AI.
Specification
Item | Seeed Studio XIAO ESP32S3 | Seeed Studio XIAO ESP32S3 Sense |
---|---|---|
Processor | ESP32-S3R8 Xtensa LX7 dual-core, 32-bit processor that operates at up to 240 MHz | |
Wireless | Complete 2.4GHz Wi-Fi subsystem BLE: Bluetooth 5.0, Bluetooth mesh | |
Built-in Sensors | - | OV2640 camera sensor for 1600*1200 Digital microphone |
Memory | On-chip 8M PSRAM & 8MB Flash | On-chip 8M PSRAM & 8MB Flash Onboard SD Card Slot, supporting 32GB FAT |
Interface | 1x UART, 1x IIC, 1x IIS, 1x SPI, 11x GPIOs (PWM), 9x ADC, 1x User LED, 1x Charge LED 1x Reset button, 1x Boot button | 1x UART, 1x IIC, 1x IIS, 1x SPI, 11x GPIOs (PWM), 9x ADC, 1x User LED, 1x Charge LED, 1x B2B Connector (with 2 additional GPIOs) 1x Reset button, 1x Boot button |
Dimensions | 21 x 17.8mm | 21 x 17.8 x 15mm (with expansion board) |
Power | Input voltage (Type-C): 5V Input voltage (BAT): 4.2V | |
Circuit operating Voltage (ready to operate): - Type-C: 5V@19mA - BAT: 3.8V@22mA | Circuit operating Voltage (ready to operate): - Type-C: 5V@38.3mA - BAT: 3.8V@43.2mA (with expansion board) | |
- | Webcam Web application: - Type-C: - - Average power consumption: 5V/138mA - - Photo moment: 5V/341mA - Battery: - - Average power consumption: 3.8V/154mA - - Photo moment: 3.8V/304mA | |
- | Microphone recording & SD card writing: - Type-C: - - Average power consumption: 5V/46.5mA - - Peak power consumption: 5V/89.6mA - Battery: - - Average power consumption: 3.8V/54.4mA - - Peak power consumption: 3.8V/108mA | |
Charging battery current: 100mA | Charging battery current: 100mA | |
Low Power Consumption Model | Modem-sleep Model: 3.8V/25 mA Light-sleep Model: 3.8V/2 mA Deep Sleep Model: 3.8V/14 μA | Without any peripherals: - Modem-sleep Model: 3.8V/25.5 mA - Light-sleep Model: 3.8V/2.4 mA - Deep Sleep Model: 3.8V/63.768 μA Connect the camera: - Modem-sleep Model: 3.8V/44.57 mA - Light-sleep Model: 3.8V/5.47 mA - Deep Sleep Model: 3.8V/3.00 mA Connecting an SD Card: - Modem-sleep Model: 3.8V/32.8 mA - Light-sleep Model: 3.8V/3.48 mA - Deep Sleep Model: 3.8V/1.08 mA Simultaneously connect the camera and the SD card: - Modem-sleep Model: 3.8V/55.72 mA - Light-sleep Model: 3.8V/6.56 mA - Deep Sleep Model: 3.8V/3.98 mA |
Wi-Fi Enabled Power Consumption | Active Model: ~ 100 mA | Active Model: ~ 110 mA (with expansion board) |
BLE Enabled Power Consumption | Active Model: ~ 85 mA | Active Model: ~ 102 mA (with expansion board) |
Working Temperature | -40°C ~ 65°C |
Features
- Powerful MCU Board: Incorporate the ESP32S3 32-bit, dual-core, Xtensa processor chip operating up to 240 MHz, mounted multiple development ports, Arduino / MicroPython supported
- Advanced Functionality (for Sense): Detachable OV2640 camera sensor for 1600*1200 resolution, compatible with OV5640 camera sensor, intergating additional digital microphone
- Elaborate Power Design: Lithium battery charge management capability, offer 4 power consumption model which allows for deep sleep mode with power consumption as low as 14μA
- Great Memory for more Possibilities: Offer 8MB PSRAM and 8MB FLASH, supporting SD card slot for external 32GB FAT memory
- Outstanding RF performance: Support 2.4GHz Wi-Fi and BLE dual wireless communication, support 100m+ remote communication when connected with U.FL antenna
- Thumb-sized Compact Design: 21 x 17.8mm, adopting the classic form factor of XIAO, suitable for space limited projects like wearable devices
Hardware Overview
Before everything starts, it is quite essential to have some basic parameters of the product. The following table provides information about the characteristics of Seeed Studio XIAO ESP32S3.
XIAO ESP32S3/XIAO ESP32S3 Sense front indication diagram |
---|
XIAO ESP32S3/XIAO ESP32S3 Sense back indication diagram |
XIAO ESP32S3/XIAO ESP32S3 Sense Pin List |
- 5V - This is 5v out from the USB port. You can also use this as a voltage input but you must have some sort of diode (schottky, signal, power) between your external power source and this pin with anode to battery, cathode to 5V pin.
- 3V3 - This is the regulated output from the onboard regulator. You can draw 700mA
- GND - Power/data/signal ground
Strapping Pins
At each startup or reset, a chip requires some initial configuration parameters, such as in which boot mode to load the chip, voltage of flash memory, etc. These parameters are passed over via the strapping pins. After reset, the strapping pins operate as regular IO pins.
The parameters controlled by the given strapping pins at chip reset are as follows:
- Chip boot mode – GPIO0 and GPIO46
- VDD_SPI voltage – GPIO45
- ROM messages printing – GPIO46
- JTAG signal source – GPIO3
GPIO0, GPIO45, and GPIO46 are connected to the chip’s internal weak pull-up/pull-down resistors at chip reset. These resistors determine the default bit values of the strapping pins. Also, these resistors determine the bit values if the strapping pins are connected to an external high-impedance circuit.
To change the bit values, the strapping pins should be connected to external pull-down/pull-up resistances. If the ESP32-S3 is used as a device by a host MCU, the strapping pin voltage levels can also be controlled by the host MCU.
All strapping pins have latches. At system reset, the latches sample the bit values of their respective strapping pins and store them until the chip is powered down or shut down. The states of latches cannot be changed in any other way. It makes the strapping pin values available during the entire chip operation, and the pins are freed up to be used as regular IO pins after reset.
Regarding the timing requirements for the strapping pins, there are such parameters as setup time and hold time.
Getting Started
To enable you to get started with the XIAO ESP32S3 faster, please read the hardware and software preparation below to prepare the XIAO.
Factory procedure
We pre-program each new XIAO ESP32S3 and XIAO ESP32S3 Sense with a simple factory program.
- XIAO ESP32S3
The factory program preset in the regular version is the touch pin light-up program. When you power up the XIAO, touch some of its pins and the orange user indicator will light up.
- XIAO ESP32S3 Sense
The XIAO ESP32S3 Sense is shipped with the WebCam sample program pre-installed. You can use this program by giving the XIAO a good antenna installation and powering it up. For details, you can read the Wiki about this program.
Hardware Preparation
Solder header
XIAO ESP32S3 is shipped without pin headers by default, you need to prepare your own pin headers and solder it to the corresponding pins of XIAO so that you can connect to the expansion board or sensor.
Due to the miniature size of XIAO ESP32S3, please be careful when soldering headers, do not stick different pins together, and do not stick solder to the shield or other components. Otherwise, it may cause XIAO to short circuit or not work properly, and the consequences caused by this will be borne by the user.
Installation of antenna
On the bottom left of the front of XIAO ESP32S3, there is a separate "WiFi/BT Antenna Connector". In order to get better WiFi/Bluetooth signal, you need to take out the antenna inside the package and install it on the connector.
There is a little trick to the installation of the antenna, if you press down hard on it directly, you will find it very difficult to press and your fingers will hurt! The correct way to install the antenna is to put one side of the antenna connector into the connector block first, then press down a little on the other side, and the antenna will be installed.
Remove the antenna is also the case, do not use brute force to pull the antenna directly, one side of the force to lift, the antenna is easy to take off.
Installation of expansion boards (for Sense)
If you are shopping for the XIAO ESP32S3 Sense, then you should also include an expansion board. This expansion board has a 1600*1200 OV2640 camera sensor, Onboard SD Card Slot and digital microphone.
By installing the expansion board with XIAO ESP32S3 Sense, you can use the functions on the expansion board.
Installing the expansion board is very simple, you just need to align the connector on the expansion board with the B2B connector on the XIAO ESP32S3, press it hard and hear a "click", the installation is complete.
We now have a new fully XIAO ESP32S3 Sense-compatible powerful camera, the OV5640, on our shelves, and if you purchase it, you can replace the camera to use it.
If you need to know the detailed parameter information of ov5640, you can refer to the following chart.
All the programs about cameras in the Wiki are compatible with both OV5640 and OV2640 cameras.
Installing the Upgraded Heat Sink
Ensure optimal cooling for your XIAO ESP32S3 Sense by installing our upgraded heat sink. This new design is tailored to address the cooling deficiencies observed with the previous models, particularly during intensive operations like camera usage. Feedback highlighted that the original heat sink did not adequately dissipate heat, leading to the development of a more effective solution.
Click to View Performance Comparison
Our testing has demonstrated the benefits of the upgraded heat sink over the original setup:
Test Sample | Peak Temperature on Backside |
---|---|
Without Heat Sink | 63.6°C |
With dual Heat Sinks | 53.5°C (🔻10°C) |
Test Details:
- Environment: Air-conditioned room (approximately 27°C)
- Temperature Measuring Tool: OMEGA CL3515R thermocouple
- Measurement Location: Backside thermal pad of the XIAO ESP32S3
- Testing Firmware: WebCamera
- Power Supply: Type-C 5V
- Operating Duration: 1 hour
Key result:
- The device equipped with the heat sink maintained stable operation for over an hour, reaching its peak temperature without performance degradation.
- During testing with the WebCamera in SVGA (800x600) mode:
- The XIAO ESP32S3 operated smoothly.
- The video output was fluid.
- There was a significant reduction in temperature, ensuring reliable performance without any frame drops or disconnections.
Gather the following items before starting the installation:
- Selected heat sink (single or dual)
- A clean ESP32S3
Ensure your device is powered off and unplugged from any power source before you start.
Purchasing Note: When purchasing your XIAO ESP32S3 Sense, it's important to note that only models equipped with a camera come with a heat sink included. If you have a version of the ESP32S3 that does not include a camera, you will need to purchase a heat sink separately.
Installation Tip: Prioritize covering the Thermal PAD with the heat sink, as it is directly above the ESP32S3 chip, the primary source of heat. Proper alignment ensures optimal heat dissipation, and note keep the BAT pins as unobstructed as possible.
Now, let’s begin the installation process:
Step 1. Prepare the Heat Sink: Start by removing the protective cover from the heat sink to expose the thermal adhesive. This will prepare the heat sink for a secure attachment to the ESP32S3 chip.
Step 2. Pssemble the Heat Sink:
- Single Heat Sink
- Dual Heat Sinks
This smaller, compact option is sufficient for regular use and allows full access to all GPIO pins.
The larger option provides superior cooling, which is ideal for high-performance tasks but may limit access to some GPIO pins.
Step 3: Final Inspection and Testing
After installation, ensure everything is properly secured with no risk of short circuits. Verify that the heat sink is properly aligned and securely attached.
Software Preparation
The recommended programming tool for the XIAO ESP32S3 is the Arduino IDE, so as part of the software preparation, you will need to complete the Arduino installation.
If this is your first time using Arduino, we highly recommend you to refer to Getting Started with Arduino.
- Step 1. Download and Install the stable version of Arduino IDE according to your operating system.
Step 2. Launch the Arduino application.
Step 3. Add ESP32 board package to your Arduino IDE.
Navigate to File > Preferences, and fill "Additional Boards Manager URLs" with the url below: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Navigate to Tools > Board > Boards Manager..., type the keyword esp32 in the search box, select the latest version of esp32, and install it.
The on-board package for XIAO ESP32S3 requires at least version 2.0.8 to be available.
- Step 4. Select your board and port.
On top of the Arduino IDE, you can select the port directly. This is likely to be COM3 or higher (COM1 and COM2 are usually reserved for hardware serial ports).
Also, search for xiao in the development board on the left. select XIAO_ESP32S3.
With this preparation, you can start writing programs for XIAO ESP32S3 to compile and upload.
BootLoader Mode
Sometimes, using the wrong program can cause the XIAO to lose its port or not function correctly. Common issues include:
- The XIAO is connected to the computer, but no port number is found.
- The XIAO is connected, and a port number appears, but the program upload fails.
When you encounter the above two situations, you can try to put XIAO into BootLoader mode, which can solve most of the problems of unrecognized devices and failed uploads. The specific method is:
- Step 1. Press and hold the
BOOT
button on the XIAO ESP32S3 without releasing it. - Step 2. Keep the
BOOT
button pressed and then connect to the computer via the data cable. Release theBOOT
button after connecting to the computer. - Step 3. Upload the Blink program to check the operation of the XIAO ESP32S3.
Reset
When the program runs abnormally, you can press Reset
once during power-up to let XIAO re-execute the uploaded program.
When you press and hold the BOOT
key while powering up and then press the Reset
key once, you can also enter BootLoader mode.
Run your first Blink program
By now, I believe you have a good understanding of the features and hardware of the XIAO ESP32S3. Next, let's take the simplest Blink program as an example and perform the first blink for your XIAO ESP32S3!
- Step 1. Launch the Arduino application.
- Step 2. Navigate to File > Examples > 01.Basics > Blink, open the program.
- Step 3. Select the board model to XIAO ESP32S3, and select the correct port number to upload the program.
Once the program is successfully uploaded, you will see the following output message and you can observe that the orange LED on the right side of the XIAO ESP32S3 is blinking.
Congratulations, you've learned how to write and upload programs for the XIAO ESP32S3!
The LED will only turn off when the user LED pin on the XIAO ESP32S3 is set to a high level, and it will only turn on when the pin is set to a low level.
Battery Usage
The XIAO ESP32S3 series has a built-in power management chip that allows the XIAO ESP32S3 to be powered independently by using a battery or to charge the battery through the XIAO ESP32S3's USB port.
If you want to connect the battery for XIAO, we recommend you to purchase qualified rechargeable 3.7V lithium battery. When soldering the battery, please be careful to distinguish between the positive and negative terminals. The negative terminal of the power supply should be the side closest to the USB port, and the positive terminal of the power supply is the side away from the USB port.
Since all GPIO pins of the XIAO ESP32S3 are assigned their own functions, we do not have a GPIO configured for the battery pin. this means that we cannot get the battery voltage at the software level by reading the analog value of one of the GPIOs. If necessary, you can consider connecting the positive and negative terminals of the battery to two of the pins to measure the battery voltage.
When you use battery power, there will be no voltage on the 5V pin.
At the same time, we designed a red indicator light for battery charging, through the indicator light display to inform the user of the current state of the battery in the charge.
- When XIAO ESP32S3 is not connected to the battery, the red light comes on when the Type-C cable is connected and goes off after 30 seconds.
- The red light flashes when the battery is connected and the Type-C cable is connected for charging.
- When connecting Type-C to charge the battery fully, the red light turns off.
UF2 BootLoader
We understand that some users are looking to flash UF2 files directly to XIAO, which will enable the process of batch flashing programs. Here we will describe this method.
- Method I
- Method II
This method is currently only available on Windows systems.
Step 1: Download and Extract the Script
Download the required script zip file and extract it to your local machine:
https://files.seeedstudio.com/wiki/SeeedStudio-XIAO-ESP32S3/res/xiaos3-bin2uf2.zip
Step 2: Convert BIN Files to UF2 Files
After compiling and saving an Arduino program, you can export the binary BIN
file. This file will be generated in your Arduino project folder.
Copy the BIN
file to the xiaos3-bin2uf2 directory that you extracted earlier. Then, run the convert_uf2.bat script to generate a UF2 file, which will require the name of your bin
file.
Step 3: Enter UF2 BootLoader Mode
Connect the XIAO to your computer and run the boot_uf2.bat script. The XIAO will appear on your computer as a USB drive, indicating it has successfully entered UF2 BootLoader mode.
Step 4: Copy the UF2 File to XIAO ESP32S3
Access the XIAO ESP32S3's USB drive and copy the converted UF2 file to it. Once the copying is complete, the XIAO USB drive will automatically disappear, and the program will start running.
- Ensure your program is compiled and running correctly; otherwise, the UF2 file may not execute as expected.
- A sample UF2 file for Blink is provided in the xiaos3-bin2uf2 folder. When uploaded, the orange LED on the XIAO ESP32S3 will blink. You can use this UF2 file as a test.
Step 5: Re-enter UF2 BootLoader Mode
If you need to re-enter UF2 BootLoader mode to upload another UF2 file, quickly press the Reset button followed by the Boot button. There’s no need to run the boot_uf2.bat script again.
Press Reset, then Boot, quickly!
The project is composed of customizing the 2nd stage bootloader from IDF and UF2 factory application as 3rd stage bootloader.
Note: since IDF is actively developed and change very often, it is included as submodule at lib/esp-idf, please run export script there to have your environment setup correctly.
Troubleshooting
Q1: What should I do if the upload program fails/the program runs abnormally/the device port is not found?
If you encounter the above problem, it is recommended that you first try pressing the reset button on the XIAO ESP32S3 to try to get the program running again. If the problem persists, please recheck your program and read the methods provided in BootLoader Mode to restore the device.
Q2: Why does my XIAO have the problem of not being flush at the rounded corners? Is this a quality problem?
First of all, it should be noted that this is not a quality issue and will not affect the normal function of XIAO.
XIAO ESP32S3 is the most complex one in all XIAO because of its high integration, and the PCB needs to be put together in factory production. Due to the high level of integration, the splicing board connection can only be placed at the four rounded corners, which will lead to the problem of uneven rounded corners on the picture. We will try to improve the process to ensure that this problem will be solved in the subsequent production.
Q3: How to Flash the Factory Firmware to XIAO ESP32S3 Provided on the Resource Section?
The script provided in the resource section supports Windows. After downloading the zip file, you'll find the following files:
- XIAO ESP32S3 Factory firmware
- XIAO ESP32S3 Sense Factory firmware
.
├── boot_app0.bin
├── esp32_flasher.py
├── esptool.exe
├── project_config.json
├── xiao_esp32s3_firmware.bin
├── xiao_esp32s3_firmware.bootloader.bin
├── xiao_esp32s3_firmware.partitions.bin
└── xiao_esp32s3_firmware_win.bat
.
├── CameraWebServer.bin
├── boot_app0.bin
├── bootloader.bin
├── esp32_flasher.py
├── esptool.exe
├── partition-table.bin
├── project_config.json
└── xiao_esp32s3_sense_firmware_win.bat
To flash the firmware, simply run the appropriate .bat
file. If the flashing process fails, copy the command line from the prompt and run it manually in the terminal where the files are located.
Resources
[PDF] ESP32-S3 Datasheet
For Seeed Studio XIAO ESP32S3
- [PDF] Seeed Studio XIAO ESP32S3 Schematic
- [ZIP] Seeed Studio XIAO ESP32S3 Eagle Libraries
- [DXF] Seeed Studio XIAO ESP32S3 Dimension in DXF
- [LBR] Seeed Studio XIAO ESP32S3 Eagle footprint
- [ZIP] Seeed Studio XIAO ESP32S3 Factory firmware
- [XLSX] Seeed Studio XIAO ESP32S3 pinout sheet
- [STEP] Seeed Studio XIAO ESP32S3 3D Model
- [ZIP] Seeed Studio XIAO ESP32S3 Certification files
- 🔗 [Kicad] Seeed Studio XIAO ESP32S3 FootPrint
For Seeed Studio XIAO ESP32S3 Sense
- [PDF] Seeed Studio XIAO ESP32S3 Sense Schematic
- [Ebook] XIAO: Big Power, Small Board Mastering Arduino and TinyML
- [ZIP] Seeed Studio XIAO ESP32S3 Sense KiCAD Libraries
- [ZIP] Seeed Studio XIAO ESP32S3 Sense Eagle Libraries
- [DXF] Seeed Studio XIAO ESP32S3 Sense Dimension in DXF (top)
- [DXF] Seeed Studio XIAO ESP32S3 Sense Dimension in DXF (bottom)
- [ZIP] Seeed Studio XIAO ESP32S3 Sense Factory firmware
- [XLSX] Seeed Studio XIAO ESP32S3 Sense pinout sheet
- [STEP] Seeed Studio XIAO ESP32S3 Sense 3D Model
- 🔗 [Kicad] Seeed Studio XIAO ESP32S3 Sense FootPrint
Course Resources
Other
The remaining open source material is being compiled, so stay tuned!
Tech Support & Product Discussion
Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs.