Yes, the inertial sensor programming interface is comprised of a compact set of setup and control commands and a very flexible user-configurable data output format. The commands and data are divided into four command sets and three data sets corresponding to the internal architecture of the device. The four command sets consist of a set of “Base” commands (a set that is common across many types of devices), a set of unified “3DM” (3D Motion) commands that are specific to the LORD Sensing inertial product line, a set of “Estimation Filter” commands that are specific to LORD Sensing navigation and advanced AHRS devices, and a set of “System” commands that are specific to sensor systems comprised of more than one internal sensor block. The data sets represent the three types of data that the inertial sensor is capable of producing: “Estimation Filter” (Position, Velocity, and Attitude) data, "GNSS" (Global Navigation Satellite System) data, and “IMU” (Inertial Measurement Unit) data. The type of estimation filter used in the internal sensor is an Auto-Adaptive Extended Kalman Filter (EKF).
Base commands: Ping, Idle, Resume, Get ID Strings, etc.
3DM commands: Poll IMU Data, Estimation Filter Data, etc.
Estimation Filter commands: Reset Filter, Sensor to Vehicle Frame Transformation, etc.
System commands: Switch Communications Mode, etc.
IMU data: Acceleration Vector, Gyro Vector, etc.
GNSS data: GNSS Position, Velocity, Satellite Data, Fix Data, etc.
Estimation Filter data: Position, Velocity, Attitude, Acceleration Estimates, etc.
The protocol is packet based. All commands, replies, and data are sent and received as fields in a message packet. Commands are all confirmed with an ack/nack (with a few exceptions). The packets have a descriptor type field based on their contents, so it is easy to identify if a packet contains IMU data, GNSS data, Estimation Filter data, commands, or replies.