Skip to content

alkersan/om-research

Repository files navigation

OM Research

gimbal

This repository explores the Bluetooth Low Energy (BLE) protocol used by the Osmo Mobile series of gimbals.

The official mobile apps are outdated and require broad system permissions. However, the gimbals themselves communicate through a simple BLE protocol.

The goal of this project is to document that protocol in an open and reproducible way, enabling the hardware to be controlled from any Bluetooth host, such as a laptop.

This project is for educational and interoperability purposes only. No proprietary software or firmware is distributed in this repository.

SDK App

The Osmo Mobile 2 (OM2) is the only gimbal in the series that can still be actuated using the official Mobile SDK.

The plan is to first build a minimal Android application (see sdk-app) that can discover and connect to the device, then send rotation commands with precise, controllable parameters. Next, develop a sniffing tool to capture and analyze the BLE traffic generated by the app.

Proof of concept app

See in action on imgur.

Tested on: OM2, OM3, OM4.

  • duml.py - basic parser of DUML packets; gimbal follows the same protocol used in other products, like Mavic
  • gimbal.py - a driver handling connection, MTU discovery, writing output commands and subscribing to notification channel
  • rotate.py - example program, issues several roration commands to the gimbal

Note

In Linux/BlueZ, make sure that device is not currently connected to your system, or Bleak will not be able to connect

Web Bluetooth Prototype

Another PoC is a web UI built on the Web Bluetooth API in web-bluetooth. It provides a minimal in-browser controller for rotating the gimbal.

You can try it at om-research.flab.dev

Misc links:

About

Documenting Osmo Mobile BLE protocol

Resources

License

Stars

Watchers

Forks

Contributors