
Documentando o protocolo BLE do Osmo Mobile

Este repositório explora o protocolo Bluetooth Low Energy (BLE) usado pela série Osmo Mobile de gimbals.
Os aplicativos móveis oficiais estão desatualizados e exigem permissões amplas do sistema. No entanto, os próprios gimbals se comunicam através de um protocolo BLE simples.
O objetivo deste projeto é documentar esse protocolo de forma aberta e reprodutível, permitindo que o hardware seja controlado a partir de qualquer host Bluetooth, como um laptop.
Este projeto é apenas para fins educacionais e de interoperabilidade. Nenhum software ou firmware proprietário é distribuído neste repositório.
O Osmo Mobile 2 (OM2) é o único gimbal da série que ainda pode ser acionado usando o Mobile SDK oficial.
O plano é primeiro construir um aplicativo Android mínimo (veja sdk-app) que possa descobrir e conectar ao dispositivo, depois enviar comandos de rotação com parâmetros precisos e controláveis. Em seguida, desenvolver uma ferramenta de sniffing para capturar e analisar o tráfego BLE gerado pelo aplicativo.
Veja em ação no imgur.
Testado em: OM2, OM3, OM4.
duml.py - analisador básico de pacotes DUML; o gimbal segue o mesmo protocolo usado em outros produtos, como o Mavicgimbal.py - um driver que gerencia conexão, descoberta de MTU, escrita de comandos de saída e inscrição no canal de notificaçãorotate.py - programa de exemplo, emite vários comandos de rotação para o gimbal[!NOTE] No Linux/BlueZ, certifique-se de que o dispositivo não está atualmente conectado ao seu sistema, ou o Bleak não conseguirá conectar.
Outra PoC é uma interface web construída na API Web Bluetooth em web-bluetooth. Ela fornece um controlador mínimo no navegador para girar o gimbal.
Você pode experimentá-lo em om-research.flab.dev