A Python SDK for interfacing with Movella DOT sensors via Bluetooth Low Energy (BLE). This package provides a simple and intuitive way to connect to, configure, and collect data from Movella DOT sensors.
- BLE connection and device discovery
- Multiple sensor support
- Real-time data streaming
- Various payload modes for different data types
- Configurable output rates and filter profiles
- Device information and status monitoring
- Battery status monitoring
- Power management features
- Python 3.7 or higher
- Windows 10 or higher (for BLE support)
- Movella DOT sensor(s)
- Create and activate a virtual environment (recommended):
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install required packages:
pip install -r requirements.txt
- Install the package:
pip install -e .
bleak>=0.22.3
numpy>=1.24.4
from movella_dot_py.core.sensor import MovellaDOTSensor
from movella_dot_py.models.data_structures import SensorConfiguration
from movella_dot_py.models.enums import OutputRate, FilterProfile, PayloadMode
# Create configuration
config = SensorConfiguration(
output_rate=OutputRate.RATE_60,
filter_profile=FilterProfile.GENERAL,
payload_mode=PayloadMode.COMPLETE_EULER
)
# Create sensor instance
sensor = MovellaDOTSensor(config)
The package includes a comprehensive demo script that shows how to work with multiple sensors:
python examples/multi_dot_demo.py
RATE_1
: 1 HzRATE_4
: 4 HzRATE_10
: 10 HzRATE_12
: 12 HzRATE_15
: 15 HzRATE_20
: 20 HzRATE_30
: 30 HzRATE_60
: 60 HzRATE_120
: 120 Hz (Recording only)
GENERAL
: Default profile for general human motionDYNAMIC
: Optimized for fast and jerky human motion like sprinting
-
Basic Orientations:
ORIENTATION_EULER
: Euler anglesORIENTATION_QUATERNION
: Quaternion orientationCOMPLETE_EULER
: Euler angles with free accelerationCOMPLETE_QUATERNION
: Quaternion with free acceleration
-
Extended Data:
EXTENDED_EULER
: Euler angles, free acceleration, status, and clipping dataEXTENDED_QUATERNION
: Quaternion, free acceleration, status, and clipping data
-
Motion Data:
FREE_ACCELERATION
: Linear acceleration with gravity compensatedRATE_QUANTITIES
: Acceleration and angular velocityRATE_QUANTITIES_WITH_MAG
: Acceleration, angular velocity, and magnetic field
-
Custom Modes:
CUSTOM_MODE_1
: Euler angles, free acceleration, angular velocityCUSTOM_MODE_2
: Euler angles, free acceleration, magnetic fieldCUSTOM_MODE_3
: Quaternion and angular velocityCUSTOM_MODE_5
: Quaternion, acceleration, angular velocity
# High-frequency dynamic motion configuration
config = SensorConfiguration(
output_rate=OutputRate.RATE_60,
filter_profile=FilterProfile.DYNAMIC,
payload_mode=PayloadMode.CUSTOM_MODE_5 # Full motion data
)
# Basic orientation tracking configuration
config = SensorConfiguration(
output_rate=OutputRate.RATE_30,
filter_profile=FilterProfile.GENERAL,
payload_mode=PayloadMode.ORIENTATION_EULER
)
The SDK provides various methods to access collected data:
- Quaternions
- Euler angles
- Acceleration (with and without gravity)
- Angular velocity
- Magnetic field data
- Status information
- Clipping detection
- Device identification (LED blinking)
- Battery status monitoring
- Power saving options
- Device tag configuration
- Time synchronization
- Factory reset capabilities
- Some payload modes (
HIGH_FIDELITY
,HIGH_FIDELITY_WITH_MAG
,CUSTOM_MODE_4
) are only available with the official Movella SDK - Maximum of 5 simultaneous sensor connections recommended
- Windows 10 or higher required for BLE functionality