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.runzum Ausführen von Shell-Befehlenfile.read/file.writefür Dateizugriff in 64-KB-Blöckendevice.healthfü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.shfü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.mdunterstü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.hsteht unter CC0-1.0 undpixel_font.cunter 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
- Repository: https://github.com/facebookincubator/muse-gadget-sdk
- Dokumentation: https://gadgets.muse.ai
- SDK-Nutzungsbedingungen: https://gadgets.muse.ai/sdk-terms
- SDK-Token: https://gadgets.muse.ai/settings/sdk-tokens
- Leitfaden zum Mitwirken:
CONTRIBUTING.mdim Repository - Community: Discord (im README des Repositories verlinkt)
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.