# Understanding data received from sensor (Twos complement)

So I use accelerometer to get acceleration data. However, I have trouble understanding data. I have been reading manual, but it does not help me:

The measured acceleration data are sent to the OUTL_X, OUTH_X .....

The complete acceleration data for the X channel is given by the concatenation OUTL_X & OUTH_X
and is expressed as a 2’s complement number.

Acceleration data are represented as 12-bit numbers (left justified).


I understand the concept of 2s complement and left justified number spread in this case, however, I am unable to understand how to arrive at appropriate acceleration values.

The table with couple examples is also provided:

acc value               OUTL_X           OUTH_X
0 g                      0x00             0x00
343 mg                   0xE0             0x15
1004 mg                  0x00             0x40
-343 mg                  0x20             0xEA
-1004 mg                 0x00             0xC0


It would be really helpful if someone helped to figure out how do manufacturers of accelerometer arrive at these values. This is little endian.

the L and H likely represents LOWER and HIGHER. So the Numbers need to be read as

    0 --> 0x0000  -->      0
343 --> 0x15e0  -->   5600
1004 --> 0x4000  -->  16384
-343 --> 0xea20  -->  59936 = 2^16 - 5600
-1004 --> 0xc000  -->  49152 = 2^16 - 16384


Left justified just means that all measured values have the lower nibble as 0; i.e. last Hex digit will always be 0.

Two complement means that to find the magnitude of a negative number, you need to do two's complement once more (or do 2^16 - number as shown above).

From the conversion for 343 mg and 1004 mg, it appears that the conversion formula from the measured number to mg is measured number/16.32.

• Two's Complement from Wikipedia
– AJN
Commented Jul 12, 2022 at 14:59
• That is clear enough, thank you, I understood the concepts mentioned, I was also confused, because I was getting 350 instead of 343 in the second example, I guess the reference manual is not exactly accurate, but i guess 0.343 g is close enought to 0.35. Thank you. Commented Jul 12, 2022 at 18:20