Skip to main content
Visitor II
November 17, 2020
Solved

IIS3DWB incorrect acceleration readings (documentation mistake?)

  • November 17, 2020
  • 4 replies
  • 1355 views

The accelerometer is horizontal, in the Z axis 1g and I have about 500 mg in the X axis. I have 3 pieces of accelerometers and in similar positions I have different readings from the X axis.

Temperature reads correctly.

I found a certain inaccuracy:

in the documentation:

0693W000005Bk2KQAS.png in the evaluation board:

0693W000005Bk2CQAS.pngcould this be the cause of the error? I also have an evaluation board and it works ok.

    This topic has been closed for replies.
    Best answer by PSzym.3

    I have swapped the chip from evaluation board to my board and works good.

    The chips were damaged.

    Mark on chip:

    IW

    QR CODE

    027

    Mark on evalboard chip:

    IW

    QR CODE

    921

    4 replies

    ST Employee
    November 18, 2020

    Hi @PSzym.3​ ,

    your finding (the fact that the datasheet and the adapter schematic are showing different configurations for those pins) is correct, but there is no difference/effect of this on the data-out of the IIS3DWB devices.

    I have some questions to try a better understanding of the issue: how many samples do you have tested? And are all these samples doing the same thing? Did you test all the samples soldered on the adapter? And is this "just" an offset of 500mg or is a high noise (for example a data that is jumping from 0mg to 500mg in a steady state condition, i.e. with the z axis pointing upwards and, possibly, with no tilts along x and y axis)?

    -Eleon

    PSzym.3Author
    Visitor II
    November 18, 2020
    Read registers from 1 to 50:
    [1]	unsigned char	0x00 '\x00' (Hex)	0x002B55	
    [2]	unsigned char	0x7F '\x7f' (Hex)	0x002B56	
    [3]	unsigned char	0x00 '\x00' (Hex)	0x002B57	
    [4]	unsigned char	0x00 '\x00' (Hex)	0x002B58	
    [5]	unsigned char	0x00 '\x00' (Hex)	0x002B59	
    [6]	unsigned char	0x00 '\x00' (Hex)	0x002B5A	
    [7]	unsigned char	0x00 '\x00' (Hex)	0x002B5B	
    [8]	unsigned char	0x00 '\x00' (Hex)	0x002B5C	
    [9]	unsigned char	0x0A '\x0a' (Hex)	0x002B5D	
    [10]	unsigned char	0x00 '\x00' (Hex)	0x002B5E	
    [11]	unsigned char	0x00 '\x00' (Hex)	0x002B5F	
    [12]	unsigned char	0x00 '\x00' (Hex)	0x002B60	
    [13]	unsigned char	0x00 '\x00' (Hex)	0x002B61	
    [14]	unsigned char	0x00 '\x00' (Hex)	0x002B62	
    [15]	unsigned char	0x7B '{' (Hex)	0x002B63	
    [16]	unsigned char	0xA0 '\xa0' (Hex)	0x002B64	
    [17]	unsigned char	0x00 '\x00' (Hex)	0x002B65	
    [18]	unsigned char	0x04 '\x04' (Hex)	0x002B66	
    [19]	unsigned char	0x00 '\x00' (Hex)	0x002B67	
    [20]	unsigned char	0x00 '\x00' (Hex)	0x002B68	
    [21]	unsigned char	0x00 '\x00' (Hex)	0x002B69	
    [22]	unsigned char	0x00 '\x00' (Hex)	0x002B6A	
    [23]	unsigned char	0x00 '\x00' (Hex)	0x002B6B	
    [24]	unsigned char	0xE0 '\xe0' (Hex)	0x002B6C	
    [25]	unsigned char	0x00 '\x00' (Hex)	0x002B6D	
    [26]	unsigned char	0x00 '\x00' (Hex)	0x002B6E	
    [27]	unsigned char	0x00 '\x00' (Hex)	0x002B6F	
    [28]	unsigned char	0x00 '\x00' (Hex)	0x002B70	
    [29]	unsigned char	0x00 '\x00' (Hex)	0x002B71	
    [30]	unsigned char	0x01 '\x01' (Hex)	0x002B72	
    [31]	unsigned char	0x74 't' (Hex)	0x002B73	
    [32]	unsigned char	0x5C '\' (Hex)	0x002B74	
    [33]	unsigned char	0xFE '\xfe' (Hex)	0x002B75	
    [34]	unsigned char	0x00 '\x00' (Hex)	0x002B76	
    [35]	unsigned char	0x00 '\x00' (Hex)	0x002B77	
    [36]	unsigned char	0x00 '\x00' (Hex)	0x002B78	
    [37]	unsigned char	0x00 '\x00' (Hex)	0x002B79	
    [38]	unsigned char	0x00 '\x00' (Hex)	0x002B7A	
    [39]	unsigned char	0x00 '\x00' (Hex)	0x002B7B	
    [40]	unsigned char	0x93 '\x93' (Hex)	0x002B7C	
    [41]	unsigned char	0xE4 '\xe4' (Hex)	0x002B7D	
    [42]	unsigned char	0x7A 'z' (Hex)	0x002B7E	
    [43]	unsigned char	0x03 '\x03' (Hex)	0x002B7F	
    [44]	unsigned char	0x66 'f' (Hex)	0x002B80	
    [45]	unsigned char	0xA6 '\xa6' (Hex)	0x002B81	
    [46]	unsigned char	0x00 '\x00' (Hex)	0x002B82	
    [47]	unsigned char	0x00 '\x00' (Hex)	0x002B83	
    [48]	unsigned char	0x00 '\x00' (Hex)	0x002B84	
    [49]	unsigned char	0x00 '\x00' (Hex)	0x002B85	
    [50]	unsigned char	0x00 '\x00' (Hex)	0x002B86
    x	int	0xE493 (Hex)	0x002BE8	
    y	int	0x037A (Hex)	0x002BEA	
    z	int	0xA666 (Hex)	0x002BEC		
     
    AxisX	float	-428.281006	0x002BD8	
    AxisY	float	54.2900009	0x002BDC	
    AxisZ	float	-1399.21802	0x002BE0		
     
    AxisX = iis3dwb_from_fs2g_to_mg(x);
    AxisY = iis3dwb_from_fs2g_to_mg(y);
    AxisZ = iis3dwb_from_fs2g_to_mg(z);
     
    float_t iis3dwb_from_fs2g_to_mg(int16_t lsb)
    {
     return ((float_t)lsb * 0.061f);
    }

    Is the calculation okay?

    It is not noise, it is a fixed value. In the above case on the X axis it varies between 410-450mg.

    if I turned on the high-pass filter, the measurements for all axes are within 30mg max.

    0693W000005BpKsQAK.png 

    Chip1
    AxisX	float	-428.281006	0x002BD8	
    AxisY	float	54.2900009	0x002BDC	
    AxisZ	float	-1399.21802	0x002BE0
     
    Chip2
    AxisX	float	556.137024	0x002BD8	
    AxisY	float	-58.3160019	0x002BDC	
    AxisZ	float	-1002.71802	0x002BE0
     
    chip3
    AxisX	float	934.39801	0x002BD8	
    AxisY	float	-182.817001	0x002BDC	
    AxisZ	float	-950.684998	0x002BE0	

    0693W000005BpWjQAK.png 

    chip1
    AxisX	float	-1379.82007	0x002BD8	
    AxisY	float	26.0470009	0x002BDC	
    AxisZ	float	-1998.604	0x002BE0
     
    chip2
    AxisX	float	-419.252991	0x002BD8	
    AxisY	float	77.4700012	0x002BDC	
    AxisZ	float	-1998.604	0x002BE0
     
    chip3
    AxisX	float	-34.038002	0x002BD8	
    AxisY	float	-191.600998	0x002BDC	
    AxisZ	float	-1959.13696	0x002BE0	

    0693W000005BpavQAC.png 

    chip1
    AxisX	float	-258.640015	0x002BD8	
    AxisY	float	1004.73102	0x002BDC	
    AxisZ	float	-1998.604	0x002BE0
     
    chip2
    AxisX	float	635.68103	0x002BD8	
    AxisY	float	928.725037	0x002BDC	
    AxisZ	float	-1998.604	0x002BE0
     
    chip3
    AxisX	float	985.028015	0x002BD8	
    AxisY	float	814.044983	0x002BDC	
    AxisZ	float	-1939.86096	0x002BE0	

    Maybe the chips were overheated during soldering.

    The chips were buy from DigiKey.

    Power supply 2,5V.

    PSzym.3AuthorAnswer
    Visitor II
    November 25, 2020

    I have swapped the chip from evaluation board to my board and works good.

    The chips were damaged.

    Mark on chip:

    IW

    QR CODE

    027

    Mark on evalboard chip:

    IW

    QR CODE

    921

    ST Employee
    November 25, 2020

    Hi @PSzym.3​ ,

    thank you for coming back for this confirmation (and for the detailed explanation of the problem, in the comment before).

    Data seemed a little weird indeed...

    >> Maybe the chips were overheated during soldering.

    This might be the case... you can check it comparing your soldering process with the datasheet p.49 info or with the technical note TN1198.

    -Eleon