Skip to main content
Device management uses the USB or BLE control plane. Open the device before calling these methods; no live video data plane is required.

Persistent capture configuration

The M1 boots with a stored resolution, frame rate, and codec. set_configuration() updates these defaults while the device is IDLE:
Valid values come from the device’s enabled capability menu:
A session can override the stored configuration through InitParameters.

Storage

Query device storage before a long device-local recording:
Check free space before starting a long device-local recording. Storage exhaustion causes recording setup to return STORAGE_FULL.

Time

open() aligns the device clock to the host automatically. Re-align a long-running session or read the device clock directly:
sync_time() writes host wall time to the device. get_device_time() performs a control round-trip and returns the device’s current epoch timestamp. Use Mat::getTimestamp() and ImuSample::timestamp for capture timestamps.

Location

The device stamps recordings with a LocationFix. Persist a location (until changed) or read the effective one:
The persistent location applies to later recordings. For one session, set RecordingParameters::has_location and location.

Control password

One password covers both transports (factory default 123456). BLE control is always gated by it; USB is gated once the device is locked. Rekey it:
The form that omits the old password allows physical access to reset a forgotten credential, and it is available only while USB is unlocked. Once the device is locked, that form is unavailable and factory_reset() is the remaining route. The method retains the name set_ble_password for source compatibility, but it has applied to both transports since the USB lock was introduced. Locking, at-rest encryption, key handling and recovery are covered in Access Control and Encryption.

State and reboot

get_state() never blocks; it returns the last known state. Calls that are invalid for the current state return INVALID_FUNCTION_CALL without contacting the device. Stop capture, recording, upload, health, or update work before rebooting. The SDK closes the handle when the reboot command is accepted, or when the link disappears because the reboot began before the reply arrived. Reconnect with open() after the device returns.

CLI setup commands