Start / Open Source / muse-gadget-sdk

muse-gadget-sdk

Open-Source-SDK, mit dem sich ESP32-Boards sowie Raspberry Pi oder Linux-Rechner in individuelle Gadgets verwandeln lassen, die sich mit der mobilen Muse-App koppeln.

CApache-2.0Framework
⭐ GitHubhttps://github.com/facebookincubator/muse-gadget-sdk
250
Stars
+0
Star-Wachstum
3. Okt. 2026
Zuletzt aktualisiert
8
Klicks

1. Projektübersicht

Muse Gadget SDK ist ein Open-Source-SDK, das handelsübliche Hardware wie ESP32-Boards und Raspberry Pi oder andere Linux-Rechner in „Gadgets“ verwandelt, die sich mit der mobilen Muse-App unter iOS und Android koppeln lassen. So können Entwickler eigene vernetzte Geräte erstellen, ohne die Hardware von Grund auf neu entwerfen zu müssen.

2. Hintergrund und Positionierung

Warum es existiert

Mit Muse Gadgets können Maker die Muse-App um eigene Geräte erweitern: Displays, Sensoren, Tasten, Mikrofone, Lautsprecher und Aktoren. Das SDK liefert die Firmware und den Client-Code für Kopplung und Kommunikation, sodass du dich ganz darauf konzentrieren kannst, was dein Gadget tun soll.

Wie es sich von ähnlichen Projekten unterscheidet

  • Auf Begleit-Apps ausgelegt: Geräte koppeln sich über einen Entwicklermodus-Ablauf mit der mobilen Muse-App statt über ein generisches Cloud-Dashboard.
  • Zwei Gerätefamilien in einem Repository: C-basierte ESP32-Firmware für Mikrocontroller und ein Python-basiertes SDK für vollständige Linux-Systeme.
  • Agentenfreundlich: Jedes SDK enthält eine AGENTS.md, damit KI-Coding-Agenten (einschließlich Muse Code) beim Erstellen, Flashen und Erweitern von Gadgets helfen können.
  • Von Haus aus hackerfreundlich: Das Projekt beschreibt sich selbst als „von Hackern für Hacker gebaut, einfach zum Spaß“. Individuelle Firmware birgt daher Risiken und erfolgt auf eigene Verantwortung.

3. Funktionskategorien

🔌 ESP32-Geräte-SDK

Firmware und Komponenten für ESP32-Boards; im README sind fünf Board-Familien dokumentiert. Beispiele:

  • ESP32-C5 DevKitC-1 (Status-LED und Taste)
  • ideaspark ESP32 (1,9-Zoll-Display)
  • Seeed SenseCAP Indicator (4-Zoll-Bildschirm)
  • Waveshare AMOLED-Boards (vollständige Benutzeroberfläche, Push-to-Talk)
  • Home Assistant Voice Preview (LED-Ring, Sprache)

Zweck: Display-, Audio- und Sensor-Gadgets auf günstigen Mikrocontrollern bauen.

🐧 Linux-Geräte-SDK

Ein Python-Paket (musegadget), das einen Raspberry Pi oder einen anderen Bluetooth-LE-fähigen Linux-Rechner als Muse-Gadget erscheinen lässt. Beispiele:

  • system.run zum Ausführen von Shell-Befehlen
  • file.read / file.write für Dateizugriff in 64-KB-Blöcken
  • device.health für Laufzeit, Last, Arbeitsspeicher, Festplatte und Temperatur
  • Benutzerdefinierte Befehle für Home Assistant oder die Systemverwaltung

Zweck: Linux-Rechner vom Smartphone aus steuern und überwachen.

🖥️ Simulator und Werkzeuge

Zu finden in esp32/simulator, esp32/tools und esp32/tests. Beispiele:

  • Desktop-UI-Simulator (SDL-basiert) zur Vorschau von Bildschirmen
  • tools/board.sh für boardspezifisches Bauen, Flashen und Überwachen
  • Unit-Tests für den ESP32-Code
  • Boardspezifische Konfigurationen unter esp32/devices

Zweck: den Zyklus aus Bearbeiten, Bauen und Flashen verkürzen.

🧩 Skills

Das Verzeichnis skills/ enthält zusätzliche Funktionsmodule, die die Möglichkeiten von Gadgets und Coding-Agenten erweitern.

Zweck: wiederverwendbare Erweiterungen für die agentengestützte Entwicklung.

4. Die wichtigsten Highlights

  • Handelsübliche Hardware: Keine eigene Platine nötig; gängige ESP32-Boards und Raspberry-Pi-Modelle funktionieren sofort.
  • Kopplung mit dem Smartphone: Der Entwicklermodus in der Muse-App verbindet dein Gerät über ein SDK-Token.
  • Umfangreiche Geräte-UI: ESP32-Builds unterstützen Displays (LVGL-basierte UI), Avatare, Audio-Ein-/Ausgabe und Push-to-Talk auf kompatiblen Boards.
  • Fernsteuerung für Linux: Befehle ausführen, Dateien übertragen und Gesundheitsmetriken direkt aus der App ablesen.
  • KI-gestützter Arbeitsablauf: AGENTS.md-Dateien führen Coding-Agenten durch Einrichtung und Build-Prozess.
  • Freizügige Lizenz: Apache-2.0 für den Hauptcode, mit klar aufgeführten Ausnahmen für Drittanbieterkomponenten.

5. Anwendungsfälle nach Rolle

  • Allgemeine Entwickler / Maker: Prototyp eines Handheld-Displays, Sprachgeräts oder Sensor-Gadgets auf einem ESP32-Board erstellen.
  • DevOps / SRE: Einen Home-Lab- oder Edge-Linux-Rechner für schnelle Befehle und Zustandsprüfungen mit dem Smartphone verbinden (die unten stehenden Hinweise zu Berechtigungen beachten).
  • Embedded-Ingenieure: Simulator und Board-Skripte nutzen, um an der Firmware-UI zu arbeiten, ohne ständig flashen zu müssen.
  • Smart-Home-Enthusiasten: Auf Home Assistant ausgerichtete Gadgets wie Sprach- oder LED-Ring-Geräte bauen.

6. Erste Schritte

Finde, was du brauchst

Durchstöbere das Repository und lies das README im jeweiligen SDK-Verzeichnis:

git clone https://github.com/facebookincubator/muse-gadget-sdk.git
cd muse-gadget-sdk

Dokumentation: https://gadgets.muse.ai

Installieren / integrieren

Du benötigst zunächst ein SDK-Token von gadgets.muse.ai/settings/sdk-tokens und solltest dir die Gadget-SDK-Nutzungsbedingungen unter gadgets.muse.ai/sdk-terms durchlesen.

ESP32 (erfordert ESP-IDF v6.0.1):

cd esp32
idf.py menuconfig
idf.py build
idf.py -p /dev/cu.usbmodem1101 flash monitor

# Boardspezifische Builds
tools/board.sh ideaspark build

Linux / Raspberry Pi:

curl -fsSL https://raw.githubusercontent.com/facebookincubator/muse-gadget-sdk/main/linux/install.sh -o install.sh
bash install.sh --sdk-token mgst_…

Mitwirken

Lies die Datei CONTRIBUTING.md im Repository und eröffne dann ein Issue oder einen Pull Request: https://github.com/facebookincubator/muse-gadget-sdk

7. Projektstruktur

muse-gadget-sdk/
├── esp32/
│   ├── avatar/       # Avatar-Grafiken und Rendering
│   ├── cmake/        # Build-Konfiguration
│   ├── components/   # Firmware-Komponenten
│   ├── devices/      # Boardspezifische Konfigurationen
│   ├── main/         # Kern-Firmware-Code
│   ├── simulator/    # Desktop-UI-Vorschau
│   ├── tests/        # Unit-Tests
│   └── tools/        # Build- und Hilfsskripte (board.sh)
├── linux/
│   ├── examples/     # Beispielimplementierungen
│   ├── src/musegadget/  # Python-Kern-SDK
│   ├── tests/        # Testsuite
│   └── install.sh    # Installer
├── skills/           # Zusätzliche Funktionsmodule
└── .github/          # Workflows und Dokumentationsressourcen

8. Verwandtes Ökosystem

  • Muse-App (iOS und Android): die Begleit-App, die sich mit den Gadgets koppelt.
  • ESP-IDF v6.0.1: Espressifs Entwicklungsframework für ESP32-Firmware.
  • LVGL: Embedded-Grafikbibliothek, die zur Build-Zeit geladen wird.
  • SDL: wird vom Desktop-Simulator genutzt.
  • Home Assistant: ein Ziel-Ökosystem für Sprach- und Custom-Command-Gadgets.
  • uv und pytest: werden für die Entwicklung und das Testen des Linux-SDK verwendet.
  • Muse Code: ein Coding-Agent, der über AGENTS.md unterstützt wird.

9. Lizenz

  • ✅ Den Code unter der Apache License 2.0 nutzen, verändern und verbreiten – auch kommerziell
  • ✅ Lizenz- und Urheberrechtshinweise bei Weiterverbreitung beibehalten
  • ❌ Nicht davon ausgehen, dass der Jollybot-Avatar unter Apache-2.0 fällt; er ist ausgenommen
  • ℹ️ Drittanbieterkomponenten behalten ihre eigenen Lizenzen: minimp3.h steht unter CC0-1.0 und pixel_font.c unter BSD-2-Clause
  • ℹ️ Die Nutzung des Gadget SDK unterliegt zusätzlich den Gadget-SDK-Nutzungsbedingungen unter gadgets.muse.ai/sdk-terms
  • ℹ️ Individuelle Firmware und das Linux-SDK laufen mit den Berechtigungen des installierenden Kontos (einschließlich sudo, falls verfügbar) – Nutzung auf eigenes Risiko

10. FAQ

F: Brauche ich ein Token, um das SDK zu nutzen?
A: Ja. Besorge dir vor dem Flashen oder Koppeln eines Gadgets ein SDK-Token unter gadgets.muse.ai/settings/sdk-tokens.

F: Welche ESP-IDF-Version sollte ich verwenden?
A: Im ESP32-README ist ESP-IDF v6.0.1 angegeben.

F: Welche Linux-Systeme werden unterstützt?
A: Raspberry Pi 3B+, 4, 5 und Zero 2 W oder jeder Bluetooth-LE-fähige Linux-Rechner mit Raspberry Pi OS Bullseye+, Debian 11+ oder Ubuntu 22.04+.

F: Kann ich die UI ohne Hardware ansehen?
A: Ja, nutze dafür den Desktop-Simulator in esp32/simulator.

F: Ist es sicher, das Ganze auf meinem Hauptrechner auszuführen?
A: Das Linux-SDK kann Shell-Befehle ausführen und mit den Rechten des installierenden Benutzers auf Dateien zugreifen. Nutze lieber ein dediziertes Gerät und lies vorher das README.

11. Schnelllinks

12. Zusammenfassung

Das Muse Gadget SDK bietet Makern und Entwicklern einen praxisnahen Weg, um günstige ESP32-Boards und Linux-Rechner in mit dem Smartphone verbundene Gadgets zu verwandeln. Es eignet sich für Hardware-Bastler, Smart-Home-Erbauer und alle, die KI-gestützte Firmware-Entwicklung unter einer freizügigen Apache-2.0-Lizenz betreiben möchten.