...
This manual applies to the following sensor types:
LPMS-IG1-CAN | LPMS-IG1-RS232 | LPMS-IG1P-RS232 |
LPMS-IG1-RS485 | LPMS-IG1P-RS485 |
LPMS-IG1 series sensors are high precision multi-purpose inertial measurement units specially developed for industrial applications. LPMS-IG1 sensors embed a powerful processor, 3 high precision single axis gyroscopes, a general purpose 3 axis gyroscope, accelerometer and magnetometer. The unique dual-gyroscope (Gyro I & II) setup enables accurate dynamics measurement in both low and high-speed applications. Gyro I is suitable for applications where the accuracy requirements are high and the detection range is not critical (<400dps). Gyro II is suitable for general applications where the expected measurement range exceeds 400dps.
...
LPMS-IG1P series also provide the GPS data output, which is contained by four parts as showed in the following table. See the LPMS-IG1P GPS data structure below.
Name | Description |
Timestamps | 1Hz update rate |
NAV-PVT | Navigation Position, Velocity, Time, etc |
NAV-ATT | Navigation Attitude, Orientation, etc |
ESF-STATUS | External Sensor Fusion Messages. |
Communication
LPMS-IG1 series offer two types of communication methods:
...
Sensor data is streamed to both USB and RS232/CAN/RS485 terminals simultaneously. Communication protocol for different terminals are summarized as below:
Terminal | Protocol |
USB | LPBUS Protocol |
RS232 | LPBUS Protocol/ASCII |
RS232 | LPBUS Protocol/ASCII |
CAN | CANOpen / CAN sequential |
Communication Modes
...
There are two communication modes, Streaming Mode and Command mode in LPMS-IG1 sensors. By default, the sensor will start in Streaming Mode on power up (Except for RS485 communication, it starts at Command mode). In Streaming Mode, the sensor will continuously stream out sensor data via USB and RS232/CAN terminals simultaneously. Streaming frequency for both USB and RS232/CAN terminals is determined by the data streaming rate settings (default at 100Hz). The sensor will stop data streaming in Command Mode. User can change the sensor internal parameters in both Streaming and Command mode, but it is highly recommended to put the sensor in Command Mode before making any parameter changes. The state diagram of the sensor modes is summarized in Fig. 3.1.
NOTE: User must issue a Save Parameters command to retain any parameter changes to the sensor before next power cycle.
...
Each packet sent during the communication is based on the following structure:
Flag Name | Start | Sensor ID | Command No. | Data length | Data field | LRC | End |
Bytes | 1 | 2 | 2 | 2 | n | 2 | 2 |
Start: 1 byte. data packet start flag, which is fixed to 3Ah.
Sensor ID: 2 bytes transmitted at LSB. It contains ID of the sensor to be communicated with. The default value of this ID is 01h. The host sends out a GET / SET request to a specific LPMS sensor by using this ID, and the client answers to request also with the same ID. This ID can be adjusted by sending a SET command to the sensor firmware.
Command No.: 2 bytes transmitted at LSB. It contains command number information to be performed by the data transmission.
Data length: 2 bytes transmitted at LSB, It contains the length information of packet data field.
Data field: n bytes transmitted at LSB, where n is not a fixed number which depends on the command types. It contains all the data needed to be transmitted under a specific command.
LRC: 2 bytes transmitted at LSB. It contains the packet checksum information. To ensure the integrity of the transmitted data the LRC checksum is used. It is calculated in the following way:
...
End: 2 bytes transmitted at LSB, which is fixed to 0D0Ah.
Example
LPBus packet from sensor (hex):
3A 01 00 09 00 10 00 37 92 00 00 00 70 93 3E 00 40 7B BE 00 38 70 3F 84 04 0D 0A
Flag Name | Start | Sensor ID | Command No. | Data length | Data field | LRC | End |
Bytes | 1 | 2 | 2 | 2 | n | 2 | 2 |
Hex | 3A | 01 00 | 09 00 | 10 00 | 37 92 00 00 00 70 93 3E 00 40 7B BE 00 38 70 3F | 84 04 | 0D 0A |
Checksum LRC calculation
Calculated Checksum LRC (hex) | = 01 + 00 + 09 + 00 + 10 + 00 + 37 + 92 + 00 + 00 + 00 + 70 + 93 + 3E + 00 + 40 + 7B + BE + 00 + 38 + 70 + 3F |
= 0x0484 |
LRC from sensor is transmitted at LSB, hence 84 04
Data Format in a Packet Data Field
Generally, data is sent in little-endian format, low order byte first, high order byte last. Data in the data fields of a packet can be encoded in several ways, depending on the type of information to be transmitted. In the following we list the most common data types. Other command-specific data types are explained in the command reference.
Identifier | Description |
Int32 | 32-bit signed integer value |
UInt32 | 32-bit unsigned integer value |
Int16 | 16-bit signed integer value |
UInt16 | 16-bit unsigned integer value |
Int8 | 8-bit signed integer value |
UInt8 | 8-bit unsigned integer value |
Float32 | 32-bit float value |
Vector3f | 3 element 32-bit float vector |
Vector3i16 | 3 element 16-bit signed integer vector |
Vector4f | 4 element 32-bit float vector |
Vector4i16 | 4 element 16-bit signed integer vector |
Matrix3x3f | 3x3 element 32-bit float value matrix |
Sensor Measurement Data
IMU data
There are two precision modes for sensor data: 32-bit float or 16-bit integer. Users can switch between these modes based on the requested data sampling rate and volume. While sensor is in streaming operational mode, LPBUS transports measurement data in the data field of a packet in the following orders shown in the charts below for the cases of 32-bit float and 16-bit integer precision modes. The order of the sensor data chunks depends on which sensor data is enabled.
NOTE: Timestamp data is always 32-bit unsigned integer in both data precision modes.
Order | Identifier | Description | Unit |
1 | UInt32 | Timestamp | multiply by factor 0.002 to convert to seconds |
2 | Vector3f | Raw accelerometer | g |
3 | Vector3f | Calibrated accelerometer | g |
4 | Vector3f | Raw Gyro I | dps (default) or rad/s |
5 | Vector3f | Raw GyroII | dps (default) or rad/s |
6 | Vector3f | Static bias calibrated Gyro I | dps (default) or rad/s |
7 | Vector3f | Static bias calibrated Gyro II | dps (default) or rad/s |
8 | Vector3f | Alignment calibrated Gyro I | dps (default) or rad/s |
9 | Vector3f | Alignment calibrated Gyro II | dps (default) or rad/s |
10 | Vector3f | Raw magnetometer | uT |
11 | Vector3f | Calibrated magnetometer | uT |
12 | Vector3f | Angular Vel. | dps (default) or rad/s |
13 | Vector4f | Quaternion | |
14 | Vector3f | Euler | deg (default) or rad |
15 | Vector3f | Linear acceleration (g) | g |
16 | Float32 | Reserved | |
17 | Float32 | Reserved | |
18 | Float32 | Temperature | °C |
In 16-bit data precision mode values are transmitted to the host with a multiplication factor applied to increase precision:
Order | Format | Sensor data | Scale factor |
1 | UInt32 | Timestamp counter incremented in 500Hz. multiply by 0.002 to convert to seconds. | 500 |
2 | Vector3i16 | Raw accelerometer (g) | 1000 |
3 | Vector3i16 | Calibrated accelerometer (g) | 1000 |
4 | Vector3i16 | Raw GyroI (dps or rad/s) | dps: 10 rad/s: 1000 |
5 | Vector3i16 | Raw GyroII (dps or rad/s) | dps: 10 rad/s: 100 |
6 | Vector3i16 | Static bias calibrated GyroI (dps or rad/s) | dps: 10 rad/s: 1000 |
7 | Vector3i16 | Static bias calibrated GyroII (dps or rad/s) | dps: 10 rad/s: 100 |
8 | Vector3i16 | Alignment calibrated GyroI (dps or rad/s) | dps: 10 rad/s: 1000 |
9 | Vector3i16 | Alignment calibrated GyroII (dps or rad/s) | dps: 10 rad/s: 100 |
10 | Vector3i16 | Raw magnetometer (uT) | 100 |
11 | Vector3i16 | Calibrated magnetometer (uT) | 100 |
12 | Vector3i16 | Angular Vel. (dps or rad/s) | dps: 10 rad/s: 1000 (gyro range: 400dps) rad/s: 100 (gyro range >= 1000dps) |
13 | Vector4i16 | Quaternion | 10000 |
14 | Vector3i16 | Euler(degree or rad) | deg: 100 rad:10000 |
15 | Vector3i16 | Linear acceleration (g) | 1000 |
16 | Int16 | Reserved | |
17 | Int16 | Reserved | |
18 | Int16 | Temperature (°C) | 100 |
GPS Data
In addition to IMU data, LPMS-IG1P (with GPS) will output additional 1Hz GPS data packet with the following format:
Order | Format | Sensor data | Scale factor |
1 | UInt32 | Timestamp | |
2 | UInt32 | PVT iTOW (ms) - GPS time of week of the navigation epoch. | |
3 | UInt16 | PVT year (UTC) | |
4 | UInt8 | PVT month (UTC) | |
5 | UInt8 | PVT day (UTC) | |
6 | UInt8 | PVT hour (UTC) | |
7 | UInt8 | PVT min (UTC) | |
8 | UInt8 | PVT sec (UTC) | |
9 | UInt8 | PVT valid - Validity flags | |
10 | UInt32 | PVT tAcc - Time accuracy estimate (UTC) | |
11 | Int32 | PVT nano (ns) - Fraction of second (UTC) | |
12 | UInt8 | PVT fixType | |
13 | UInt8 | PVT flags - Fix status flags | |
14 | UInt8 | PVT flags2 - Additional flags | |
15 | UInt8 | PVT numSV - Number of satellites used in Nav Solution | |
16 | Int32 | PVT longitude (deg) | 10000000 |
17 | Int32 | PVT latitude (deg) | 10000000 |
18 | Int32 | PVT height (mm) - Height above ellipsoid | |
19 | Int32 | PVT hMSL (mm) - Height above mean sea level | |
20 | UInt32 | PVT hAcc (mm)- Horizontal accuracy estimate | |
21 | UInt32 | PVT vAcc (mm) - Vertical accuracy estimate | |
22 | Int32 | PVT velN (mm/s) - NED north velocity | |
23 | Int32 | PVT velE (mm/s) - NED east velocity | |
24 | Int32 | PVT velD (mm/s) - NED down velocity | |
25 | Int32 | PVT gSpeed (mm/s) - Ground Speed (2-D) | |
26 | Int32 | PVT headMot (deg) - Heading of motion (2-D) | 100000 |
27 | UInt32 | PVT sAcc (mm/s) - Speed accuracy estimate | |
28 | UInt32 | PVT headAcc (deg) - Heading accuracy estimate | 100000 |
29 | UInt16 | PVT pDOP - Position DOP | 100 |
30 | Int32 | PVT headVeh (deg) - Heading of vehicle (2-D) | 100000 |
31 | UInt32 | ATT iTOW (ms) - GPS time of week of the navigation epoch | |
32 | UInt8 | ATT version - Message version (0 for this version) | |
33 | Int32 | ATT roll (deg) - Vehicle roll | 100000 |
34 | Int32 | ATT pitch (deg) - Vehicle pitch | 100000 |
35 | Int32 | ATT heading (deg) - Vehicle heading | 100000 |
36 | UInt32 | ATT accRoll (deg) - Vehicle roll accuracy | 100000 |
37 | UInt32 | ATT accPitch (deg) - Vehicle pitch accuracy | 100000 |
38 | UInt32 | ATT accHeading (deg) - Vehicle heading accuracy | 100000 |
39 | UInt32 | ESF iTOW (ms) - GPS time of week of the navigation epoch | |
40 | UInt8 | ESF version - Message version (2 for this version) | |
41 | UInt8 | ESF initStatus1 | |
42 | UInt8 | ESF initStatus2 | |
43 | UInt8 | ESF fusionMode | |
44 | UInt8 | ESF numSens - Number of sensors | |
45 | UInt32[n] | ESF sensStatus |
Anchor | ||||
---|---|---|---|---|
|
...
GET request (HOST -> SENSOR)
Packet byte no. | Content | Description |
0 | 3Ah | Packet start |
1 | 01h | Sensor ID LSB (ID = 1) |
2 | 00h | Sensor ID MSB |
3 | 06h | Command no. LSB |
4 | 00h | Command no. MSB |
5 | 00h | Data length LSB (GET command = no data) |
6 | 00h | Data length MSB |
7 | 07h | Check sum LSB |
8 | 00h | Check sum MSB |
9 | 0Dh | Packet end 1 |
10 | 0Ah | Packet end 2 |
Reply data (SENSOR -> HOST)
Packet byte no. | Content | Description |
0 | 3Ah | Packet start |
1 | 01h | Sensor ID LSB (ID = 1) |
2 | 00h | Sensor ID MSB |
3 | 00h | Command no. LSB (00h = REPLY_ACK) |
4 | 00h | Command no. MSB |
5 | 00h | Data length LSB (Zero length data for ACK reply) |
6 | 00h | Data length MSB |
7 | 01h | Check sum LSB |
8 | 00h | Check sum MSB |
9 | 0Dh | Packet end 1 |
10 | 0Ah | Packet end 2 |
Goto Steaming Mode
GET request (HOST -> SENSOR)
Packet byte no. | Content | Description |
0 | 3Ah | Packet start |
1 | 01h | Sensor ID LSB (ID = 1) |
2 | 00h | Sensor ID MSB |
3 | 07h | Command no. LSB(07h = GOTO_STREAMING_MODE) |
4 | 00h | Command no. MSB |
5 | 00h | Data length LSB (GET command = no data) |
6 | 00h | Data length MSB |
7 | 08h | Check sum LSB |
8 | 00h | Check sum MSB |
9 | 0Dh | Packet end 1 |
10 | 0Ah | Packet end 2 |
Reply data (SENSOR -> HOST)
Packet byte no. | Content | Description |
0 | 3Ah | Packet start |
1 | 01h | Sensor ID LSB (ID = 1) |
2 | 00h | Sensor ID MSB |
3 | 00h | Command no. LSB (00h = REPLY_ACK) |
4 | 00h | Command no. MSB |
5 | 00h | Data length LSB (Zero length data for ACK reply) |
6 | 00h | Data length MSB |
7 | 01h | Check sum LSB |
8 | 00h | Check sum MSB |
9 | 0Dh | Packet end 1 |
10 | 0Ah | Packet end 2 |
Request Gyroscope Range
GET request (HOST -> SENSOR)
Packet byte no. | Content | Description |
0 | 3Ah | Packet start |
1 | 01h | Sensor ID LSB (ID = 1) |
2 | 00h | Sensor ID MSB |
3 | 3Dh | Command no. LSB(3Dh = GET_GYRO_RANGE) |
4 | 00h | Command no. MSB |
5 | 00h | Data length LSB (GET command = no data) |
6 | 00h | Data length MSB |
7 | 3Eh | Check sum LSB |
8 | 00h | Check sum MSB |
9 | 0Dh | Packet end 1 |
10 | 0Ah | Packet end 2 |
Reply data (SENSOR -> HOST)
Packet byte no. | Content | Description |
0 | 3Ah | Packet start |
1 | 01h | Sensor ID LSB (ID = 1) |
2 | 00h | Sensor ID MSB |
3 | 3Dh | Command no. LSB(3Dh = GET_GYRO_RANGE) |
4 | 00h | Command no. MSB |
5 | 04h | Data length LSB (32-bit integer = 4 bytes) |
6 | 00h | Data length MSB |
7 | xxh | Range data byte 1 (LSB) |
8 | xxh | Range data byte 2 |
9 | xxh | Range data byte 3 |
10 | xxh | Range data byte 4 (MSB) |
11 | xxh | Check sum LSB |
12 | xxh | Check sum MSB |
13 | 0Dh | Packet end 1 |
14 | 0Ah | Packet end 2 |
xx = Value depends on the current sensor configuration.
...
SET request (HOST -> SENSOR)
Packet byte no. | Content | Description |
0 | 3Ah | Packet start |
1 | 01h | Sensor ID LSB (ID = 1) |
2 | 00h | Sensor ID MSB |
3 | 32h | Command no. LSB (32h = SET_ACC_RANGE) |
4 | 00h | Command no. MSB |
5 | 04h | Data length LSB (32-bit integer = 4 bytes) |
6 | 00h | Data length MSB |
7 | 08h | Range data byte 1 (Range indicator 8g = 8d) |
8 | 00h | Range data byte 2 |
9 | 00h | Range data byte 3 |
10 | 00h | Range data byte 4 |
11 | 3Fh | Check sum LSB |
12 | 00h | Check sum MSB |
13 | 0Dh | Packet end 1 |
14 | 0Ah | Packet end 2 |
Reply data (SENSOR -> HOST)
Packet byte no. | Content | Description |
0 | 3Ah | Packet start |
1 | 01h | Sensor ID LSB (ID = 1) |
2 | 00h | Sensor ID MSB |
3 | 00h | Command no. LSB (00h = REPLY_ACK) |
4 | 00h | Command no. MSB |
5 | 00h | Data length LSB (Zero length data for ACK reply) |
6 | 00h | Data length MSB |
7 | 01h | Check sum LSB |
8 | 00h | Check sum MSB |
9 | 0Dh | Packet end 1 |
10 | 0Ah | Packet end 2 |
Save Sensor Parameters
WRITE_REGISTER request (HOST -> SENSOR)
Packet byte no. | Content | Description |
0 | 3Ah | Packet start |
1 | 01h | Sensor ID LSB (ID = 1) |
2 | 00h | Sensor ID MSB |
3 | 04h | Command no. LSB(04h = WRITE_REGISTER) |
4 | 00h | Command no. MSB |
5 | 00h | Data length LSB (WRITE_REGISTER command = no data) |
6 | 00h | Data length MSB |
7 | 05h | Check sum LSB |
8 | 00h | Check sum MSB |
9 | 0Dh | Packet end 1 |
10 | 0Ah | Packet end 2 |
Reply data (SENSOR -> HOST)
Packet byte no. | Content | Description |
0 | 3Ah | Packet start |
1 | 01h | Sensor ID LSB (ID = 1) |
2 | 00h | Sensor ID MSB |
3 | 00h | Command no. LSB (00h = REPLY_ACK) |
4 | 00h | Command no. MSB |
5 | 00h | Data length LSB (Zero length data for ACK reply) |
6 | 00h | Data length MSB |
7 | 01h | Check sum LSB |
8 | 00h | Check sum MSB |
9 | 0Dh | Packet end 1 |
10 | 0Ah | Packet end 2 |
NOTE: WRITE_REGISTER command involves flash operation, which might result in delay ACK response
...
GET request (HOST -> SENSOR)
Packet byte no. | Content | Description |
0 | 3Ah | Packet start |
1 | 01h | Sensor ID LSB (ID = 1) |
2 | 00h | Sensor ID MSB |
3 | 08h | Command no. LSB(08h = GET_SENSOR_STATUS) |
4 | 00h | Command no. MSB |
5 | 00h | Data length LSB (GET command = no data) |
6 | 00h | Data length MSB |
7 | 09h | Check sum LSB |
8 | 00h | Check sum MSB |
9 | 0Dh | Packet end 1 |
10 | 0Ah | Packet end 2 |
Reply data (SENSOR -> HOST)
Packet byte no. | Content | Description |
0 | 3Ah | Packet start |
1 | 01h | Sensor ID LSB (ID = 1) |
2 | 00h | Sensor ID MSB |
3 | 08h | Command no. LSB (08h = GET_SENSOR_STATUS) |
4 | 00h | Command no. MSB |
5 | 04h | Data length LSB (32-bit integer = 4 bytes) |
6 | 00h | Data length MSB |
7-10 | xxxxxxxxh | Sensor status data |
11 | xxh | Check sum LSB |
12 | xxh | Check sum MSB |
13 | 0Dh | Packet end 1 |
14 | 0Ah | Packet end 2 |
NOTE: Please refer to Appendix for details of reply data mapping
...
SET request (HOST -> SENSOR)
Packet byte no. | Content | Description |
0 | 3Ah | Packet start |
1 | 01h | Sensor ID LSB (ID = 1) |
2 | 00h | Sensor ID MSB |
3 | 82h | Command no. LSB (82h = SET_UART_BAUDRATE) |
4 | 00h | Command no. MSB |
5 | 04h | Data length LSB (32-bit integer = 4 bytes) |
6 | 00h | Data length MSB |
7 | 00h | 921600 = 0x000E1000 |
8 | 10h | |
9 | 0Eh | |
10 | 00h | |
11 | A5h | Check sum LSB |
12 | 00h | Check sum MSB |
13 | 0Dh | Packet end 1 |
14 | 0Ah | Packet end 2 |
Reply data (SENSOR -> HOST)
Packet byte no. | Content | Description |
0 | 3Ah | Packet start |
1 | 01h | Sensor ID LSB (ID = 1) |
2 | 00h | Sensor ID MSB |
3 | 00h | Command no. LSB (00h = REPLY_ACK) |
4 | 00h | Command no. MSB |
5 | 00h | Data length LSB (Zero length data for ACK reply) |
6 | 00h | Data length MSB |
7 | 01h | Check sum LSB |
8 | 00h | Check sum MSB |
9 | 0Dh | Packet end 1 |
10 | 0Ah | Packet end 2 |
NOTE: Power cycle is required for baudrate settings to take effect
...
CAN channel mapping (16bit data output)
CANOpen ID | Sequential CAN | Output data | |||
181h | 515h | channel 1 | channel 2 | channel 3 | channel 4 |
281h | 516h | channel 5 | channel 6 | channel 7 | channel 8 |
381h | 517h | channel 9 | channel 10 | channel 11 | channel 12 |
481h | 518h | channel 13 | channel 14 | channel 15 | channel 16 |
701h | - |
|
Anchor | ||||
---|---|---|---|---|
|
CANOpen ID | Sequential CAN | Output data | |
181h | 515h | channel 1 | channel 2 |
281h | 516h | channel 3 | channel 4 |
381h | 517h | channel 5 | channel 6 |
481h | 518h | channel 7 | channel 8 |
701h | - |
|
CAN Mapping
Each channel can be assigned different sensor data by changing the CAN mapping via IG1Control. The table below summarizes the available sensor output data.
Mapping index | Data | Unit | 16bit data scaling factor |
0 | Not assigned | ||
1 | Raw Accelerometer X | g | 1000 |
2 | Raw Accelerometer Y | g | 1000 |
3 | Raw Accelerometer Z | g | 1000 |
4 | Calibrated Accelerometer X | g | 1000 |
5 | Calibrated Accelerometer Y | g | 1000 |
6 | Calibrated Accelerometer Z | g | 1000 |
7 | Raw GyroI X | dps or rad/s | 10 (dps), 100 (rad/s) |
8 | Raw GyroI Y | dps or rad/s | 10 (dps), 100 (rad/s) |
9 | Raw GyroI Z | dps or rad/s | 10 (dps), 100 (rad/s) |
10 | Raw GyroII X | dps or rad/s | 10 (dps), 100 (rad/s) |
11 | Raw GyroII Y | dps or rad/s | 10 (dps), 100 (rad/s) |
12 | Raw GyroII Z | dps or rad/s | 10 (dps), 100 (rad/s) |
13 | Bias calibrated GyroI X | dps or rad/s | 10 (dps), 100 (rad/s) |
14 | Bias calibrated GyroI Y | dps or rad/s | 10 (dps), 100 (rad/s) |
15 | Bias calibrated GyroI Z | dps or rad/s | 10 (dps), 100 (rad/s) |
16 | Bias calibrated GyroII X | dps or rad/s | 10 (dps), 100 (rad/s) |
17 | Bias calibrated GyroII Y | dps or rad/s | 10 (dps), 100 (rad/s) |
18 | Bias calibrated GyroII Z | dps or rad/s | 10 (dps), 100 (rad/s) |
19 | Alignment calibrated GyroI X | dps or rad/s | 10 (dps), 100 (rad/s) |
20 | Alignment calibrated GyroI Y | dps or rad/s | 10 (dps), 100 (rad/s) |
21 | Alignment calibrated GyroI Z | dps or rad/s | 10 (dps), 100 (rad/s) |
22 | Alignment calibrated GyroII X | dps or rad/s | 10 (dps), 100 (rad/s) |
23 | Alignment calibrated GyroII Y | dps or rad/s | 10 (dps), 100 (rad/s) |
24 | Alignment calibrated GyroII Z | dps or rad/s | 10 (dps), 100 (rad/s) |
25 | Raw magnetometer X | uT | 100 |
26 | Raw magnetometer Y | uT | 100 |
27 | Raw magnetometer Z | uT | 100 |
28 | Calibrated magnetometer X | uT | 100 |
29 | Calibrated magnetometer Y | uT | 100 |
30 | Calibrated magnetometer Z | uT | 100 |
31 | Angular Velocity X | dps or rad/s | 10 (dps), 100 (rad/s) |
32 | Angular Velocity Y | dps or rad/s | 10 (dps), 100 (rad/s) |
33 | Angular Velocity Z | dps or rad/s | 10 (dps), 100 (rad/s) |
34 | Quaternion W | 10000 | |
35 | Quaternion X | 10000 | |
36 | Quaternion Y | 10000 | |
37 | Quaternion Z | 10000 | |
38 | Euler X | deg or rad | 100 (deg), 10000 (rad) |
39 | Euler X | deg or rad | 100 (deg), 10000 (rad) |
40 | Euler Z | deg or rad | 100 (deg), 10000 (rad) |
41 | Linear Acceleration X | g | 1000 |
42 | Linear Acceleration Y | g | 1000 |
43 | Linear Acceleration Z | g | 1000 |
44 | Pressure | kPa | 100 |
45 | Temperature | °C | 100 |
Example
Assuming default sensor settings, the CAN bus settings and corresponding data output are shown below:
...
Here we can decode the data for CAN-ID 181h as follow:
181h | Byte [0:1] | Byte [2:3] | Byte [4:5] | Byte [6:7] |
---|---|---|---|---|
Byte | 22 FF | 39 00 | C9 03 | FA FF |
Integer value | -222 | 57 | 969 | -6 |
Corresponding data | Acc Calibrated X | Acc Calibrated Y | Acc Calibrated Z | GyroII Align. Calibrated X |
Scaled data | -0.222g | -0.057g | 0.969g | -0.6dps |
Like wise, the raw data can be decoded for 281h, 381h, 481h as follow:
281h | Byte [0:1] | Byte [2:3] | Byte [4:5] | Byte [6:7] |
---|---|---|---|---|
Byte | FF FF | 00 00 | 75 07 | 75 09 |
Integer value | -1 | 1 | 1909 | 2421 |
Corresponding data | GyroII Align. Calibrated Y | GyroII Align. Calibrated Z | Mag Calibrated X | Mag Calibrated Y |
Scaled data | -0.1dps | 0.1dps | 19.09uT | 24.21uT |
381h | Byte [0:1] | Byte [2:3] | Byte [4:5] | Byte [6:7] |
---|---|---|---|---|
Byte | DD 02 | 4F 01 | 0D 05 | 73 FB |
Integer value | 733 | 335 | 1293 | -1165 |
Corresponding data | Mag Calibrated Z | Euler X | Euler Y | Euler Z |
Scaled data | 7.33uT | 3.35deg | 12.93deg | -11.65deg |
481h | Byte [0:1] | Byte [2:3] | Byte [4:5] | Byte [6:7] |
---|---|---|---|---|
Byte | 96 26 | 93 01 | 42 04 | EF FB |
Integer value | 9878 | 403 | 1090 | -1041 |
Corresponding data | Quat W | Quat X | Quat Y | Quat Z |
Scaled data | 0.9878 | 0.0403 | 0.109 | -0.1041 |
ASCII Output
LPMS-IG1 RS232 supports both LPBUS protocol and ASCII output via RS232 terminal. The output format can be set via SET_UART_FORMAT command. In ASCII output format, every data packet has a prefix Start character and End character at the end. Default start character is '$' and end character is '\n'. User can define both Start and End character via SET_UART_ASCII_CHARACTER command. Sensor data is streamed out in comma separated format.
Start character | Data 1 | , | Data 2 | , | ...... | , | Data n | End character |
Sensor data is in 16bit integer format. ASCII data should be divided by the scale factor as shown in the table below. For example, if the accelerometer X data is 234, the actual acceleration in g is 234/1000 = 0.234g.
Order | Format | Sensor data | Scale factor |
1 | UInt32 | Timestamp counter incremented in 500Hz. multiply by 0.002 to convert to seconds. | 500 |
2 | Vector3i16 | Raw accelerometer (g) | 1000 |
3 | Vector3i16 | Calibrated accelerometer (g) | 1000 |
4 | Vector3i16 | Raw GyroI (dps or rad/s) | dps: 1000 rad/s: 1000 |
5 | Vector3i16 | Raw GyroII (dps or rad/s) | dps: 1000 rad/s: 1000 |
6 | Vector3i16 | Static bias calibrated GyroI (dps or rad/s) | dps: 1000 rad/s: 1000 |
7 | Vector3i16 | Static bias calibrated GyroII (dps or rad/s) | dps: 1000 rad/s: 1000 |
8 | Vector3i16 | Alignment calibrated GyroI (dps or rad/s) | dps: 1000 rad/s: 1000 |
9 | Vector3i16 | Alignment calibrated GyroII (dps or rad/s) | dps: 1000 rad/s: 1000 |
10 | Vector3i16 | Raw magnetometer (uT) | 100 |
11 | Vector3i16 | Calibrated magnetometer (uT) | 100 |
12 | Vector3i16 | Angular Vel. (dps or rad/s) | dps: 1000 rad/s: 1000 |
13 | Vector4i16 | Quaternion | 100000 |
14 | Vector3i16 | Euler(degree or rad) | deg: 100 rad:10000 |
15 | Vector3i16 | Linear acceleration (g) | 1000 |
16 | Int16 | Reserved | |
17 | Int16 | Reserved | |
18 | Int16 | Temperature (°C) | 100 |
Appendix
Firmware Function / Command List
Summary
Acknowledged / Not-acknowledged Identifiers | ||||
Identifier | Name | Parameter | Response | Default |
0(00h) | REPLY_ACK | |||
1(01h) | REPLY_NACK |
Register Value Save and Reset Command | ||||
Identifier | Name | Parameter | Response | Default |
4 (04h) | WRITE_REGISTERS | NONE | ACK/NACK | |
5 (05h) | RESTORE_FACTORY_VALUE | NONE | ACK/NACK |
Mode Switching Commands | ||||
Identifier | Name | Parameter | Response | Default |
6 (06h) | GOTO_COMMAND_MODE | NONE | ACK/NACK | |
7 (07h) | GOTO_STREAM_MODE | NONE | ACK/NACK |
Sensor Status Command | ||||
Identifier | Name | Parameter | Response | Default |
8 (08h) | GET_SENSOR_STATUS | NONE | UInt32 | 1 |
Get Data Commands | ||||
Identifier | Name | Parameter | Response | Default |
9 (09h) | GET_IMU_DATA | NONE | ||
10 (0Ah) | GET_GPS_DATA | NONE |
Device Info | ||||
Identifier | Name | Parameter | Response | Default |
20 (14h) | GET_SENSOR_MODEL | NONE | Char[24] | |
21 (15h) | GET_FIRMWARE_INFO | NONE | Char[24] | |
22 (16h) | GET_SERIAL_NUMBER | NONE | Char[24] | |
23(17h) | GET_FILTER_VERSION | NONE | Char[24] |
Data Transmission Commands | ||||
Identifier | Name | Parameter | Response | Default |
30 (1Eh) | SET_IMU_TRANSMIT_DATA | UInt32 | ACK/NACK | |
31 (1Fh) | GET_IMU_TRANSMIT_DATA | NONE | UInt32 |
IMU ID Settings Commands | ||||
Identifier | Name | Parameter | Response | Default |
32 (20h) | SET_IMU_ID | Int32 | ACK/NACK | |
33 (21h) | GET_IMU_ID | NONE | Int32 | 1 |
Stream Frequency Commands | ||||
Identifier | Name | Parameter | Response | Default |
34 (22h) | SET_STREAM_FREQ | Int32 | ACK/NACK | |
35 (23h) | GET_STREAM_FREQ | NONE | Int32 | 100 |
Deg/Rad Output Commands | ||||
Identifier | Name | Parameter | Response | Default |
36 (24h) | SET_DEGRAD_OUTPUT | Int32 | ACK/NACK | |
37 (25h) | GET_DEGRAD_OUTPUT | NONE | Int32 | 0 |
Reference Setting and Offset Reset Commands | ||||
Identifier | Name | Parameter | Response | Default |
38 (26h) | SET_ORIENTATION_OFFSET | Int32 | ACK/NACK | |
39 (27h) | RESET_ORIENTATION_OFFSET | NONE | ACK/NACK |
Accelerometer Settings Commands | |||||
Identifier | Name | Parameter | Response | Default | |
50 (32h) | SET_ACC_RANGE | Int32 | ACK/NACK | ||
51 (33h) | GET_ACC_RANGE | NONE | Int32 | 4g |
Gyroscope Settings Commands | ||||
Identifier | Name | Parameter | Response | Default |
60 (3Ch) | SET_GYR_RANGE | Int32 | ACK/NACK | |
61 (3Dh) | GET_GYR_RANGE | NONE | Int32 | 500dps |
62 (3Eh) | START_GYR_CALIBRATION | NONE | ACK/NACK | |
64 (40h) | SET_ENABLE_GYR_AUTOCALIBRATION | Int32 | ACK/NACK | |
65 (41h) | GET_ENABLE_GYR_AUTOCALIBRATION | NONE | Int32 | 1 |
66(42h) | SET_GYR_THRESHOLD | Float32 | ACK/NACK | |
67 (43h) | GET_GYR_THRESHOLD | NONE | Float32 | 0 |
Magnetometer Settings Commands | ||||
Identifier | Name | Parameter | Response | Default |
70 (46h) | SET_MAG_RANGE | Int32 | ACK/NACK | |
71 (47h) | GET_MAG_RANGE | NONE | Int32 | 8 Gauss |
84 (54h) | START_MAG_CALIBRATION | NONE | ACK/NACK | |
85 (55h) | STOP_MAG_CALIBRATION | NONE | ACK/NACK | |
86 (56h) | SET_MAG_CALIBRATION_TIMEOUT | Int32 | ACK/NACK | |
87 (57h) | GET_MAG_CALIBRATION_TIMEOUT | NONE | Int32 | 20s |
Filter Settings Command | ||||
Identifier | Name | Parameter | Response | Default |
90 (5Ah) | SET_FILTER_MODE | Int32 | ACK/NACK | |
91 (5Bh) | GET_FILTER_MODE | NONE | Int32 | 1 |
CAN Settings Command | ||||
Identifier | Name | Parameter | Response | Default |
110 (6Eh) | SET_CAN_START_ID | Int32 | ACK/NACK | |
111 (6Fh) | GET_CAN_START_ID | NONE | Int32 | 0x514 |
112 (70h) | SET_CAN_BAUDRATE | Int32 | ACK/NACK | |
113 (71h) | GET_CAN_BAUDRATE | NONE | Int32 | 500 |
114 (72h) | SET_CAN_DATA_PRECISION | Int32 | ACK/NACK | |
115 (73h) | GET_CAN_DATA_PRECISION | NONE | Int32 | 0 |
116 (74h) | SET_CAN_MODE | Int32 | ACK/NACK | |
117 (75h) | GET_CAN_MODE | NONE | Int32 | 0 |
118 (76h) | SET_CAN_MAPPING | Int32[16] | ACK/NACK | |
119 (77h) | GET_CAN_MAPPING | NONE | Int32[16] | |
120 (78h) | SET_CAN_HEARTBEAT | Int32 | ACK/NACK | |
121 (79h) | GET_CAN_HEARTBEAT | NONE | Int32 | 1 |
UART / RS232 Settings Command | ||||
Identifier | Name | Parameter | Response | Default |
130 (82h) | SET_UART_BAUDRATE | Int32 | ACK/NACK | |
131 (83h) | GET_UART_BAUDRATE | NONE | Int32 | 921600 |
132 (84h) | SET_UART_FORMAT | Int32 | ACK/NACK | |
133 (85h) | GET_UART_FORMAT | NONE | Int32 | 0 |
134 (86h) | SET_UART_ASCII_CHARACTER | Int8[4] | ACK/NACK | |
135 (87h) | GET_UART_ASCII_CHARACTER | NONE | Int8[4] | 0x24 0x0D 0x00 0x00 |
136 (88h) | SET_LPBUS_DATA_PRECISION | Int32 | ACK/NACK | |
137 (89h) | GET_LPBUS_DATA_PRECISION | NONE | Int32 | 1 |
Sensor Data Timestamp Manipulation | ||||
Identifier | Name | Parameter | Response | Default |
152 (98h) | SET_TIMESTAMP | Int32 | ACK/NACK |
GPS Data Transmission Commands | ||||
Identifier | Name | Parameter | Response | Default |
160 (A0h) | SET_GPS_TRANSMIT_DATA | Int32[2] | ACK/NACK | |
161 (A1h) | GET_GPS_TRANSMIT_DATA | NONE | Int32[2] | |
162 (A2h) | SAVE_GPS_STATE | NONE | ACK/NACK | |
163 (A3h) | CLEAR_GPS_STATE | NONE | ACK/NACK |
Acknowledged and Not-acknowledged Identifiers
Identifier | 0(0x00) |
Name | REPLY_ACK |
Description | Confirms a successful SET command. |
Identifier | 1(0x01) |
Name | REPLY_NACK |
Description | Reports an error during processing a SET command. |
Register Value Save and Reset Command
Identifier | 4 (0x04) |
Name | WRITE_REGISTERS |
Description | Write the currently set parameters to flash memory. |
Parameter | NONE |
Response | ACK (success) or NACK (error |
Identifier | 5 (0x05) |
Name | RESTORE_FACTORY_VALUE |
Description | Reset the LPMS parameters to factory default values. Please note that upon issuing this command your currently set parameters will be erased. |
Parameter | NONE |
Response | ACK (success) or NACK (error) |
Mode Switching Commands
Identifier | 6 (0x06) |
Name | GOTO_COMMAND_MODE |
Description | Switch to command mode. In command mode the user can issue commands to the firmware to perform calibration, set parameters etc. |
Parameter | NONE |
Response: | ACK (success) or NACK (error) |
Identifier | 7 (0x07) |
Name | GOTO_STREAM_MODE |
Description | Switch to streaming mode. In this mode data is continuously streamed from the sensor, and some commands cannot be performed until the sensor receives the GOTO_COMMAND_MODE command. |
Parameter | NONE |
Response | ACK (success) or NACK (error) |
Sensor Status Command
Identifier | 8 (0x08) |
Name | GET_SENSOR_STATUS |
Description | Get the current sensor status |
Parameter | NONE |
Response | Int32 |
Sensor status | Identifier |
Command Mode | 0 |
Streaming Mode | 1 |
Get Data Commands
Identifier | 9(0x09) |
Name | GET_IMU_DATA |
Description | Get the sensor data |
Parameter | NONE |
Response |
Identifier | 10(0x0A) |
Name | GET_GPS_DATA |
Description | Get the GPS data |
Parameter | NONE |
Response |
Device Info Commands
Identifier | 20 (0x14) |
Name | GET_SENSOR_MODEL |
Description | Get the sensor model information |
Parameter | NONE |
Response | Char[24] |
Identifier | 21 (0x15) |
Name | GET_FIRMWARE_INFO |
Description | Get the firmware information |
Parameter | NONE |
Response | Char[24] |
Identifier | 22 (0x16) |
Name | GET_SERIAL_NUMBER |
Description | Get the serial number information |
Parameter | NONE |
Response | Char[24] |
Identifier | 23 (0x17) |
Name | GET_FILTER_VERSION |
Description | Get the internal filter version information |
Parameter | NONE |
Response | Char[24] |
Data Transmission Commands
Identifier | 30 (0x1E) |
Name | SET_IMU_TRANSMIT_DATA |
Description | Set the current transmitted data of sensor |
Parameter | Int32 |
Bit | Reported State / Parameter |
0 | Accelerometer raw data transmission enabled |
1 | Accelerometer calibrated data transmission enabled |
2 | GyroI raw data transmission enabled |
3 | GyroII raw data transmission enabled |
4 | GyroI bias calibrated data transmission enabled |
5 | GyroII bias calibrated data transmission enabled |
6 | GyroI alignment calibrated data transmission enabled |
7 | GyroII alignment calibrated data transmission enabled |
8 | Magnetometer raw data transmission enabled |
9 | Magnetometer calibrated data transmission enabled |
10 | Angular velocity transmission enabled |
11 | Quaternion orientation transmission enabled |
12 | Euler angle data transmission enabled |
13 | LinAcc data transmission enabled |
14 | Reserved |
15 | Reserved |
16 | Temperature data transmission enabled |
17-31 | Reserved |
Response | ACK (success) or NACK (error) |
Identifier | 31 (0x1F) |
Name | GET_IMU_TRANSMIT_DATA |
Description | Get the current transmitted data from sensor |
Parameter | NONE |
Response | Int32 |
Bit | Reported State / Parameter |
0 | Accelerometer raw data transmission enabled |
1 | Accelerometer calibrated data transmission enabled |
2 | GyroI raw data transmission enabled |
3 | GyroII raw data transmission enabled |
4 | GyroI bias calibrated data transmission enabled |
5 | GyroII bias calibrated data transmission enabled |
6 | GyroI alignment calibrated data transmission enabled |
7 | GyroII alignment calibrated data transmission enabled |
8 | Magnetometer raw data transmission enabled |
9 | Magnetometer calibrated data transmission enabled |
10 | Angular velocity transmission enabled |
11 | Quaternion orientation transmission enabled |
12 | Euler angle data transmission enabled |
13 | LinAcc data transmission enabled |
14 | Reserved |
15 | Reserved |
16 | Temperature data transmission enabled |
17-31 | Reserved |
IMU ID Setting Command
Identifier | 32 (0x20) |
Name | SET_IMU_ID |
Description | Set sensor ID |
Parameter | Int32 |
Response | ACK (success) or NACK (error) |
Identifier | 33 (0x21) |
Name | GET_IMU_ID |
Description | Get sensor ID |
Parameter | None |
Response | Int32 |
Stream Frequency Commands
Identifier | 34 (0x22) |
Name | SET_STREAM_FREQ |
Description | Set the current streaming frequency |
Parameter | Int32 |
Frequency (Hz) | Identifier |
5 | 5 |
10 | 10 |
50 | 50 |
100 | 100 |
250 | 250 |
500 | 500 |
Response | ACK (success) or NACK (error) |
Identifier | 35 (0x23) |
Name | GET_STREAM_FREQ |
Description | Get the current streaming frequency |
Parameter | NONE |
Response | Int32 |
Frequency (Hz) | Identifier |
5 | 5 |
10 | 10 |
50 | 50 |
100 | 100 |
250 | 250 |
500 | 500 |
Deg/Rad Output Commands
Identifier | 36 (0x24) |
Name | SET_DEGRAD_OUTPUT |
Description | Set the current output unit of angle and rate |
Parameter | Int32 |
Output unit | Identifier |
degree or degree per second | 0 |
radian or radian per second | 1 |
Response | ACK (success) or NACK (error) |
Identifier | 37 (0x25) |
Name | GET_DEGRAD_OUTPUT |
Description | Get the current output unit of angle and rate |
Parameter | NONE |
Response | Int32 |
Output unit | Identifier |
degree or degree per second | 0 |
radian or radian per second | 1 |
Anchor | ||||
---|---|---|---|---|
|
Identifier | 38 (0x26) |
Name | SET_ORIENTATION_OFFSET |
Description | Set the orientation offset (unity quaternion). |
Parameter | Int32 |
Offset Mode | Identifier |
Object | 0 |
Heading | 1 |
Alignment | 2 |
Response | ACK (success) or NACK (error) |
Identifier | 39 (0x27) |
Name | RESET_ORIENTATION_OFFSET |
Description | Reset the orientation offset to 0 (unity quaternion). |
Parameter | NONE |
Response | ACK (success) or NACK (error) |
Accelerometer Settings Command
Identifier | 50 (0x32) |
Name | SET_ACC_RANGE |
Description | Set the current range of the accelerometer |
Parameter | Int32 |
Range | Identifier |
2g | 2 |
4g | 4 |
8g | 8 |
16g | 16 |
Response | ACK (success) or NACK (error) |
Identifier | 51 (0x33) |
Name | GET_ACC_RANGE |
Description | Get the current range of the accelerometer |
Parameter | NONE |
Response | Int32 |
Range | Identifier |
2g | 2 |
4g | 4 |
8g | 8 |
16g | 16 |
Anchor | ||||
---|---|---|---|---|
|
Gyroscope Settings Command
Identifier | 60 (0x3C) |
Name | SET_GYR_RANGE |
Description | Set the current range of the gyroscope |
Parameter | Int32 |
Range (deg/s) | Identifier |
400 | 400 |
1000 | 1000 |
2000 | 2000 |
Response | ACK (success) or NACK (error) |
Identifier | 61 (0x3D) |
Name | GET_GYR_RANGE |
Description | Get current gyroscope range. |
Parameter | NONE |
Response | Int32 |
Range (deg/s) | Identifier |
400 | 400 |
1000 | 1000 |
2000 | 2000 |
Anchor | ||||
---|---|---|---|---|
|
Identifier | 62 (0x3E) |
Name | START_GYR_CALIBRATION |
Description | Start gyro static bias calibration. |
Parameter | NONE |
Response | ACK (success) or NACK (error) |
Identifier | 64 (0x40) |
Name | SET_ENABLE_GYR_AUTOCALIBRATION |
Description | Enable / Disable gyro autocalibration. |
Parameter | Int32 |
Function | Identifier |
ENABLE_GYR_AUTOCAL | 1 |
DISABLE_GYR_AUTOCAL | 0 |
Response: | ACK (success) or NACK (error) |
Identifier | 65 (0x41) |
Name | GET_ENABLE_GYR_AUTOCALIBRATION |
Description | Get gyro autocalibration status. |
Parameter | NONE |
Response | Int32 |
Function | Identifier |
ENABLE_GYR_AUTOCAL | 1 |
DISABLE_GYR_AUTOCAL | 0 |
Identifier | 66 (0x42) |
Name | SET_GYR_THRESHOLD |
Description | Set the gyroscope threshold which can be used to suppress noise or vibrations that might impact the sensor measurements. |
Parameter | Float32 |
Response | ACK (success) or NACK (error) |
Identifier | 67 (0x43) |
Name | GET_GYR_THRESHOLD |
Description | Get the gyroscope threshold. |
Parameter | NONE |
Response | Float32 |
Magnetometer Settings Command
Identifier | 70 (0x46) |
Name | SET_MAG_RANGE |
Description | Set the current range of the gyroscope |
Parameter | Int32 |
Range | Identifier |
2 Gauss | 2 |
8 Gauss | 8 |
Response | ACK (success) or NACK (error) |
Identifier | 71 (0x47) |
Name | GET_MAG_RANGE |
Description | Get current magnetometer range. |
Parameter | NONE |
Response | Int32 |
Range | Identifier |
2 Gauss | 2 |
8 Gauss | 8 |
Identifier | 84 (0x54) |
Name | START_MAG_CALIBRATION |
Description | Start calibration of magnetometer. |
Parameter | NONE |
Response | ACK (success) or NACK (error) |
Identifier | 85 (0x55) |
Name | STOP_MAG_CALIBRATION |
Description | Stop calibration of magnetometer. |
Parameter | NONE |
Response | ACK (success) or NACK (error) |
Identifier | 86 (0x56) |
Name | SET_MAG_CALBRATION_TIMEOUT |
Description | Set the time of the magnetometer calibration. |
Parameter | Int32 |
Response | ACK (success) or NACK (error) |
Identifier | 87 (0x57) |
Name | GET_MAG_CALBRATION_TIMEOUT |
Description | Get the time of the magnetometer calibration. |
Parameter | NONE |
Response | Int32 |
Filter Settings Command
Identifier | 90 (0x5A) |
Name | SET_ FILTER_MODE |
Description | Set the sensor filter mode |
Parameter | Int32 |
Mode | Value |
Gyroscope(Only) | 0 |
Accelerometer + gyroscope (Kalman filter) | 1 |
Accelerometer + gyroscope + Magnetometer(Kalman filter) | 2 |
Accelerometer + gyroscope (DCM filter) | 3 |
Accelerometer + gyroscope + Magnetometer(DCM filter) | 4 |
Response | ACK (success) or NACK (error) |
Identifier | 91 (0x5B) |
Name | GET_ FILTER_MODE |
Description | Get the sensor filter mode |
Parameter | NONE |
Response | Int32 |
Mode | Value |
Gyroscope(Only) | 0 |
Accelerometer + gyroscope (Kalman filter) | 1 |
Accelerometer + gyroscope + Magnetometer(Kalman filter) | 2 |
Accelerometer + gyroscope (DCM filter) | 3 |
Accelerometer + gyroscope + Magnetometer(DCM filter) | 4 |
CAN Settings Command
Identifier | 110 (0x6E) |
Name | SET_CAN_START_ID |
Description | Set the CAN sequential start ID |
Parameter | Int32 |
Response | ACK (success) or NACK (error) |
Identifier | 111 (0x6F) |
Name | GET_CAN_START_ID |
Description | Get the CAN sequential start ID |
Parameter | NONE |
Response | Int32 |
Identifier | 112 (0x70) |
Name | SET_CAN_BAUDRATE |
Description | Set the current can baudrate |
Parameter | Int32 |
Baud rate | Identifier |
125K | 125 |
250K | 250 |
500K | 500 |
800K | 800 |
1M | 1000 |
Response: | ACK (success) or NACK (error) |
Identifier | 113 (0x71) |
Name | GET_CAN_BAUDRATE |
Description | Get the current can baudrate |
Parameter | NONE |
Response | Int32 |
Baud rate | Identifier |
125K | 125 |
250K | 250 |
500K | 500 |
800K | 800 |
1M | 1000 |
Identifier | 114 (0x72) |
Name | SET_CAN_DATA_PRECISION |
Description | Set the CAN output data precision |
Parameter | Int32 |
Data Precision | Identifier |
16bit Fixed point | 0 |
32bit Float point | 1 |
Response: | ACK (success) or NACK (error) |
Identifier | 115 (0x73) |
Name | GET_CAN_DATA_PRECISION |
Description | Get the CAN output data precision |
Parameter | NONE |
Response: | Int32 |
Data Precision | Identifier |
16bit Fixed point | 0 |
32bit Float point | 1 |
Identifier | 117 (0x75) |
Name | GET_CAN_MODE |
Description | Get the current can mode |
Parameter | NONE |
Response | Int32 |
Mode | Identifier |
CANopen | 0 |
Sequential can | 1 |
Identifier | 118 (0x76) | |
Name | SET_CAN_MAPPING | |
Description | Set the current transmitted data of each can channel | |
Parameter | Int32[16] | |
Int32[] | CAN Channel | Identifier |
Int32[0] | Channel1 | Mapping index |
Int32[1] | Channel2 | Mapping index |
Int32[2] | Channel3 | Mapping index |
… | … | … |
Int32[15] | Channel16 | Mapping index |
Response | ACK (success) or NACK (error) |
NOTE: See here for CAN mapping details
Identifier | 119 (0x77) | |
Name | GET_CAN_MAPPING | |
Description | Get the current transmitted data of each can channel | |
Parameter | NONE | |
Response | Int32[16] | |
Int32[] | CAN Channel | Identifier |
Int32[0] | Channel1 | Mapping index |
Int32[1] | Channel2 | Mapping index |
Int32[2] | Channel3 | Mapping index |
… | … | … |
Int32[15] | Channel16 | Mapping |
NOTE: See here for CAN mapping details
Identifier | 120 (0x78) |
Name | SET_CAN_HEARTBEAT |
Description | Set the CANopen heartbeat |
Parameter | Int32 |
Period | Identifier |
0.5s | 0 |
1s | 1 |
2s | 2 |
5s | 5 |
10s | 10 |
Response | ACK (success) or NACK (error) |
Identifier | 121 (0x79) |
Name | GET_CAN_HEARTBEAT |
Description | Get the CANopen heartbeat |
Parameter | NONE |
Response | Int32 |
period | Identifier |
0.5s | 0 |
1s | 1 |
2s | 2 |
5s | 5 |
10s | 10 |
UART / RS232 Settings Command
Identifier | 130 (0x82) |
Name | SET_UART_BAUDRATE |
Description | Set the current UART / RS232 baudrate |
Parameter | Int32 |
Baud rate | Identifier |
115200 | 115200 |
230400 | 230400 |
256000 | 256000 |
460800 | 460800 |
921600 | 921600 |
Response | ACK (success) or NACK (error) |
Identifier | 131 (0x83) |
Name | GET_UART_BAUDRATE |
Description | Get the current UART / RS232 baudrate |
Parameter | NONE |
Response | Int32 |
Baud rate | Identifier |
115200 | 115200 |
230400 | 230400 |
256000 | 256000 |
460800 | 460800 |
921600 | 921600 |
Anchor | ||||
---|---|---|---|---|
|
Identifier | 132 (0x84) |
Name | SET_UART_FORMAT |
Description | Set the UART / RS232 output format |
Parameter | Int32 |
Format | Identifier |
LPBUS | 0 |
ASCII | 1 |
Response | ACK (success) or NACK (error) |
Identifier | 133 (0x85) |
Name | GET_UART_FORMAT |
Description | Get the UART / RS232 output format |
Parameter | NONE |
Response | Int32 |
Format | Identifier |
LPBUS | 0 |
ASCII | 1 |
Identifier | 134 (0x86) |
Name | SET_UART_ASCII_CHARACTER |
Description | Set the ASCII start/stop character |
Parameter | Int8[4] |
Byte | Parameter |
0 | Start character |
1 | stop character |
2 | Reserved |
3 | Reserved |
Response | ACK (success) or NACK (error) |
Identifier | 135 (0x87) |
Name | GET_UART_ASCII_CHARACTER |
Description | Get the ASCII start/stop character |
Parameter | NONE |
Response | Int8[4] |
Byte | Parameter |
0 | Start character |
1 | stop character |
2 | Reserved |
3 | Reserved |
Identifier | 136 (0x88) |
Name | SET_LPBUS_DATA_PRECISION |
Description | Set the current UART / RS232 output data precision |
Parameter | Int32 |
Data Precision | Identifier |
16bit Fixed point | 0 |
32bit Float point | 1 |
Response | ACK (success) or NACK (error) |
Identifier | 137 (0x89) |
Name | GET_LPBUS_DATA_PRECISION |
Description | Get the current UART / RS232 output data precision |
Parameter | NONE |
Response | Int32 |
Data Precision | Identifier |
16bit Fixed point | 0 |
32bit Float point | 1 |
Sensor Data Timestamp Manipulation
Identifier | 152 (0x98) |
Name | SET_TIMESTAMP |
Description | Set the sensor data timestamp |
Parameter | Int32 |
Response | ACK (success) or NACK (error) |
GPS Data Transmission Commands
Identifier | 160 (0xA0) | |
Name | SET_GPS_TRANSMIT_DATA | |
Description | Set the current transmitted data of GPS | |
Parameter | Int32[2] | |
Int32[0] | Bit | Reported State / Parameter |
0 | GPS NAV-PVT iTOW transmission enabled | |
1 | GPS NAV-PVT year transmission enabled | |
2 | GPS NAV-PVT month transmission enabled | |
3 | GPS NAV-PVT day transmission enabled | |
4 | GPS NAV-PVT hour transmission enabled | |
5 | GPS NAV-PVT min transmission enabled | |
6 | GPS NAV-PVT sec transmission enabled | |
7 | GPS NAV-PVT valid transmission enabled | |
8 | GPS NAV-PVT tAcc transmission enabled | |
9 | GPS NAV-PVT nano transmission enabled | |
10 | GPS NAV-PVT fixType transmission enabled | |
11 | GPS NAV-PVT flags transmission enabled | |
12 | GPS NAV-PVT flags2 transmission enabled | |
13 | GPS NAV-PVT numSV transmission enabled | |
14 | GPS NAV-PVT longitude transmission enabled | |
15 | GPS NAV-PVT latitude transmission enabled | |
16 | GPS NAV-PVT height transmission enabled | |
17 | GPS NAV-PVT hMSL transmission enabled | |
18 | GPS NAV-PVT hAcc transmission enabled | |
19 | GPS NAV-PVT vAcc transmission enabled | |
20 | GPS NAV-PVT velN transmission enabled | |
21 | GPS NAV-PVT velE transmission enabled | |
22 | GPS NAV-PVT velD transmission enabled | |
23 | GPS NAV-PVT gSpeed transmission enabled | |
24 | GPS NAV-PVT headMot transmission enabled | |
25 | GPS NAV-PVT sAcc transmission enabled | |
26 | GPS NAV-PVT headAcc transmission enabled | |
27 | GPS NAV-PVT pDOP transmission enabled | |
28 | GPS NAV-PVT headVeh transmission enabled | |
29-31 | Reserved | |
Int32[1] | Bit | Reported State / Parameter |
0 | GPS NAV-ATT iTOW transmission enabled | |
1 | GPS NAV-ATT version transmission enabled | |
2 | GPS NAV-ATT roll transmission enabled | |
3 | GPS NAV-ATT pitch transmission enabled | |
4 | GPS NAV-ATT heading transmission enabled | |
5 | GPS NAV-ATT accRoll transmission enabled | |
6 | GPS NAV-ATT accPitch transmission enabled | |
7 | GPS NAV-ATT accHeading transmission enabled | |
8 | GPS ESF-STATUS iTOW transmission enabled | |
9 | GPS ESF-STATUS version transmission enabled | |
10 | GPS ESF-STATUS initStatus1 transmission enabled | |
11 | GPS ESF-STATUS initStatus2 transmission enabled | |
12 | GPS ESF-STATUS fusionMode transmission enabled | |
13 | GPS ESF-STATUS numSens transmission enabled | |
14 | GPS ESF-STATUS sensStatus transmission enabled | |
15-31 | Reserved | |
Response: | ACK (success) or NACK (error) |
Identifier | 161 (0xA1) | |
Name | GET_GPS_TRANSMIT_DATA | |
Description | Get the current transmitted data of GPS | |
Parameter | NONE | |
Response | Int32[2] | |
Int32[0] | Bit | Reported State / Parameter |
0 | GPS NAV-PVT iTOW transmission enabled | |
1 | GPS NAV-PVT year transmission enabled | |
2 | GPS NAV-PVT month transmission enabled | |
3 | GPS NAV-PVT day transmission enabled | |
4 | GPS NAV-PVT hour transmission enabled | |
5 | GPS NAV-PVT min transmission enabled | |
6 | GPS NAV-PVT sec transmission enabled | |
7 | GPS NAV-PVT valid transmission enabled | |
8 | GPS NAV-PVT tAcc transmission enabled | |
9 | GPS NAV-PVT nano transmission enabled | |
10 | GPS NAV-PVT fixType transmission enabled | |
11 | GPS NAV-PVT flags transmission enabled | |
12 | GPS NAV-PVT flags2 transmission enabled | |
13 | GPS NAV-PVT numSV transmission enabled | |
14 | GPS NAV-PVT longitude transmission enabled | |
15 | GPS NAV-PVT latitude transmission enabled | |
16 | GPS NAV-PVT height transmission enabled | |
17 | GPS NAV-PVT hMSL transmission enabled | |
18 | GPS NAV-PVT hAcc transmission enabled | |
19 | GPS NAV-PVT vAcc transmission enabled | |
20 | GPS NAV-PVT velN transmission enabled | |
21 | GPS NAV-PVT velE transmission enabled | |
22 | GPS NAV-PVT velD transmission enabled | |
23 | GPS NAV-PVT gSpeed transmission enabled | |
24 | GPS NAV-PVT headMot transmission enabled | |
25 | GPS NAV-PVT sAcc transmission enabled | |
26 | GPS NAV-PVT headAcc transmission enabled | |
27 | GPS NAV-PVT pDOP transmission enabled | |
28 | GPS NAV-PVT headVeh transmission enabled | |
29-31 | Reserved | |
Int32[1] | Bit | Reported State / Parameter |
0 | GPS NAV-ATT iTOW transmission enabled | |
1 | GPS NAV-ATT version transmission enabled | |
2 | GPS NAV-ATT roll transmission enabled | |
3 | GPS NAV-ATT pitch transmission enabled | |
4 | GPS NAV-ATT heading transmission enabled | |
5 | GPS NAV-ATT accRoll transmission enabled | |
6 | GPS NAV-ATT accPitch transmission enabled | |
7 | GPS NAV-ATT accHeading transmission enabled | |
8 | GPS ESF-STATUS iTOW transmission enabled | |
9 | GPS ESF-STATUS version transmission enabled | |
10 | GPS ESF-STATUS initStatus1 transmission enabled | |
11 | GPS ESF-STATUS initStatus2 transmission enabled | |
12 | GPS ESF-STATUS fusionMode transmission enabled | |
13 | GPS ESF-STATUS numSens transmission enabled | |
14 | GPS ESF-STATUS sensStatus transmission enabled | |
15-31 | Reserved |
Identifier | 162 (0xA2) |
Name | SAVE_GPS_STATE |
Description | Save current GPS state to the flash of GPS module |
Parameter | NONE |
Response: | ACK (success) or NACK (error) |
Identifier | 163 (0xA3) |
Name | CLEAR_GPS_STATE |
Description | Clear flash of GPS module |
Parameter | NONE |
Response: | ACK (success) or NACK (error) |