schema.proto lives in a private repository — ask
support for access.
Common Types
PlaybackProtocol
Auth.protocol when a client connects, or through DeviceRemoteControl.playback_protocol
on an established connection.
Device Information
DebugInformation
free_heap_size— available heap memory, in bytesexternal_flash_size— external flash storage, in bytesdebug_logging_enabled— whether the device is currently emitting debug log frames (see Debug Logging)
Stroker (Linear Actuator)
StrokerStatus
0–10000 point range.
StrokerCalibrationInfo
calib_low_position— lowest physical bound, where the stroker is mechanically blockedcalib_high_position— highest physical bound, where the stroker is mechanically blockedcalibration_length— full mechanical stroke lengthhall_low_position— hall sensor reading at the low limithall_high_position— hall sensor reading at the high limitcalib_shift— offset applied after calibration when only the encoder is used
Every field of
StrokerCalibrationInfo is in radians, not millimeters. The user-facing limits
in StrokerSettings are the ones expressed in millimeters.StrokerSettings
low_position_shift— user-defined low position shift (mm)high_position_shift— user-defined high position shift (mm)max_velocity— user-defined velocity capplayback_rate— playback speed multiplier (1.0= normal speed)
Motion Control Commands
HDCCommand (direct position move, interruptible)
Move is the payload of a direct control command:
position— target position,0–10000points (0.01% resolution)time— travel duration, in milliseconds
BLE binary equivalent
time into a uint16, a single BLE move is capped at 65535 ms; the WiFi API
uses uint32 and has no such limit.
Important: BLE never queues HDC commands. Every new write interrupts active movement.
HPSSignal (point streaming)
- Velocity is always derived on the device from the time delta between consecutive points
- At least 2 points are required before the stroker moves
- Over BLE, at most 64 points per write and 128 points in the stream buffer
- A negative time delta between consecutive points causes the earlier timestamp to be treated as
0
BLE binary layout (per point, characteristic 0x2002 → 0x0001)
Data Type Mapping
Two rules that catch people out: velocity is never transmitted in BLE point packets — the device derives it — and the playback protocol must be selected before commands are accepted.