A pocket/wearable AI Pin built around the Seeed XIAO ESP32S3 Sense. It runs a voice assistant with wake-word interaction, an on-board OLED for status, an RGB status LED, and a camera for vision — all driven by the open-source xiaozhi-esp32 firmware framework, with a custom board bring-up for this hardware.
📺 Demo video: https://youtu.be/4tEngx4ffeQ
board/board_config.h— my custom board definition (pin map) for the XIAO ESP32S3 Sense build: PDM mic, MAX98357 speaker, SSD1306 OLED, RGB LED, and OV3660 camera.prebuilt/— ready-to-flash firmware binaries so you can try it without setting up ESP-IDF.
| Component | Detail |
|---|---|
| MCU board | Seeed XIAO ESP32S3 Sense (8 MB flash, PSRAM) |
| Microphone | Built-in PDM mic — CLK GPIO42, DATA GPIO41 |
| Speaker amp | MAX98357 (I2S) — BCLK GPIO43, LRCK GPIO5, DOUT GPIO7 |
| Display | SSD1306 128×64 OLED (I2C) — SDA GPIO1, SCL GPIO2 |
| RGB LED | R GPIO8, G GPIO19, B GPIO20 |
| Camera | OV3660 (see board/board_config.h for the full pin map) |
| Button | BOOT GPIO0 |
See board/board_config.h for the complete, commented pin map.
Requires esptool (pip install esptool). Put the XIAO ESP32S3 Sense into bootloader mode if needed, then from the prebuilt/ folder:
esptool.py --chip esp32s3 -b 460800 \
--before default_reset --after hard_reset \
write_flash --flash_mode dio --flash_freq 80m --flash_size 8MB \
0x0 bootloader.bin \
0x8000 partition-table.bin \
0xd000 ota_data_initial.bin \
0x20000 xiaozhi.bin \
0x600000 generated_assets.bin(These offsets come from prebuilt/flasher_args.json.) After flashing, follow the on-device / xiaozhi setup to connect WiFi and pair the assistant.
The firmware is built on xiaozhi-esp32. To rebuild:
- Clone the upstream framework:
git clone https://github.com/78/xiaozhi-esp32 - Add a board using the pin map in
board/board_config.h(based on the XIAO ESP32S3 Sense / camera board type). - With ESP-IDF v5.4+:
idf.py set-target esp32s3 && idf.py menuconfig(select the board type), thenidf.py build flash.
Firmware framework: xiaozhi-esp32 by @78, MIT License. This repository contains my custom board configuration and a build of that framework for the AI Pin hardware; all credit for the underlying assistant framework goes to the upstream project. See LICENSE.