Muse meets the CYD: Meta's Muse Gadget SDK Now Runs on the NM-CYD-C5

Muse meets the CYD: Meta's Muse Gadget SDK Now Runs on the NM-CYD-C5

The chip inside Meta's own Home Link is same as the NM-CYD-C5. So we ported the SDK's ESP32 firmware on it —— one build command, one flash command, and your CYD-C5 becomes a personal-AI termimal.Meta open-sourced the Muse Gadget SDK this month. The Home Link bridge that anchors its gadget lineup runs on ESP32-C5. So does the board on your desk: the NM-CYD-C5. We ported the SDK's ESP32 firmware to it, and it is now one command away.

 

On 19 October 2026, Meta published the Muse Gadget SDK — an open-source ESP32 device SDK that turns ordinary hardware into a physical interface for Muse, Meta's personal AI agent. Espressif followed with a write-up of the ecosystem: Home Link on ESP32-C5, a pile of ESP32-S3 terminals, and an ESP32-S31 development platform on the way.

One detail in that announcement mattered more to us than the rest. The chip inside Home Link — the USB-C bridge Meta's gadget lineup uses to reach devices on your home network — is the exact chip we already build a board around. The NM-CYD-C5 has had an ESP32-C5, 16 MB of flash and 8 MB of PSRAM under a 2.8-inch touchscreen since launch. Adding a Muse gadget port was not a research project — it was a board definition, a config overlay, and a touchscreen that finally has something interesting to do.

As of today, the port ships in our fork of the SDK:  muse-gadget-sdk  branch nm-cyd-c5. One build command, one flash command, and your CYD is a Muse terminal.

What a Muse gadget actually is

The SDK is not a chat app. It is a device runtime: your board pairs with the Muse app, holds an encrypted session to Muse, and then renders whatever Muse sends it and reports back what its hardware can sense or accept.

  • Pairing and identity. Every gadget needs an SDK token. The board stores Wi-Fi credentials and the device token in NVS.
  • An avatar UI. Boards marked UI in the SDK run a full interface: an animated character, a settings menu, brightness and sleep control, and pairing confirmation on screen.
  • Images from Muse. Muse can push a picture to the panel — a chart, a page, a generated image.
  • A home-network tunnel. With enough PSRAM, the board also becomes a foothold inside your LAN: Muse reaches compatible devices through their local HTTP APIs, using the community skills bundled in the SDK (Hue, Sonos, Kasa, Moonraker, ratgdo and dozens more).
  • Your own commands. Register a handler in link.register and Muse can call it — read a sensor, toggle a relay, run whatever you wired up.

The important part for a hardware vendor: the SDK is board-neutral. A board is a small sdkconfig overlay plus a C file that implements the muse_board_t interface — display up, display lock, brightness, panel sleep, button polling, status LED. Nothing in the shared UI, audio or link layer changes.

Why the ESP32-C5 is the right chip for this

Most Muse gadgets in the wild are ESP32-S3 boards. The C5 brings two things that matter for a display terminal:

  • Dual-band Wi-Fi 6. 2.4 GHz and 5 GHz, 802.11ax, OFDMA. In a house with thirty smart plugs on 2.4 GHz, putting your desk terminal on the 5 GHz band is not a luxury — it is the difference between a responsive avatar and a stuttering one.
  • 8 MB of PSRAM alongside 16 MB of flash. The tunnel needs PSRAM. So does holding a full image in memory before it hits the panel. Flash headroom means OTA stays enabled on this board rather than being traded away for a bigger app slot.

RISC-V, 240 MHz, BLE 5.3 and 802.15.4 come along for the ride. The SDK uses Wi-Fi and BLE; the 802.15.4 radio is there for your own code.

What you get on the NM-CYD-C5

Straight from the SDK's feature matrix, this is the C5 column:

Capability NM-CYD-C5
Status shown on Animated avatar + WS2812 RGB LED
UI and settings Yes — touch-driven menu, brightness, sleep
Images from Muse Yes
Home-network tunnel Yes (8 MB PSRAM)
Touch XPT2046 resistive, calibrated on device
Speaker and mic None on board — no push-to-talk, no voice session
Battery telemetry Not integrated
Over-the-air updates On
Buttons BOOT: sleep/wake, BLE pairing, confirmation

That table is honest about the one real gap: this is a display-and-touch gadget, not a voice puck. There is no codec on the board, so the SDK correctly reports push-to-talk as unavailable. You read Muse on it, you tap it, you look at it. You do not talk to it. If voice is what you want, the same SDK runs on the ESP32-S3 boards that have an ES8311 or ES7210 — and we will happily point you at one.

Build and flash

Prerequisites: ESP-IDF v6.0.1 exactly (other versions are unsupported), a data-capable USB-C cable, an SDK token from gadgets.muse.ai, and the Muse app on your phone.

git clone -b nm-cyd-c5 https://gitee.com/Rockbase-iot/muse-gadget-sdk.git
cd muse-gadget-sdk/esp32

# ESP-IDF v6.0.1 must already be installed and exported
tools/muse/board.sh build nm-cyd-c5
tools/muse/board.sh flash nm-cyd-c5 /dev/ttyACM0

python -m esp_idf_monitor --port /dev/ttyACM0 \
  build-muse-nm-cyd-c5/muse-gadget.elf

The board script loads sdkconfig.defaults, then devices/sdkconfig.muse, then devices/sdkconfig.muse-nm-cyd-c5, and builds in its own build-muse-nm-cyd-c5 directory with the right target. That overlay is fourteen settings: target esp32c5, the board switch, button on GPIO 28, DIO flash mode, USB Serial/JTAG console, and the PSRAM and LWIP buffer settings that keep the tunnel and the image path comfortable in 8 MB.

No token at build time is fine. Send this line on the board's console and it stores the token in NVS, answers @sdk_token ok, and restarts:

>sdk_token=mgst_...

Then in the Muse app: Settings → Devices → Developer mode, add the device, tap the screen or press BOOT when the board asks you to confirm. Orange breathing means ready. Green means connected.

Four things to do with it on day one

  1. A Muse terminal on your desk that is not your phone. The avatar shows state at a glance, images land on the panel, and the phone stays in your pocket.
  2. An image drop target. Ask Muse for a chart, a page, a diagram, and have it appear on the C5. A 320×240 panel next to a monitor earns its place surprisingly fast.
  3. A platform for your own commands. Register a handler, expose a sensor or a relay, and let Muse call it. The CYD's GPIO header is right there.

Get the board, flash it tonight

The NM-CYD-C5 is the same hardware you already know — 2.8-inch 320×240 touch LCD, ESP32-C5, 16 MB flash, 8 MB PSRAM, dual-band Wi-Fi 6, external antenna option, acrylic case — with a second life as a Muse gadget. It is also still a normal CYD: Arduino, ESP-IDF and everything else you have ever flashed to one still work.

 

返回網誌