afterware
Resources
Saved
Interface · mod

Muse gadget firmware on three Waveshare ESP32-S3 boards

Original

A fork of Meta's Muse Gadget SDK that runs the Muse avatar UI on three Waveshare ESP32-S3 touch boards, with spoken replies through ElevenLabs streaming TTS and a dizzy, sleepy and tickle animation set.

Build sheet
Boards
Waveshare ESP32-S3 x3
Display
Round LCD and AMOLED
Framework
ESP-IDF, LVGL
Base
Meta Muse Gadget SDK fork
Can I build this?Beginner · AI 4/5 · $25–50
Difficulty
Beginner
AI-buildability
4/5

Nearly all the work is ESP-IDF firmware that AI tools can write and adapt, with off-the-shelf Waveshare boards that need no soldering, though ESP-IDF setup and board quirks still need hands-on debugging.

Time
A weekend
Cost
$25–50
Tools
USB-C cablecomputer with ESP-IDF installedMuse account and SDK token
Starter prompt

Based on "Muse gadget firmware on three Waveshare ESP32-S3 boards" on Afterware: https://afterware.xyz/p/muse-gadget-firmware-on-three-waveshare-esp32-s3-boards

Set up an ESP-IDF project for an ESP32-S3 board with a round 1.85in ST77916 QSPI display and CST816 touch. Use LVGL to draw a simple animated avatar screen, and add a horizontal swipe that opens a settings page and a vertical drag that changes a volume ring on the edge. Keep the display driver and touch driver in separate files so the board definition can be swapped.

Estimates based on the original write-up. How AI-buildability is scored. The maker built this with AI tools: more vibe-coded builds. Building with an AI assistant? Connect it to Afterware (free MCP server).

Story

This fork of Meta's Muse Gadget SDK adds support for three Waveshare ESP32-S3 boards: the ESP32-S3-Touch-LCD-1.85C in a round speaker enclosure, the round ESP32-S3-Touch-AMOLED-1.43C, and the square ESP32-S3-Touch-AMOLED-1.8. All three run the full Muse UI with an animated avatar, push-to-talk on the BOOT button, touch settings and OTA updates. The boards are community ports and are marked experimental.

The fork adds spoken replies through ElevenLabs streaming text-to-speech, optional pushed messages, touch volume by dragging on the avatar screen, and battery percentage with a time-left estimate. It also includes a display freeze fix cherry-picked from upstream and watchdogs turned back on so a stuck task reboots the board.

The avatar gets a set of reactions: shaking the board makes it dizzy on boards with a QMI8658 accelerometer, it dozes with a snore before the screen sleeps, wakes when the screen returns, and giggles when its face is rubbed or tapped quickly. The repository notes that the code was written with AI coding tools, and the character art belongs to Meta.

Resources · 3
More like this
More like this