Build recipes / A self-assembled voice node for Muse

Muse / open platformConcept — physical build pendingRecipe 0.1.0

A self-assembled voice node for Muse

Stack a pre-soldered reSpeaker Lite and XIAO controller over a 5 W speaker, route the antenna and data cable, then use the finished node as a push-to-talk Muse body.

$40.99–$47.94parts estimate1–3 hoursfirst build4senses + actions mapped
Open live checklist

Build proof

See the whole build before touching the board

This clip explains the intended interaction. It is a concept animation, not footage of a verified physical build. The interactive model below distinguishes official CAD and published dimensions from clearly labeled schematic accessories.

12-second 3D build tourNo real hardware is shown.
Interactive buildAvailable
Quick videoConcept animation
Finished-build photoNot built yet
Verified community uploads0 reviewed

No version-matched community build has been reviewed yet. A verified upload must retain the board revision, XMOS image, Muse commit, parts substitutions, finished-build photo and real push-to-talk result.

Assembly model

Build the self-assembled voice node for Muse

Drag to inspect the fit, explode the 5 physical assemblies, and follow the actual build order.

Loading 3D model

Senses and actions

What this body gives the agent

Capabilities are labeled at the integration boundary, so a speaker is not mistaken for working TTS.

input

Hear

Works in this build

The dual-microphone array captures push-to-talk audio after the XMOS is on Muse's required 16 kHz I2S firmware.

input

Press

Works in this build

The XIAO BOOT button starts push-to-talk and confirms pairing; the reSpeaker board also exposes user and mute controls.

output

Speak

Needs integration

The board and kit include a speaker path, but Muse speaker playback is not verified on hardware. Current replies appear as text in the Muse app.

output

Control

Works in this build

Muse's optional home-network tunnel can reach local HTTP devices; enable it only on a network you trust.

Parts

Everything in this version

Prices were checked 2026-10-07. Hackshop opens seller links but never places an order.

1×

Seeed reSpeaker Lite with XIAO ESP32-S3

Main board or device for this build.

Required · $31.00
Check source ↗
1×

Mono enclosed speaker (4 ohm / 5 W)

Required for the complete physical voice-node assembly. Seeed lists this speaker for the reSpeaker Lite kit at $2.00 on 2026-10-07. Muse speaker playback is not verified on hardware yet, so this part establishes the hardware path rather than a working spoken-reply claim.

Required · $2.00
Check source ↗
1×

Acrylic enclosure for reSpeaker Lite

The self-assembled black acrylic frame mounts the reSpeaker board above the enclosed speaker. Seeed listed it at $5.00 on 2026-10-07.

Required · $5.00
Check source ↗
1×

USB-C data cable

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.

Required · $3.00
Check source ↗
1×

USB-C power adapter (5 V / 2 A or more)

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

Optional · $10.00
Check source ↗

Pre-soldered reSpeaker/XIAO board, Seeed 4 ohm / 5 W speaker, acrylic enclosure and one data cable. Shipping and tax are not included; the higher estimate uses the listed USB-C to USB-C cable alternative.

How to build it

From unopened parts to first conversation

The commands and recovery path are generated from the same machine-readable plan your agent receives.

  1. 01

    Get the parts

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

    • Seeed reSpeaker Lite with XIAO ESP32-S3 x1 (required): Main board or device for this build. link
    • Mono enclosed speaker (4 ohm / 5 W) x1 (required): Required for the complete physical voice-node assembly. Seeed lists this speaker for the reSpeaker Lite kit at $2.00 on 2026-10-07. Muse speaker playback is not verified on hardware yet, so this part establishes the hardware path rather than a working spoken-reply claim. link
    • Acrylic enclosure for reSpeaker Lite x1 (required): The self-assembled black acrylic frame mounts the reSpeaker board above the enclosed speaker. Seeed listed it at $5.00 on 2026-10-07. link
    • USB-C data cable x1 (required): 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. link
    • USB-C power adapter (5 V / 2 A or more) x1 (optional): Optional. Runs the gadget from a wall outlet instead of your computer. A phone charger that supplies 5 V / 2 A or more works. link
  2. 02

    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. 03

    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. 04

    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 pairing button for 5 seconds to reset pairing.

  5. 05

    Assemble the voice node

    The acrylic stack keeps the microphones exposed, carries the board above the speaker and makes both USB-C ports reachable for recovery.

    Power the board down. Keep the pre-soldered XIAO attached to the reSpeaker carrier. Mount the complete board on the upper acrylic deck, connect the keyed speaker lead, then fasten the upper and lower plates around the speaker. Start every fastener by hand and tighten only until secure. Snap the external antenna lead straight down onto the XIAO U.FL connector, place the antenna where its cable is relaxed, and leave both microphones clear. For Muse flashing and power, plug the data cable into the small XIAO USB-C port, not the larger reSpeaker USB-C port.

  6. 06

    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.

Acceptance checks

How we know the build actually works

A flash that exits successfully is not enough; the final checks happen on the real device.

1

visual

Physical stack is safe

The board is secured above the speaker, the acrylic is not cracked, both microphones are clear, and neither USB-C port is obstructed.

2

command

XMOS firmware matches

The reSpeaker XMOS is detected before installing Seeed's 16 kHz I2S v1.0.9 image required by the reviewed Muse profile.

dfu-util -l
3

command

XIAO serial port appears

A new serial port appears only after the data cable is connected to the small XIAO USB-C port.

ls /dev/cu.usbmodem* 2>/dev/null || ls /dev/ttyACM* 2>/dev/null
4

serial log

Muse firmware boots

Startup includes “link.main: Muse Gadget starting”.

tools/muse/monitor.py PORT 20
5

app readback

Account pairing completes

MuseGadget-respeaker-XXXXXX is connected under Muse Settings > Devices and the status light is green.

6

real device

Voice reaches Muse

Holding and releasing XIAO BOOT sends a voice note and the Muse app shows the expected text reply.

7

real device

Reconnect survives reboot

After a power cycle, the node reconnects and another push-to-talk request succeeds.

Before you build

Limits, recovery and terms

  • 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.
  • Hackshop has source-checked this recipe but has not physically built it yet.
  • Seeed's official v1.1 CAD drives the board model; the speaker, acrylic stack, antenna route and cable are clearly labeled schematics until measured from a physical kit.
  • Muse support for this board is experimental and requires the XMOS 16 kHz I2S firmware v1.0.9 before flashing the XIAO.
  • Current Muse replies appear as text in the app. Speaker playback is not verified on hardware and is not claimed by this recipe.
  • No screen, camera or movement is included in this build.
  • Each builder supplies a private Muse SDK token. Do not publish or sell token-bearing firmware or hardware.
  • Muse service access is personal, non-commercial and revocable under the current SDK terms.
Read the current Muse SDK terms ↗

Source trail

What this recipe was checked against

SDK commit b139b45064b4 · ESP-IDF v6.0.1 · reviewed 2026-10-07

  1. Muse reSpeaker Lite setup at reviewed commit ↗
  2. Muse ESP32 instructions at reviewed commit ↗
  3. Seeed reSpeaker Lite specification and firmware guide ↗
  4. Seeed XIAO integration guide ↗
  5. Seeed official reSpeaker Lite v1.1 STEP ↗
  6. Seeed full kit and current component prices ↗
  7. Seeed mono enclosed speaker ↗
  8. Seeed acrylic enclosure ↗
  9. Muse SDK terms ↗