[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article:muse-gadget-for-esp-mosaico-518923ca":3},{"article":4,"revisions":15},{"id":5,"author_id":6,"firmware_project_id":7,"slug":8,"published_revision_id":9,"visibility":10,"moderation_lock_reason":11,"version":12,"created_at":13,"updated_at":14},"ae6f32ca-076c-4696-95e8-413ca5a0c4cb","d6813108-814d-4256-af18-fc6d221943b2","518923ca-40c2-4029-b4ca-dca3722461f3","muse-gadget-for-esp-mosaico-518923ca","c2a68930-61b8-4fc3-885d-41e74fb2057a","public",null,10,"2026-10-07T15:09:28.160Z","2026-10-08T03:30:37.013Z",[16],{"id":9,"article_id":5,"revision_no":17,"state":18,"source_revision_id":11,"change_summary":19,"version":20,"submitted_at":21,"reviewed_at":22,"published_at":23,"created_at":13,"description":24,"rendered_description":25,"content":26},1,"published","First release (0.1.0). Meta's Muse on the ESP-Mosaico board: talk with the AI key, captions on the screen, replies spoken in Chinese by the board. Enter your own SDK token on the board (Settings > MUSE > SDK token) before pairing. Supports the camera module and the Interaction module (presence greeting, lights, infrared).",7,"2026-10-07T15:18:24.201Z","2026-10-08T02:37:15.983Z","2026-10-08T02:37:16.003Z","# Muse Gadget for ESP-Mosaico\n\nMeta's Muse, the voice companion, on the ESP-Mosaico board: talk to it with\nthe AI key, read its replies on the screen and hear them from the speaker.\nBuilt from the [Muse Gadget SDK](https:\u002F\u002Fgithub.com\u002Ffacebookincubator\u002Fmuse-gadget-sdk)\n(Apache-2.0) as an ESP-Mosaico application, so it installs from here like any\nother and keeps Vibe Mode for updates.\n\n## What you need\n\n- An ESP-Mosaico board. Its screen, microphone, speaker, AI key and BOOT key\n  are all it uses.\n- A Muse account and the Muse app on your phone, with an SDK token from\n  [gadgets.muse.ai](https:\u002F\u002Fgadgets.muse.ai\u002Fsettings\u002Fsdk-tokens)\n  (Account > SDK tokens). Every gadget needs one to pair.\n- 2.4 GHz Wi-Fi. The board has no 5 GHz.\n- Optional: the camera module in the left slot, for Muse's `camera.capture`;\n  the Interaction module in either slot, for the presence greeting, lights\n  and infrared.\n\n## First start\n\n1. Install this application and let the board restart into it.\n2. Press BOOT for the menu, open Settings, then the MUSE page, and tap\n   **SDK token**. Type your `mgst_…` token (48 characters) and confirm. The\n   row shows **Set**. The token stays on the board through restarts and\n   pairing resets.\n3. In the Muse app: Settings > Devices > Developer mode, then Add Device and\n   pick `MuseGadget-XXXXXX`.\n4. When the board asks, short-press the AI key within 60 s to confirm.\n5. Give your Wi-Fi name and password in the app. The board joins and goes\n   online.\n\nOver Bluetooth, the `sdk.token=mgst_…` command sets the token too, and\n`sdk.token=` (empty) forgets it.\n\n## Using it\n\n| Key | What it does |\n| --- | --- |\n| AI key, short press | Talk to Muse; press again to stop listening. Confirms a pairing when one is pending |\n| AI key, held 5 s | Forgets the pairing and Wi-Fi, then restarts |\n| AI key, held while powering on | Vibe Mode, for installing and updating applications |\n| BOOT | The menu: settings, screen off |\n\nReplies in Chinese are spoken by the board's own voice (esp-sr, Xiaole) with\ncaptions following the speech; replies in other languages are shown as text.\nMarkdown is left out of the captions.\n\nWith the Interaction module plugged in, someone walking up after a quiet\nminute turns the screen on and lights the module for 6 s; after ten quiet\nminutes Muse also greets them for the time of day.\n\n## What Muse can do with the board\n\nMuse calls these itself when they fit what you ask:\n\n| Command | What it does |\n| --- | --- |\n| `voice.say` | Says something unprompted, in the board's voice |\n| `voice.configure` | Volume and speaker on\u002Foff |\n| `display.show_text` | Shows a page of text |\n| `display.configure` | Brightness, auto-sleep time, screen on\u002Foff |\n| `display.draw_url`, `display.show_animation` | Shows an image or animation (upstream Muse) |\n| `camera.capture` | Takes a picture with the camera module |\n| `presence.read` | Whether someone is there, from the Interaction module |\n| `lights.set` | The module's six LEDs, one colour, optionally for a number of seconds |\n| `ir.send_nec` | One NEC infrared code from the module |\n\n## Known limits\n\n- The board reaches Muse's servers directly. Where they are blocked, it\n  needs a network that forwards its traffic; this image has no forwarding\n  settings of its own.\n- English and other non-Chinese replies are shown, not spoken: the board's\n  offline voice reads Chinese only.\n- Now and then ESP-Iris over USB stops answering while Muse keeps running;\n  unplugging and replugging the cable brings it back.\n\n## Source and licences\n\n- Application: [esp-mosaico-vibe, projects\u002Fmuse_gadget](https:\u002F\u002Fgithub.com\u002Fesp-mosaico\u002Fesp-mosaico-vibe)\n  (Apache-2.0).\n- SDK: the `esp-mosaico` branch of\n  [rowline\u002Fmuse-gadget-sdk](https:\u002F\u002Fgithub.com\u002Frowline\u002Fmuse-gadget-sdk), a\n  fork of Meta's Muse Gadget SDK (Apache-2.0).\n- Chinese caption font: Source Han Sans CN glyphs at 16 px (SIL Open Font\n  License 1.1).\n","\u003Ch1>Muse Gadget for ESP-Mosaico\u003C\u002Fh1>\n\u003Cp>Meta's Muse, the voice companion, on the ESP-Mosaico board: talk to it with\nthe AI key, read its replies on the screen and hear them from the speaker.\nBuilt from the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ffacebookincubator\u002Fmuse-gadget-sdk\" rel=\"nofollow noopener noreferrer\">Muse Gadget SDK\u003C\u002Fa>\n(Apache-2.0) as an ESP-Mosaico application, so it installs from here like any\nother and keeps Vibe Mode for updates.\u003C\u002Fp>\n\u003Ch2>What you need\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>An ESP-Mosaico board. Its screen, microphone, speaker, AI key and BOOT key\nare all it uses.\u003C\u002Fli>\n\u003Cli>A Muse account and the Muse app on your phone, with an SDK token from\n\u003Ca href=\"https:\u002F\u002Fgadgets.muse.ai\u002Fsettings\u002Fsdk-tokens\" rel=\"nofollow noopener noreferrer\">gadgets.muse.ai\u003C\u002Fa>\n(Account &gt; SDK tokens). Every gadget needs one to pair.\u003C\u002Fli>\n\u003Cli>2.4 GHz Wi-Fi. The board has no 5 GHz.\u003C\u002Fli>\n\u003Cli>Optional: the camera module in the left slot, for Muse's \u003Ccode>camera.capture\u003C\u002Fcode>;\nthe Interaction module in either slot, for the presence greeting, lights\nand infrared.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>First start\u003C\u002Fh2>\n\u003Col>\n\u003Cli>Install this application and let the board restart into it.\u003C\u002Fli>\n\u003Cli>Press BOOT for the menu, open Settings, then the MUSE page, and tap\n\u003Cstrong>SDK token\u003C\u002Fstrong>. Type your \u003Ccode>mgst_…\u003C\u002Fcode> token (48 characters) and confirm. The\nrow shows \u003Cstrong>Set\u003C\u002Fstrong>. The token stays on the board through restarts and\npairing resets.\u003C\u002Fli>\n\u003Cli>In the Muse app: Settings &gt; Devices &gt; Developer mode, then Add Device and\npick \u003Ccode>MuseGadget-XXXXXX\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>When the board asks, short-press the AI key within 60 s to confirm.\u003C\u002Fli>\n\u003Cli>Give your Wi-Fi name and password in the app. The board joins and goes\nonline.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Over Bluetooth, the \u003Ccode>sdk.token=mgst_…\u003C\u002Fcode> command sets the token too, and\n\u003Ccode>sdk.token=\u003C\u002Fcode> (empty) forgets it.\u003C\u002Fp>\n\u003Ch2>Using it\u003C\u002Fh2>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Key\u003C\u002Fth>\n\u003Cth>What it does\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>AI key, short press\u003C\u002Ftd>\n\u003Ctd>Talk to Muse; press again to stop listening. Confirms a pairing when one is pending\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>AI key, held 5 s\u003C\u002Ftd>\n\u003Ctd>Forgets the pairing and Wi-Fi, then restarts\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>AI key, held while powering on\u003C\u002Ftd>\n\u003Ctd>Vibe Mode, for installing and updating applications\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>BOOT\u003C\u002Ftd>\n\u003Ctd>The menu: settings, screen off\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Cp>Replies in Chinese are spoken by the board's own voice (esp-sr, Xiaole) with\ncaptions following the speech; replies in other languages are shown as text.\nMarkdown is left out of the captions.\u003C\u002Fp>\n\u003Cp>With the Interaction module plugged in, someone walking up after a quiet\nminute turns the screen on and lights the module for 6 s; after ten quiet\nminutes Muse also greets them for the time of day.\u003C\u002Fp>\n\u003Ch2>What Muse can do with the board\u003C\u002Fh2>\n\u003Cp>Muse calls these itself when they fit what you ask:\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Command\u003C\u002Fth>\n\u003Cth>What it does\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>\u003Ccode>voice.say\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Says something unprompted, in the board's voice\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>voice.configure\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Volume and speaker on\u002Foff\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>display.show_text\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Shows a page of text\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>display.configure\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Brightness, auto-sleep time, screen on\u002Foff\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>display.draw_url\u003C\u002Fcode>, \u003Ccode>display.show_animation\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Shows an image or animation (upstream Muse)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>camera.capture\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Takes a picture with the camera module\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>presence.read\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Whether someone is there, from the Interaction module\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>lights.set\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>The module's six LEDs, one colour, optionally for a number of seconds\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>ir.send_nec\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>One NEC infrared code from the module\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Ch2>Known limits\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>The board reaches Muse's servers directly. Where they are blocked, it\nneeds a network that forwards its traffic; this image has no forwarding\nsettings of its own.\u003C\u002Fli>\n\u003Cli>English and other non-Chinese replies are shown, not spoken: the board's\noffline voice reads Chinese only.\u003C\u002Fli>\n\u003Cli>Now and then ESP-Iris over USB stops answering while Muse keeps running;\nunplugging and replugging the cable brings it back.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>Source and licences\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>Application: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fesp-mosaico\u002Fesp-mosaico-vibe\" rel=\"nofollow noopener noreferrer\">esp-mosaico-vibe, projects\u002Fmuse_gadget\u003C\u002Fa>\n(Apache-2.0).\u003C\u002Fli>\n\u003Cli>SDK: the \u003Ccode>esp-mosaico\u003C\u002Fcode> branch of\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frowline\u002Fmuse-gadget-sdk\" rel=\"nofollow noopener noreferrer\">rowline\u002Fmuse-gadget-sdk\u003C\u002Fa>, a\nfork of Meta's Muse Gadget SDK (Apache-2.0).\u003C\u002Fli>\n\u003Cli>Chinese caption font: Source Han Sans CN glyphs at 16 px (SIL Open Font\nLicense 1.1).\u003C\u002Fli>\n\u003C\u002Ful>\n",{"title":27,"categories":28,"boards":32,"tags":34,"cover_images":35,"external_links":39,"attachments":50,"current_version":51,"license":52,"firmware_variants":53},"Muse Gadget for ESP-Mosaico",[29,30,31],"audio","display","communication",[33],"camera",[],[36,37,38],"\u002Fapi\u002Fv1\u002Ffiles\u002Faus_26e3f4ece7309845837403569b6b547cf68818091b7452dd095409c7d964f18f.webp","\u002Fapi\u002Fv1\u002Ffiles\u002Faus_4799820117238dc6e344b3193045209a236e431d9de5c4d01f807057d4fdb1f2.webp","\u002Fapi\u002Fv1\u002Ffiles\u002Faus_3d6af5d1fece6e9ff795a1da2e379ebaf9fd7143d754783b2485ea2aaa04ec8c.webp",[40,44,47],{"label":41,"url":42,"platform":43},"Application source (esp-mosaico-vibe, projects\u002Fmuse_gadget)","https:\u002F\u002Fgithub.com\u002Fesp-mosaico\u002Fesp-mosaico-vibe","github",{"label":45,"url":46,"platform":43},"Muse Gadget SDK, esp-mosaico branch","https:\u002F\u002Fgithub.com\u002Frowline\u002Fmuse-gadget-sdk\u002Ftree\u002Fesp-mosaico",{"label":48,"url":49,"platform":43},"Meta's Muse Gadget SDK","https:\u002F\u002Fgithub.com\u002Ffacebookincubator\u002Fmuse-gadget-sdk",[],"0.1.0","Apache-2.0",[54],{"type":55,"partitions":56,"iris":57},"iris",[],{"bundle_asset_id":58},"aus_62e8e78b21b3ab0fd1bc20ebb029d943af369fce9cd64d1153ab42a1b382ccbc.irisfw"]