Muse boards / Build

Build: Seeed reSpeaker Lite with XIAO ESP32-S3

About 30-45 minutes · needs a Mac or PC and a USB-C data cable · some Terminal, or let your agent do it

Intermediate · extra stepsThe XMOS chip must run Seeed's 16 kHz I2S firmware v1.0.9 before you flash the XIAO ESP32-S3.

A working Muse Gadgets: ESP32 Device SDK (Status) build on Seeed reSpeaker Lite with XIAO ESP32-S3, paired to your Muse account and ready for first prompts.

Status screenBoard $31 · about $34 with cable/parts
Download build.md
1

Get the parts

You need the board and any build-specific accessories before flashing or pairing.

1 × USB-C data cable
Requiredpart

Must carry data, not just charge. Most flashing problems are charge-only cables. This Seeed cable is USB-C to USB-A and carries USB 3.1 data ($2.50 on 2026-10-05). If your computer has only USB-C ports, use the USB-C to USB-C option.

Buy from seeedstudio.com
1 × USB-C power adapter (5 V / 2 A or more)
Optionalpart

Optional. Runs the gadget from a wall outlet instead of your computer. A phone charger that supplies 5 V / 2 A or more works.

Find on amazon.com
Hackshop never buys for you. Links open the store.
2

Get your Muse SDK token

Muse gadgets pair with your account by using a private SDK token.

Create a token at gadgets.muse.ai > Account > SDK tokens (https://gadgets.muse.ai/settings/sdk-tokens). It starts with mgst_. For this ESP32 build, set CONFIG_GADGET_SDK_TOKEN="mgst_YOUR_TOKEN" in build-seeed-respeaker-lite/sdkconfig after the board build command has created that file, then run the build command again. idf.py menuconfig > ESP32 Device SDK > Muse Gadgets SDK token is the interactive alternative. Never commit the real token or paste it anywhere public.

3

Flash the firmware

The board needs the Muse ESP32 firmware configured with your SDK token.

Read this first: flashing this board

  • Port: The XIAO's own USB Serial/JTAG console: /dev/cu.usbmodem* on macOS or /dev/ttyACM* on Linux.
  • If the XMOS doesn't already run Seeed's 16 kHz I2S firmware v1.0.9, install it through the larger board's USB port first. The USB audio and 48 kHz I2S images don't match this profile.
  • Use a XIAO ESP32-S3 with 8 MB flash and 8 MB octal PSRAM, attach its external antenna, and use 2.4 GHz Wi-Fi.

Source: https://github.com/facebookincubator/muse-gadget-sdk/blob/main/esp32/devices/seeed-respeaker-lite.md

Let your agent do it

Give your coding agent the build brief at https://www.hackshop.dev/build/seeed-respeaker-lite-xiao-esp32s3/build.md. Tell it to keep the token private, use mgst_YOUR_TOKEN as the placeholder, and find the serial port before flashing. It should find the port with ls /dev/cu.usbmodem* 2>/dev/null || ls /dev/ttyACM* 2>/dev/null; on Windows, use Device Manager to find the COM port, then run commands in the ESP-IDF shell.

Do it yourself

Install ESP-IDF v6.0.1 and only the esp32s3 target for this board. Muse's ESP32 README verifies macOS and Linux. Windows is not documented by the Muse SDK; if you use it, install ESP-IDF v6.0.1 with Espressif's Windows installer and run commands in the ESP-IDF shell. Clone the Muse Gadget SDK, run tools/board.sh seeed-respeaker-lite build once to create build-seeed-respeaker-lite/sdkconfig, set CONFIG_GADGET_SDK_TOKEN="mgst_YOUR_TOKEN" in that file, run tools/board.sh seeed-respeaker-lite build again, then flash. If flashing cannot connect, hold BOOT, tap RESET, then release BOOT.

git clone -b v6.0.1 --recursive https://github.com/espressif/esp-idf.git ~/esp/esp-idf-v6
~/esp/esp-idf-v6/install.sh esp32s3
. ~/esp/esp-idf-v6/export.sh
git clone https://github.com/facebookincubator/muse-gadget-sdk
cd muse-gadget-sdk/esp32
tools/board.sh seeed-respeaker-lite build
printf '\nCONFIG_GADGET_SDK_TOKEN="mgst_YOUR_TOKEN"\n' >> build-seeed-respeaker-lite/sdkconfig
tools/board.sh seeed-respeaker-lite build
ls /dev/cu.usbmodem* 2>/dev/null || ls /dev/ttyACM* 2>/dev/null
tools/board.sh seeed-respeaker-lite flash-monitor PORT
4

Pair it with the Muse app

Pairing links the freshly flashed board to your Muse account.

In the Muse app, turn on Settings > Devices > Developer mode, then Settings > Devices > Add Device (+). Pick MuseGadget-respeaker-XXXXXX and press the XIAO BOOT button when the status light breathes blue. Green means connected. Status meanings: orange = ready for setup, blue breathing = press the button, blue = joining Wi-Fi and connecting, green = connected, yellow blinking = reconnecting, purple = unpaired, red blinking = error. Hold the button for 5 seconds to reset pairing.

5

Put it together

A physical agent body needs to sit safely, keep the cable clear and leave controls reachable.

Put the board in its stand, case or a stable spot on the desk. Route the cable through the slot or open edge, power it, and check that the buttons and display are reachable.

6

Try it

A first prompt proves the device is paired, reachable, and useful for the project.

“(Hold XIAO BOOT) What's on my calendar tomorrow?”“(Hold XIAO BOOT) Add milk to the grocery list.”

Hand it to your agent

# Build: Seeed reSpeaker Lite with XIAO ESP32-S3 as a Muse gadget
Difficulty: Intermediate (extra steps). The XMOS chip must run Seeed's 16 kHz I2S firmware v1.0.9 before you flash the XIAO ESP32-S3.

## Goal
A working Muse Gadgets: ESP32 Device SDK (Status) build on Seeed reSpeaker Lite with XIAO ESP32-S3, paired to your Muse account and ready for first prompts.

## Warnings (read before flashing)
- Seeed reSpeaker Lite (experimental): the XMOS must run Seeed's 16 kHz I2S firmware v1.0.9. The ESP32 flash command doesn't update the XMOS.

## Hardware
- [Seeed reSpeaker Lite with XIAO ESP32-S3](https://www.seeedstudio.com/ReSpeaker-Lite-Voice-Assistant-Kit-p-5929.html) x1 (required, board): Main board or device for this build.
- [USB-C data cable](https://www.seeedstudio.com/USB-3-1-Type-C-to-A-Cable-1-Meter-3-1A-p-4085.html) x1 (required, part): Must carry data, not just charge. Most flashing problems are charge-only cables. This Seeed cable is USB-C to USB-A and carries USB 3.1 data ($2.50 on 2026-10-05). If your computer has only USB-C ports, use the USB-C to USB-C option.

Caveats + terms

Personal, non-commercial use with your own Muse account. A token can be linked to at most 50 devices. You may not put it in any device you sell, advertise, or list publicly or in a marketplace or app store; other distribution needs Meta's written permission. Provided as-is; Meta can change, withdraw or revoke access at any time. Read terms.

  • The home-network tunnel lets Muse reach devices on your LAN that expose a local HTTP API. Treat it like giving the agent a foothold on your network.
  • Pairing has no manufacturer verification and can't prevent an active man-in-the-middle attack.
  • Builds are signed with the included development key and never enable Secure Boot. Enable NVS encryption (CONFIG_HOMEHUB_NVS_ENCRYPTION).
  • Custom ESP32 commands are not a documented API yet: the command set (display.draw_url, sensors.read, camera.capture, ...) is hardcoded in main/app.c.
  • Experimental in the Muse SDK. Push-to-talk on the XIAO BOOT button; replies show as text in the Muse app. Needs Seeed's 16 kHz I2S XMOS firmware v1.0.9, and speaker playback isn't verified on hardware yet.