The XIAO ESP32-S3 Sense is the “sensors” variant of the XIAO ESP32-S3: on the same stamp-sized form factor, it adds a camera, a digital microphone and a microSD reader, carried by a small expansion board that clips onto the B2B connector. It is the board for embedded vision and audio, and for a first taste of AI on a microcontroller (TinyML). Everything that holds for the XIAO ESP32-S3 — pinout, power, getting started — applies here. This page covers only what the Sense adds.

What the Sense adds

The XIAO ESP32-S3 connected through the B2B connector to the three Sense peripherals: an OV3660 camera on a parallel DVP plus an I²C control bus, a PDM microphone on GPIO42 and GPIO41, a microSD reader on the SPI bus D8 D9 D10.|640

Three peripherals, connected through the B2B connector, which also exposes 2 more GPIOs (D11 = GPIO42, D12 = GPIO41). But beware: those two are reserved for the microphone by default. To get them back you have to cut the J1/J2 jumper on the expansion board, and you then lose the microphone. The Sense is dense: every pin already does something.

And the PSRAM (8 MB) stops being a luxury: it is what holds the camera’s frame buffer.

The camera

Historically an OV2640 (1600 × 1200), today an OV3660 (2048 × 1536). The OV2640 has been discontinued. The OV5640 module is compatible too, and the Seeed example code works for all three. The sensor is detachable.

Two consequences to keep in mind:

  • It eats pins. The link is a parallel DVP: a dozen internal GPIOs (image data, pixel/line/frame clocks) plus a small I²C control bus (SCCB). That is the other reason so few pins are free.
  • PSRAM is mandatory. A 2 Mpx image does not fit in the internal RAM: the framebuffer lives in PSRAM. Without PSRAM enabled in the IDE, camera initialisation fails.

On the electrical side, while capturing, the assembly draws ~350 mA peak at 5 V (for ~140 mA on average in video streaming): plan for solid power, and for prolonged use the heatsink offered by Seeed (the chip heats up fast with the camera).

The microphone and the microSD card

  • Digital microphone (PDM) — clock on GPIO42, data on GPIO41 (the D11/D12 of the B2B). Ideal for sound or keyword detection.
  • microSD reader (up to 32 GB, FAT). It shares the board’s SPI bus (SCK/MISO/MOSI = D8 / D9 / D10) with a chip select line (CS). That line is GPIO21, the pin of the user LED: on a Sense, the Blink from getting started and the SD reader fight over the same pin. Adding another SPI peripheral means managing the chip selects. The expansion board even has a jumper (J3) to switch between free SPI and SD card.

Worth keeping in mind: on the Sense, microphone or D11/D12, and SD or SPI for something else. Work out which peripheral takes which pins before wiring anything.

The Sense does not sleep like a bare XIAO

The 14 µA of deep sleep quoted for the XIAO ESP32-S3 do not hold for a fitted Sense. Seeed measurements, in deep sleep: ~64 µA for the expansion board alone, ~1.1 mA with the SD card, ~3.0 mA with the camera, ~4.0 mA with both. That is a factor of 200 to 280 on battery life. The same cell that would last years on a bare XIAO lasts a few days here. On a battery-powered object, detaching the unused sensor is the only really effective lever. See power.

Vision and embedded AI (TinyML)

The ESP32-S3 has vector instructions that speed up inference on small neural networks: the Sense is a concrete way into TinyML — recognising images, sounds or gestures directly on the board.

The tooling, however, is outside this wiki: Seeed’s SenseCraft platform (training and deploying models, no code) and Edge Impulse (a full TinyML pipeline) take over from there, and the ebook XIAO: Big Power, Small Board — Mastering Arduino and TinyML serves as a guide. We point at these resources without developing them: embedded AI is beyond the scope of the tutorial.

See also