DIY AI · how-to

How to build your own Muse AI charm

A tiny, Tamagotchi-style AI companion, built with an off-the-shelf display and Meta's open-source Muse Gadget SDK.

October 25, 2026 · 10 min read

I wanted a little AI companion that I could carry around, rather than another app on my phone. So I started with Meta's Muse Gadgets website, browsed its suggested hardware, and picked a round Waveshare display. It looks a bit like a futuristic Tamagotchi, with a touch screen, microphones, and room for a battery.

The fun part: you don't have to design a circuit board or write the entire application yourself. Meta has published the gadget firmware and setup instructions. The less-fun part: this is still a developer project. You'll need a computer, a USB data cable, and a firmware-flashing step.

This guide works for any Muse-compatible board from Meta's hardware list. The steps are general; wherever a step depends on your specific hardware, I've added an "On my build" note with the exact details for the Waveshare ESP32-S3-Touch-AMOLED-1.75C I used. If you're on a different board, follow the generic steps and swap in your own hardware's specifics.

Before you buy: Muse Gadgets is an experimental, open-source tinkering project, not a finished consumer accessory or a guaranteed, supported product. Check that the Muse app and the necessary account features are available to you. Flashing firmware can replace the device's factory software.
Add product photo of the Waveshare 1.75C round display here before publishing.
The Waveshare 1.75C round display. Swap this placeholder for your own photo.

The setup at a glance

1. Pick a device
Browse compatible hardware at gadgets.muse.ai
2. Assemble it
Install the battery, close the case, attach the lanyard
3. Get a token
Create a private Muse Gadget SDK token
4. Install Muse
Build and flash the firmware for your exact board
5. Pair and use it
Connect the gadget to the Muse phone app and Wi-Fi
1. Start at Meta's Muse Gadgets website

Go to gadgets.muse.ai and scroll to Project Ideas. Meta lists several ways to build a physical interface for Muse. They aren't all the same kind of product: some are small displays, others are e-ink panels, voice devices, or Raspberry Pi projects.

A few examples from the site:

The important distinction: the Muse Gadgets website is a starting point, not a store selling a prebuilt Muse charm. You buy the hardware from the relevant manufacturer or seller, and install the Muse SDK firmware yourself. Hardware support and features vary by model.

2. Buy your board

Pick a board from Meta's Project Ideas list and buy it from the manufacturer or an authorized seller. Write down the exact model name and suffix (letters at the end matter), because similar-looking boards often use different firmware.

Regardless of which one you choose, you'll also need:

If your package doesn't include a battery or strap, check the contents of the variant you ordered before you start assembling.

Don't mix up similar-sounding models. A one-letter difference in a model suffix often means a completely different board with different firmware. Confirm the exact model matches the one listed on Meta's Project Ideas page before flashing anything.
On my build · Waveshare ESP32-S3-Touch-AMOLED-1.75C

This is the round touchscreen in a brushed-aluminum case. Specs:

  • 1.75-inch, 466 × 466 AMOLED touchscreen, round aluminum enclosure.
  • ESP32-S3, 32 MB flash, 8 MB PSRAM.
  • Dual microphones, audio circuitry, speaker.
  • Bluetooth Low Energy and 2.4 GHz Wi-Fi.
  • Physical PWR and BOOT buttons, USB-C, keyed connector for a 3.7 V battery.

The 1.75C is not the 1.75 (16 MB flash, different board) and not the 1.85C LCD. The suffix letter is the difference.

3. Assemble the hardware

If your board shipped with the battery detached (most do), this is the first hands-on step. The exact steps depend on your enclosure, but the sequence is almost always the same:

  1. Unplug USB and power the device off before opening the enclosure.
  2. Follow your manufacturer's teardown or battery-installation video to open the case.
  3. Connect the compatible battery to the board's battery socket using the keyed connector as intended. Never force it or guess the wire polarity.
  4. Seat the battery and wire carefully, making sure nothing is pinched when the case closes.
  5. If your board has lanyard or strap holes, attach a strap now while the device is open and easy to handle.
  6. Close the case and press the power button. Seeing the manufacturer's factory demo screen is normal — Muse hasn't been installed yet.
Battery safety: don't charge or use a swollen, damaged, punctured, or hot battery. Avoid forcing metal tools into the case or lanyard openings.
On my build · Waveshare 1.75C

Mine came with the battery detached. The specifics:

  • Battery: 3.7 V with an MX1.25 two-pin keyed connector that plugs straight into the socket on the board.
  • Case: rear cover pops off per Waveshare's video; the battery nests into a recess so it doesn't rattle.
  • Lanyard: two small holes on the aluminum edge. Pass the thin loop of the strap through, then pull the larger strap through that loop. A soft floss threader helps if the cord keeps folding back on itself.
  • Power button: labeled PWR on the side.
4. Generate a Muse SDK token

Open gadgets.muse.ai/settings/sdk-tokens. Sign in, review the Gadget SDK Terms, and create a new token from Account → SDK tokens. A gadget needs a token to pair with your Muse account.

Treat this like a password. Don't post it in a Reel, screenshot, GitHub commit, or public AI chat. The firmware setup will ask you to put it into the SDK configuration locally. If you expose or revoke it, you'll need to update the gadget's configuration and may need to pair again.

5. Install Muse firmware on the device

Connect the device to your computer with a USB data cable. Installing Muse means writing new firmware to the board, which replaces the factory software. If you want to be able to restore the factory firmware later, back it up first using your manufacturer's recovery resources.

Open Claude Code (or any coding agent that can read a repo and run commands locally) and give it a prompt like this. Swap in your own board model wherever you see [YOUR BOARD]:

I'm trying to install Muse firmware on my [YOUR BOARD], connected to my computer by USB. Go to gadgets.muse.ai, find the setup instructions for my exact board, and flash it. If the setup instructions aren't on the site, the source is at github.com/facebookincubator/muse-gadget-sdk, so find the right directory and board profile for my hardware model and use that. Confirm which USB serial device is attached before flashing, and ask me before anything destructive (don't erase the full flash or modify eFuses without checking).

For my build, [YOUR BOARD] was Waveshare ESP32-S3-Touch-AMOLED-1.75C (466x466 AMOLED, 32 MB flash, 8 MB PSRAM), and the agent correctly picked the s3 / waveshare-s3-175c profile. If you're on a different board, don't paste my model name, use your own, and let the agent find the right profile from the Muse site or the repo.

That's it. The agent reads the official docs, figures out the toolchain, backs up what it can, and asks before flashing. When flashing finishes, the display should show the Muse interface or a pairing-ready state. If something looks wrong, have the agent read the serial log before trying anything else.

6. Pair your gadget with the Muse app

After firmware installation:

  1. Open the Muse app on your iPhone or Android device and sign in.
  2. Navigate to Settings → Devices and switch on Developer mode.
  3. Tap Add Device (+).
  4. Look for a Bluetooth device named MuseGadget-XXXXXX. The last characters distinguish one gadget from another.
  5. When the app requests confirmation, briefly press your board's pairing/talk button. Each board uses a different physical button — check your board's device-specific docs on gadgets.muse.ai if you're not sure which one.
  6. Follow the app's prompts to connect the gadget to your 2.4 GHz Wi-Fi network and complete setup.

On a board with a full Muse display, you may see the gadget's name or a colored status indication while pairing. The exact UI can change between firmware revisions.

You are now using Muse through a piece of hardware you assembled and flashed yourself, not running the entire AI model locally on the device.

On my build · Waveshare 1.75C

The pairing/talk button is the top button on the enclosure. A brief press confirms pairing; the same button later works as push-to-talk once setup is done.

7. Try your first interaction

With the gadget connected, use its push-to-talk button to send a request. The board has microphones, a speaker, touch controls, and an on-screen Muse interface. Try a simple prompt like, "Give me a fun fact," or "What's on my schedule today?" if your account and connected services support that information.

The on-screen avatar, settings, images, and audio behavior depend on your firmware version. Meta also documents a way to update the display's avatar, which is a fun follow-up project once basic pairing is working.

Troubleshooting

The device powers on, but I see a factory demo.

That's the manufacturer's factory firmware, not a sign that the hardware is wrong. You still need to flash the Muse firmware. On the Waveshare 1.75C, the demo is a loop of Waveshare branding.

My device isn't in the browser flasher.

Don't pick a similar-sounding board as a substitute. If your exact model isn't in the browser flasher, use the SDK/repo route and the exact board profile matching your hardware. On the Waveshare 1.75C, that's s3 / waveshare-s3-175c — not s3n and not the 1.85C LCD.

My Mac can't find the USB port.

First try a known USB-C data cable, another USB port, and tools/muse/ports.py --list from the repository. macOS ESP32 devices often show up under /dev/cu.usbmodem*.

The firmware won't build.

Check you're actually running ESP-IDF v6.0.1, not a newer or older release, and make sure its export.sh was sourced in the active shell. If you're using an agent, ask it to confirm the toolchain version before rebuilding.

The screen went blank after flashing.

Check the selected board, flash size, and the serial log before trying anything else. Reflash only after you've confirmed the exact board profile matches your hardware. On the Waveshare 1.75C, the only correct profile is s3 / waveshare-s3-175c.

I can't see MuseGadget-XXXXXX in the app.

Check Developer mode and Bluetooth permissions. Reopen the device's setup window with a short button press; if you need a clean pairing setup, Meta documents holding the setup button for approximately five seconds to forget the pairing and Wi-Fi settings.

It pairs but won't connect to Wi-Fi.

Use a compatible 2.4 GHz network and check your credentials. Avoid guest networks or public networks that require a captive portal or block device-to-service connections.

My token was revoked.

Create and provision a valid SDK token, then pair again as directed by Meta. Keep tokens out of public screenshots, code, and videos.

Is it worth building?

If you want a polished, ready-to-use AI accessory, this probably isn't the easiest route. You are buying a development board and installing experimental firmware. But if you enjoy little hardware projects and the idea of a portable AI companion, it's a fun way to bring an AI assistant off your phone and onto a physical device.

My suggestion: start with the hardware Meta has already documented before trying to port Muse to an entirely different board. And if you're using the Waveshare 1.75C, double-check that model suffix before flashing anything.

Links and original documentation

Useful for anyone, regardless of board:

Last checked: October 25, 2026. Hardware, firmware, website interfaces, availability, and SDK requirements can change. This is an independent DIY guide, not an official Meta or Waveshare tutorial. Use compatible equipment and follow manufacturer safety instructions.

Build the thing. Then show someone.

Half the fun is handing a round, blinking little gadget to someone and watching them figure out it's an AI. If you build one, tag @akad_technology so I can see it.