<aside> ☝🏻

This is a simplified version of this chapter → https://mlsysbook.ai/kits/contents/seeed/xiao_esp32s3/xiao_esp32s3.html

</aside>

<aside> 📕

Main reference: https://wiki.seeedstudio.com/xiao_esp32s3_getting_started/

Core XIAO Sense Features

The XIAO ESP32S3 Sense integrates embedded ML computing power with photo and audio capabilities, making it an ideal platform for TinyML applications.

Key Features

image.png

image.png

Below is the general board pinout:

image.png

</aside>

Configuring the XIAO ESP32S3 Sense for the Arduino IDE

  1. Connect the XIAOML Kit to your computer via the USB port.
  2. Download and install the Arduino IDE according to your operating system → **[Download Arduino IDE] [If your computer does not support the Arduino IDE 2.X.X version, you can use the Legacy IDE 1.8.X]**
  3. Open the Arduino IDE and select the Boards Manager (represented by the UNO Icon).
  4. Enter “ESP32”, select ”esp32 by Espressif Systems,” and install or update the board support packages.

Do not select “Arduino ESP32 Boards by Arduino”, which are the support package for the Arduino Nano ESP32 and not our board.

image.png

Click Select Board, enter  ”xiao” or ”esp32s3”, and select the XIAO_ESP32S3 in the boards manager and the corresponding PORT where the ESP32S3 is connected.

image.png

That is it! The device should be OK. Let’s do some tests.

Testing the board with BLINK

The XIAO ESP32S3 Sense features a built-in LED connected to GPIO21. So, you can run the blink sketch (which can be found under Files > Examples > 01.Basics > Blink). The sketch uses the LED_BUILTIN Arduino constant, which internally corresponds to the LED connected to pin 21.

Click on the “Upload” icon and see what happens:

image.png

If the LED on your board blinks… then you are all set!

image.png

WiFi testing

Installation of the antenna

First, remove the Sense Expansion Board (which contains the Camera, Mic, and SD Card Reader) from the XIAO.

On the bottom left of the front of XIAO ESP32S3, there is a separate “WiFi/BT Antenna Connector”. To improve your WiFi/Bluetooth signal, remove the antenna from the package and attach it to the connector.

There is a small trick to installing 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 insert one side of the antenna connector into the connector block first, then gently press down on the other side to ensure the antenna is securely installed.

Removing the antenna is also the case. Do not use brute force to pull the antenna directly; instead, apply force to one side to lift it, making it easy to remove.

Reinstalling the expansion board is very simple: align the expansion board's connector with the B2B connector on the XIAO ESP32S3, press it firmly, and hear a “click.” The installation is complete.

image.png

One of the XIAO ESP32S3’s differentiators is its WiFi capability. So, let’s test its radio by scanning the Wi-Fi networks around it. You can do this by running one of the code examples on the board.

Open the Arduino IDE and select our board and port. Go to Examples and look for WiFI > WiFIScan under the “Examples for the XIAO ESP32S3”. Upload the sketch to the board.

In the Serial Monitor, you should see the Wi-Fi networks (SSIDs and RSSIs) within range of your device. Something like:

image.png

Simple WiFi Server (Turning LED ON/OFF)

Let’s test the device’s ability to act as a Wi-Fi server. We will host a simple page on the device that sends commands to turn the XIAO built-in LED ON and OFF.

Before running the sketch, you have to insert your network credentials:

/* ===== WiFi credentials ===== */
const char* ssid     = "Your credentials here";
const char* password = "Your credentials here";