
Osmo Mobile BLEプロトコルの文書化

このリポジトリは、Osmo Mobile シリーズのジンバルで使用されている Bluetooth Low Energy (BLE) プロトコルを調査します。
公式のモバイルアプリは古く、広範なシステム権限が必要です。 しかし、ジンバル自体はシンプルな BLE プロトコルで通信します。
このプロジェクトの目標は、そのプロトコルをオープンで再現可能な方法で文書化し、ラップトップなどの任意の Bluetooth ホストからハードウェアを制御できるようにすることです。
このプロジェクトは教育および相互運用性の目的にのみ使用されます。このリポジトリにはプロプライエタリなソフトウェアやファームウェアは配布されていません。
Osmo Mobile 2 (OM2) は、公式の Mobile SDK を使用してまだ作動させることができるシリーズ唯一のジンバルです。
計画は、まずデバイスを発見して接続し、正確で制御可能なパラメータで回転コマンドを送信できる最小限の Android アプリケーション(sdk-app を参照)を構築することです。次に、アプリによって生成された BLE トラフィックをキャプチャして分析するスニッフィングツールを開発します。
動作は imgur でご覧ください。
テスト済み: OM2, OM3, OM4。
duml.py - DUML パケットの基本パーサー; ジンバルは Mavic などの他の製品と同じプロトコルに従いますgimbal.py - 接続、MTU 探索、出力コマンドの書き込み、通知チャンネルの購読を処理するドライバーrotate.py - サンプルプログラム、ジンバルに複数の回転コマンドを発行[!NOTE] Linux/BlueZ では、デバイスが現在システムに接続されていないことを確認してください。そうしないと、Bleak が接続できません。
別の PoC は、web-bluetooth にある Web Bluetooth API 上に構築された Web UI です。ジンバルを回転させるための最小限のブラウザ内コントローラーを提供します。
次の URL で試せます: om-research.flab.dev