
Документирование протокола BLE Osmo Mobile

В этом репозитории изучается протокол Bluetooth с низким энергопотреблением (BLE), используемый в серии подвесов Osmo Mobile.
Официальные мобильные приложения устарели и требуют широких системных разрешений. Однако сами подвесы общаются через простой протокол BLE.
Цель этого проекта — задокументировать этот протокол открытым и воспроизводимым образом, позволяя управлять оборудованием с любого Bluetooth-хоста, например, с ноутбука.
Этот проект предназначен только для образовательных целей и обеспечения совместимости. Никакое проприетарное программное обеспечение или прошивки не распространяются в этом репозитории.
Osmo Mobile 2 (OM2) — единственный подвес в серии, который всё ещё можно управлять с помощью официального Mobile SDK.
Планируется сначала создать минимальное Android-приложение (см. sdk-app), которое сможет обнаруживать и подключаться к устройству, затем отправлять команды вращения с точными, контролируемыми параметрами. Далее разработать инструмент для сниффинга и анализа BLE-трафика, генерируемого приложением.
Смотрите в действии на imgur.
Протестировано на: OM2, OM3, OM4.
duml.py — базовый парсер пакетов DUML; подвес использует тот же протокол, что и другие продукты, например Mavicgimbal.py — драйвер, обрабатывающий подключение, определение MTU, отправку выходных команд и подписку на канал уведомленийrotate.py — пример программы, отправляющий несколько команд вращения на подвес[!NOTE] В Linux/BlueZ убедитесь, что устройство в данный момент не подключено к вашей системе, иначе Bleak не сможет подключиться
Ещё одна PoC — это веб-интерфейс, построенный на Web Bluetooth API в web-bluetooth. Он предоставляет минимальный контроллер в браузере для вращения подвеса.
Вы можете попробовать его по адресу om-research.flab.dev