
Osmo Mobile BLE 프로토콜 문서화

이 저장소는 Osmo Mobile 시리즈 짐벌에서 사용하는 Bluetooth Low Energy (BLE) 프로토콜을 탐구합니다.
공식 모바일 앱은 구식이며 광범위한 시스템 권한이 필요합니다. 그러나 짐벌 자체는 간단한 BLE 프로토콜을 통해 통신합니다.
이 프로젝트의 목표는 해당 프로토콜을 개방적이고 재현 가능한 방식으로 문서화하여, 노트북과 같은 모든 Bluetooth 호스트에서 하드웨어를 제어할 수 있도록 하는 것입니다.
이 프로젝트는 교육 및 상호 운용성 목적으로만 사용됩니다. 이 저장소에는 독점 소프트웨어나 펌웨어가 배포되지 않습니다.
Osmo Mobile 2 (OM2)는 공식 Mobile SDK Android를 사용하여 여전히 작동할 수 있는 시리즈의 유일한 짐벌입니다.
계획은 먼저 장치를 검색하고 연결할 수 있는 최소한의 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를 기반으로 구축된 웹 UI입니다. 짐벌을 회전시키기 위한 최소한의 브라우저 내 컨트롤러를 제공합니다.
om-research.flab.dev에서 시도해 볼 수 있습니다.