CyberAtom X-200 User Manual

Request Messages

Table 1. List of USB request messages.
Message Message ID (hex) Description
GET_SYS_INFO 0x01 Requests sending back information on the device type and firmware version.
GET_QUAT_DATA 0x02 Requests sending back actual orientation in quaternion representation.
GET_EULER_DATA 0x03 Requests sending back actual orientation in Euler angles representation.
GET_ROT_RATE_DATA 0x04 Requests sending back actual rotation rates.
REBOOT 0x05 Reboots the device.
FACTORY_RESET 0x07 Brings factory defaults settings to device RAM.
SET_ACC_CALIB_MAT 0x08 Sends calbration matrices for the accelerometer sensor.
SET_MAG_CALIB_MAT 0x09 Sends calbration matrices for the magnetometer sensor.
SET_GYR_CALIB_MAT 0x0A Sends calbration matrices for the gyrosope sensor.
SET_FILTER_MAG 0x0B Sends new values for measurement filter magnetometer matrix.
SET_FILTER_ACC 0x0C Sends new values for measurement filter accelerometer matrix.
SET_FILTER_GYR 0x0D Sends new values for measurement filter gyroscope matrix.
SET_FILTER_PROCN 0x0E Sends new values for filter process noise matrix.
GET_TEMP 0x0F Requests sending current temperature reading
SET_BAUD_RATE 0x10 Requests changing UART interface baud rate. Newly applied baud rate will be used after next power-on or reset of the device. To make sure they persist, WRITE_FLASH command should be used afterwards.
SET_I2C_ADDR 0x11 Requests changing I2C slave address. Newly applied I2C slave address will be after next power-on or reset of the device. To make sure they persist, WRITE_FLASH command should be used afterwards.
RESET_GYR 0x15 Resets actual gyroscope settings (only in RAM) treating current rotation as bias only (not rotating device).
WRITE_FLASH 0x16 Saves current settings to device Flash for persistance. Once written, these settings will be available after next power-on.
GET_ACC_CALIB_MAT 0x17 Requests sending back actual accelometer calibration settings.
GET_MAG_CALIB_MAT 0x18 Requests sending back actual magnetometer calibration settings.
GET_GYR_CALIB_MAT 0x19 Requests sending back actual gyeroscope calibration settings.
GET_RAW_ACC 0x20 Requests sending raw accelerometer measurement data.
GET_RAW_MAG 0x21 Requests sending raw magnetometer measurement data.
GET_RAW_GYR 0x22 Requests sending raw gyroscope measurement data.
GET_NORM_ACC 0x23 Requests sending normalized accelerometer measurement data.
GET_NORM_MAG 0x24 Requests sending normalized magnetometer measurement data.
GET_NORM_GYR 0x25 Requests sending normalized gyroscope measurement data.
GET_CALIB_ACC 0x26 Requests sending calibrated accelerometer measurement data.
GET_CALIB_MAG 0x27 Requests sending calibrated magnetometer measurement data.
GET_CALIB_GYR 0x28 Requests sending calibrated gyroscope measurement data.
REBOOT_BOOTLOADER 0x29 Requests rebooting to the bootloader mode
GET_FILTER_MAG 0x2B Requests values for measurement filter magnetometer matrix.
GET_FILTER_ACC 0x2C Requests values for measurement filter accelerometer matrix.
GET_FILTER_GYR 0x2D Requests values for measurement filter gyroscope matrix.
GET_FILTER_PROCN 0x2E Requests values for filter process noise matrix.
GET_I2C_ADDR 0x30 Requests currently set I2C address.
GET_BAUD_RATE 0x31 Requests currently set baud rate.
GET_STATS 0x40 Requests operational statistics.

GET_SYS_INFO

Message ID: 0x01

Description: Requests sending back information on the device type and firmware version.

Data Bytes: 0

When device receives this message, it will reply with sending back SYS_INFO message.

GET_QUAT_DATA

Message ID: 0x02

Description: Requests sending back actual orientation in quaternion representation.

Data Bytes: 0

When device receives this message, it will reply with sending back QUAT_DATA message.

GET_EULER_DATA

Message ID: 0x03

Description: Requests sending back actual orientation in Euler angles representation.

Data Bytes: 0

When device receives this message, it will reply with sending back EULER_DATA message.

GET_ROT_RATE_DATA

Message ID: 0x04

Description: Requests sending back actual rotation rates.

Data Bytes: 0

When device receives this message, it will reply with sending back ROT_RATE_DATA message.

REBOOT

Message ID: 0x05

Description: Reboots the device.

Data Bytes: 0

FACTORY_RESET

Message ID: 0x07

Description: Brings factory defaults settings to device RAM.

Data Bytes: 0

SET_ACC_CALIB_MAT

Message ID: 0x08

Description: Sends calbration matrices for the accelerometer sensor.

Data Bytes: 72

When device receives this message, it will reply with sending back CONFIRM message.

Table 2. Structure of data bytes for SET_ACC_CALIB_MAT message on USB interface.
Byte Offset Data Type Descripion
0 IEEE754 float c11 matrix component
4 IEEE754 float c12 matrix component
8 IEEE754 float c13 matrix component
12 IEEE754 float c21 matrix component
16 IEEE754 float c22 matrix component
20 IEEE754 float c23 matrix component
24 IEEE754 float c31 matrix component
28 IEEE754 float c32 matrix component
32 IEEE754 float c33 matrix component
36 IEEE754 float t11 matrix component
40 IEEE754 float t12 matrix component
44 IEEE754 float t13 matrix component
48 IEEE754 float t21 matrix component
52 IEEE754 float t22 matrix component
56 IEEE754 float t23 matrix component
60 IEEE754 float t31 matrix component
64 IEEE754 float t32 matrix component
68 IEEE754 float t33 matrix component

SET_MAG_CALIB_MAT

Message ID: 0x09

Description: Sends calbration matrices for the magnetometer sensor.

Data Bytes: 72

When device receives this message, it will reply with sending back CONFIRM message.

Table 3. Structure of data bytes for SET_MAG_CALIB_MAT message on USB interface.
Byte Offset Data Type Descripion
0 IEEE754 float c11 matrix component
4 IEEE754 float c12 matrix component
8 IEEE754 float c13 matrix component
12 IEEE754 float c21 matrix component
16 IEEE754 float c22 matrix component
20 IEEE754 float c23 matrix component
24 IEEE754 float c31 matrix component
28 IEEE754 float c32 matrix component
32 IEEE754 float c33 matrix component
36 IEEE754 float t11 matrix component
40 IEEE754 float t12 matrix component
44 IEEE754 float t13 matrix component
48 IEEE754 float t21 matrix component
52 IEEE754 float t22 matrix component
56 IEEE754 float t23 matrix component
60 IEEE754 float t31 matrix component
64 IEEE754 float t32 matrix component
68 IEEE754 float t33 matrix component

SET_GYR_CALIB_MAT

Message ID: 0x0A

Description: Sends calbration matrices for the gyrosope sensor.

Data Bytes: 72

When device receives this message, it will reply with sending back CONFIRM message.

Table 4. Structure of data bytes for SET_GYR_CALIB_MAT message on USB interface.
Byte Offset Data Type Descripion
0 IEEE754 float c11 matrix component
4 IEEE754 float c12 matrix component
8 IEEE754 float c13 matrix component
12 IEEE754 float c21 matrix component
16 IEEE754 float c22 matrix component
20 IEEE754 float c23 matrix component
24 IEEE754 float c31 matrix component
28 IEEE754 float c32 matrix component
32 IEEE754 float c33 matrix component
36 IEEE754 float t11 matrix component
40 IEEE754 float t12 matrix component
44 IEEE754 float t13 matrix component
48 IEEE754 float t21 matrix component
52 IEEE754 float t22 matrix component
56 IEEE754 float t23 matrix component
60 IEEE754 float t31 matrix component
64 IEEE754 float t32 matrix component
68 IEEE754 float t33 matrix component

SET_FILTER_MAG

Message ID: 0x0B

Description: Sends new values for measurement filter magnetometer matrix.

Data Bytes: 12

When device receives this message, it will reply with sending back CONFIRM message.

Table 5. Structure of data bytes for SET_FILTER_MAG message on USB interface.
Byte Offset Data Type Descripion
0 IEEE754 float h11 matrix component
4 IEEE754 float h22 matrix component
8 IEEE754 float h33 matrix component

SET_FILTER_ACC

Message ID: 0x0C

Description: Sends new values for measurement filter accelerometer matrix.

Data Bytes: 12

When device receives this message, it will reply with sending back CONFIRM message.

Table 6. Structure of data bytes for SET_FILTER_ACC message on USB interface.
Byte Offset Data Type Descripion
0 IEEE754 float h11 matrix component
4 IEEE754 float h22 matrix component
8 IEEE754 float h33 matrix component

SET_FILTER_GYR

Message ID: 0x0D

Description: Sends new values for measurement filter gyroscope matrix.

Data Bytes: 12

When device receives this message, it will reply with sending back CONFIRM message.

Table 7. Structure of data bytes for SET_FILTER_GYR message on USB interface.
Byte Offset Data Type Descripion
0 IEEE754 float h11 matrix component
4 IEEE754 float h22 matrix component
8 IEEE754 float h33 matrix component

SET_FILTER_PROCN

Message ID: 0x0E

Description: Sends new values for filter process noise matrix.

Data Bytes: 28

When device receives this message, it will reply with sending back CONFIRM message.

Table 8. Structure of data bytes for SET_FILTER_PROCN message on USB interface.
Byte Offset Data Type Descripion
0 IEEE754 float q11 matrix component
4 IEEE754 float q22 matrix component
8 IEEE754 float q33 matrix component
12 IEEE754 float q44 matrix component
16 IEEE754 float q55 matrix component
20 IEEE754 float q66 matrix component
24 IEEE754 float q77 matrix component

GET_TEMP

Message ID: 0x0F

Description: Requests sending current temperature reading

Data Bytes: 0

When device receives this message, it will reply with sending back TEMP message.

SET_BAUD_RATE

Message ID: 0x10

Description: Requests changing UART interface baud rate. Newly applied baud rate will be used after next power-on or reset of the device. To make sure they persist, WRITE_FLASH command should be used afterwards.

Data Bytes: 1

When device receives this message, it will reply with sending back BAUD_RATE message.

Table 9. Structure of data bytes for SET_BAUD_RATE message on USB interface.
Byte Offset Data Type Descripion
0 8-bit unsigned New baud rate.

SET_I2C_ADDR

Message ID: 0x11

Description: Requests changing I2C slave address. Newly applied I2C slave address will be after next power-on or reset of the device. To make sure they persist, WRITE_FLASH command should be used afterwards.

Data Bytes: 1

When device receives this message, it will reply with sending back I2C_ADDR message.

Table 10. Structure of data bytes for SET_I2C_ADDR message on USB interface.
Byte Offset Data Type Descripion
0 8-bit unsigned New 7-bit I2C slave address for the device.

RESET_GYR

Message ID: 0x15

Description: Resets actual gyroscope settings (only in RAM) treating current rotation as bias only (not rotating device).

Data Bytes: 0

WRITE_FLASH

Message ID: 0x16

Description: Saves current settings to device Flash for persistance. Once written, these settings will be available after next power-on.

Data Bytes: 0

GET_ACC_CALIB_MAT

Message ID: 0x17

Description: Requests sending back actual accelometer calibration settings.

Data Bytes: 0

When device receives this message, it will reply with sending back ACC_CALIB_MAT message.

GET_MAG_CALIB_MAT

Message ID: 0x18

Description: Requests sending back actual magnetometer calibration settings.

Data Bytes: 0

When device receives this message, it will reply with sending back MAG_CALIB_MAT message.

GET_GYR_CALIB_MAT

Message ID: 0x19

Description: Requests sending back actual gyeroscope calibration settings.

Data Bytes: 0

When device receives this message, it will reply with sending back GYR_CALIB_MAT message.

GET_RAW_ACC

Message ID: 0x20

Description: Requests sending raw accelerometer measurement data.

Data Bytes: 0

When device receives this message, it will reply with sending back RAW_ACC message.

GET_RAW_MAG

Message ID: 0x21

Description: Requests sending raw magnetometer measurement data.

Data Bytes: 0

When device receives this message, it will reply with sending back RAW_MAG message.

GET_RAW_GYR

Message ID: 0x22

Description: Requests sending raw gyroscope measurement data.

Data Bytes: 0

When device receives this message, it will reply with sending back RAW_GYR message.

GET_NORM_ACC

Message ID: 0x23

Description: Requests sending normalized accelerometer measurement data.

Data Bytes: 0

When device receives this message, it will reply with sending back NORM_ACC message.

GET_NORM_MAG

Message ID: 0x24

Description: Requests sending normalized magnetometer measurement data.

Data Bytes: 0

When device receives this message, it will reply with sending back NORM_MAG message.

GET_NORM_GYR

Message ID: 0x25

Description: Requests sending normalized gyroscope measurement data.

Data Bytes: 0

When device receives this message, it will reply with sending back NORM_GYR message.

GET_CALIB_ACC

Message ID: 0x26

Description: Requests sending calibrated accelerometer measurement data.

Data Bytes: 0

When device receives this message, it will reply with sending back CALIB_ACC message.

GET_CALIB_MAG

Message ID: 0x27

Description: Requests sending calibrated magnetometer measurement data.

Data Bytes: 0

When device receives this message, it will reply with sending back CALIB_MAG message.

GET_CALIB_GYR

Message ID: 0x28

Description: Requests sending calibrated gyroscope measurement data.

Data Bytes: 0

When device receives this message, it will reply with sending back CALIB_GYR message.

REBOOT_BOOTLOADER

Message ID: 0x29

Description: Requests rebooting to the bootloader mode

Data Bytes: 0

GET_FILTER_MAG

Message ID: 0x2B

Description: Requests values for measurement filter magnetometer matrix.

Data Bytes: 0

When device receives this message, it will reply with sending back FILTER_MAG message.

GET_FILTER_ACC

Message ID: 0x2C

Description: Requests values for measurement filter accelerometer matrix.

Data Bytes: 0

When device receives this message, it will reply with sending back FILTER_ACC message.

GET_FILTER_GYR

Message ID: 0x2D

Description: Requests values for measurement filter gyroscope matrix.

Data Bytes: 0

When device receives this message, it will reply with sending back FILTER_GYR message.

GET_FILTER_PROCN

Message ID: 0x2E

Description: Requests values for filter process noise matrix.

Data Bytes: 0

When device receives this message, it will reply with sending back FILTER_PROCN message.

GET_I2C_ADDR

Message ID: 0x30

Description: Requests currently set I2C address.

Data Bytes: 0

When device receives this message, it will reply with sending back I2C_ADDR message.

GET_BAUD_RATE

Message ID: 0x31

Description: Requests currently set baud rate.

Data Bytes: 0

When device receives this message, it will reply with sending back BAUD_RATE message.

GET_STATS

Message ID: 0x40

Description: Requests operational statistics.

Data Bytes: 32

When device receives this message, it will reply with sending back STATS message.

Table 11. Structure of data bytes for GET_STATS message on USB interface.
Byte Offset Data Type Descripion
0 32-bit signed, unsigned Profiling table index 0
4 32-bit signed, unsigned Profiling table index 1
8 32-bit signed, unsigned Profiling table index 2
12 32-bit signed, unsigned Profiling table index 3
16 32-bit signed, unsigned Profiling table index 4
20 32-bit signed, unsigned Profiling table index 5
24 32-bit signed, unsigned Profiling table index 6
28 32-bit signed, unsigned Profiling table index 8