LPMS-INC1 User Manual

LPMS-INC1 User Manual

Introduction

image-20251002-075722.png

LPMS-INC1 is a high-precision, high-stability dual-axis inclinometer based on MEMS sensors. It offers a measurement range of ±90°, a resolution of less than 0.001°, and an accuracy of up to 0.011°. The operating temperature range is -20 to 85 °C. By integrating and processing data from its built-in accelerometer, and applying filtering and calibration algorithms, the device digitally outputs various data including raw acceleration, calibrated acceleration, tilt angles, and temperature.

Communication Options: To suit different applications, LPMS-INC1 provides four communication interfaces: RS232, CAN, RS485, or TTL.

Key Features

  • High-precision, high-stability dual-axis inclinometer based on MEMS sensors

  • Measurement range: ±90°

  • Resolution: <0.001° (IEEE 32-bit single-precision floating-point format)

  • Accuracy: 0.011°

  • Operating temperature range: -20 to 85 °C

  • Supply voltage: 5 to 36 V

  • Real-time output: raw acceleration data, calibrated acceleration data, tilt angle data, temperature data, up to 500Hz output frequency

  • Communication interfaces: RS232, CAN, RS485, or TTL

Applications

  • Construction machinery

  • Energy and power systems

  • Bridge and building structures

Reference System and Output Data

Coordinates

The coordinate system for LPMS-INC1 is defined as follows:

image-20251003-021709.png

Output Data

Accelerometer output convention

LPMS-INC1 outputs both raw and calibrated accelerometer data. A positive acceleration output will be produced when the sensor is accelerated at the same direction of the positive axes. When the sensor is at rest with Z axis pointing upwards, the calibrated output of the accelerometer is expected to be [0 0 +1g] indicating the acceleration due to the force of gravity.

Euler output convention

image-20251003-022656.png

Euler output is in degrees. Euler X and Y represents angle between X/Y axis and horizontal. LPMS-INC1 does not output yaw angle.

Range of euler output is as follow:

  • X Angle: -90° ~ +90°

  • Y Angle: -90° ~ +90°

  • Z Angle: -

Temperature output

LPMS-INC1 also outputs temperature data measured by the internal accelerometer chip.

Communication

LPMS-INC1 offers four types of communication interfaces:

  • USB + RS232

  • USB + CAN

  • USB + RS485

  • USB + TTL

Sensor data is streamed to both USB and RS232/CAN/RS485/TTL terminals simultaneously. Communication protocol for different terminals are summarized as below:

Terminal

Protocol

USB

LPBUS Protocol

CAN

CANOpen

RS232/RS485/TTL

LPBUS Protocol/ASCII

Communication Modes

There are two communication modes, Streaming Mode and Command mode in LPMS-INC1 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/RS485/TTL terminals simultaneously. Streaming frequency for both USB and RS232/CAN/RS485/TTL 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 the figure below:


NOTE: User must issue a Save Parameters command to retain any parameter changes to the sensor before next power cycle.

LPBUS Protocol

LPBUS is a communication protocol based on the industry standard MODBUS protocol. It is the default communication format used by LPMS sensors. An LPBUS communication packet has two basic command types, GET and SET, that are sent from a host (PC, mobile data logging unit etc.) to a client (LPMS sensor). Later in this manual we will show a description of all supported commands to the sensor, their types and transported data.

GET Commands

Data from the client is read using GET requests. A GET request usually contains no data. The answer from the client to a GET request contains the requested data.

SET Commands

Data registers of the client are written using SET requests. A SET command from the host contains the data to be set. The answer from the client is either ACK (acknowledged) for a successful write, or NACK (not acknowledged) for a failure to set the register occurred.

LPBUS Packet Format

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:
    LRC = sum(Sensor ID, Command no., Data length, and Data field).
    The calculated LRC is usually compared with the LRC transmitted from the remote device. If the two LRCs are not equal, and error is reported.

  • 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

Inclinometer 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

Euler

deg (default) or rad

5

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

Euler(degree or rad)

deg: 100 rad:10000

5

Int16

Temperature (°C)

100

Example inclinometer Data parsing (32bit)

LPBus packet from sensor (hex):
3A 01 00 09 00 2C 00 F0 7C 00 00 6F 12 03 BB 6A 03 1D BC 2B 87 7E 3F 4A CD 03 BB 7A 0F 1D BC 03 86 7E 3F 1B 59 ED BD 39 6B 0D BF 00 00 00 00 50 68 B7 41 51 0F 0D 0A

Description

Received Data (Hex)

Raw Data (Hex)

Converted Value

Multiplier

Actual Value

Unit

Description

Received Data (Hex)

Raw Data (Hex)

Converted Value

Multiplier

Actual Value

Unit

Packet Header

3A

-

-

-

-

-

Sensor ID

01 00

0001

1

-

-

-

Command Code

09 00

0009

9

-

-

-

Data Length

2C 00

002C

44

-

44

bytes

Timestamp

F0 7C 00 00

00007CF0

31984

0.002

63.968

sec.

Raw Accelerometer Data X

6F 12 03 BB

BB03126F

-0.002

-

-0.002

g

Raw Accelerometer Data Y

6A 03 1D BC

BC1D036A

-0.0095833

-

-0.0095833

g

Raw Accelerometer Data Z

2B 87 7E 3F

3F7E872B

0.99425

-

0.99425

g

Calibrated Accelerometer X

4A CD 03 BB

BB03CD4A

-0.0020111

-

-0.0020111

g

Calibrated Accelerometer Y

7A 0F 1D BC

BC1D0F7A

-0.0095862

-

-0.0095862

g

Calibrated Accelerometer Z

03 86 7E 3F

3F7E8603

0.9942324

-

0.9942324

g

Tilt Angle X

1B 59 ED BD

BDED591B

-0.1158926

-

-0.1158926

deg.

Tilt Angle Y

39 6B 0D BF

BF0D6B39

-0.5524173

-

-0.5524173

deg.

Tilt Angle Z

00 00 00 00

00000000

0.0

-

0.0

deg.

Temperature Data

50 68 B7 41

41B76850

22.92593

-

22.92593

°C

LRC Checksum

51 0F

0F51

-

-

-

-