
Documentando el protocolo BLE de Osmo Mobile

Este repositorio explora el protocolo Bluetooth Low Energy (BLE) utilizado por la serie Osmo Mobile de estabilizadores.
Las aplicaciones móviles oficiales están desactualizadas y requieren permisos amplios del sistema. Sin embargo, los estabilizadores se comunican mediante un protocolo BLE simple.
El objetivo de este proyecto es documentar ese protocolo de manera abierta y reproducible, permitiendo controlar el hardware desde cualquier host Bluetooth, como una laptop.
Este proyecto es solo con fines educativos y de interoperabilidad. No se distribuye software o firmware propietario en este repositorio.
El Osmo Mobile 2 (OM2) es el único estabilizador de la serie que aún puede accionarse usando el Mobile SDK oficial.
El plan es construir primero una aplicación Android mínima (ver sdk-app) que pueda descubrir y conectarse al dispositivo, luego enviar comandos de rotación con parámetros precisos y controlables. A continuación, desarrollar una herramienta de sniffing para capturar y analizar el tráfico BLE generado por la aplicación.
Vela en acción en imgur.
Probado en: OM2, OM3, OM4.
duml.py - analizador básico de paquetes DUML; el estabilizador sigue el mismo protocolo usado en otros productos, como Mavicgimbal.py - un controlador que maneja la conexión, descubrimiento de MTU, escritura de comandos de salida y suscripción al canal de notificacionesrotate.py - programa de ejemplo, emite varios comandos de rotación al estabilizador[!NOTE] En Linux/BlueZ, asegúrate de que el dispositivo no esté conectado actualmente a tu sistema, o Bleak no podrá conectarse.
Otra PoC es una interfaz web construida sobre la API Web Bluetooth en web-bluetooth. Proporciona un controlador mínimo en el navegador para rotar el estabilizador.
Puedes probarlo en om-research.flab.dev