
Dokumentation des Osmo Mobile BLE-Protokolls

Dieses Repository erforscht das Bluetooth-Low-Energy-(BLE)-Protokoll, das von der Osmo-Mobile-Serie von Gimbals verwendet wird.
Die offiziellen mobilen Apps sind veraltet und erfordern umfangreiche Systemberechtigungen. Die Gimbals selbst kommunizieren jedoch über ein einfaches BLE-Protokoll.
Ziel dieses Projekts ist es, dieses Protokoll offen und reproduzierbar zu dokumentieren, sodass die Hardware von jedem Bluetooth-Host, z. B. einem Laptop, gesteuert werden kann.
Dieses Projekt dient ausschließlich Bildungs- und Interoperabilitätszwecken. In diesem Repository wird keine proprietäre Software oder Firmware verteilt.
Der Osmo Mobile 2 (OM2) ist das einzige Gimbal der Serie, das noch mit dem offiziellen Mobile SDK bewegt werden kann.
Der Plan ist, zunächst eine minimale Android-Anwendung (siehe sdk-app) zu erstellen, die das Gerät erkennen und verbinden kann, um dann Rotationsbefehle mit präzisen, steuerbaren Parametern zu senden. Als Nächstes soll ein Sniffing-Tool entwickelt werden, um den von der App erzeugten BLE-Verkehr zu erfassen und zu analysieren.
In Aktion sehen auf imgur.
Getestet mit: OM2, OM3, OM4.
duml.py – einfacher Parser für DUML-Pakete; das Gimbal folgt demselben Protokoll, das auch in anderen Produkten wie der Mavic verwendet wirdgimbal.py – ein Treiber, der Verbindung, MTU-Erkennung, das Senden von Ausgabebefehlen und das Abonnieren des Benachrichtigungskanals übernimmtrotate.py – Beispielprogramm, das mehrere Rotationsbefehle an das Gimbal sendet[!NOTE] Stellen Sie unter Linux/BlueZ sicher, dass das Gerät aktuell nicht mit Ihrem System verbunden ist, da Bleak sonst keine Verbindung herstellen kann.
Ein weiterer PoC ist eine Weboberfläche, die auf der Web-Bluetooth-API basiert und sich in web-bluetooth befindet. Sie bietet einen minimalen browserbasierten Controller zum Drehen des Gimbals.
Sie können es unter om-research.flab.dev ausprobieren.