the tolerance of sh200q of StickC?

I'm curious about the tolerance of the sh200q acceleration readings of StickC.
I put the StickC on the desk and make sure it will not be moved and be steady.
Then I tried the codes below but got the acceleration higher than "1g". Why is that?>>> from hardware import sh200q >>> import math >>> imu = sh200q.Sh200q() >>> >>> for i in range(5): ... print((imu.acceleration[0],imu.acceleration[1],imu.acceleration[2])) ... wait(1) ... ... ... (0.138, 0.058, 1.107) (0.14, 0.055, 1.111) (0.139, 0.058, 1.111) (0.138, 0.055, 1.11) (0.136, 0.06, 1.11) >>> for i in range(5): ... print(math.sqrt(imu.acceleration[0]**2+imu.acceleration[1]**2+imu.acceleration[2]**2)) ... wait(1) ... ... ... 1.11918095051694 1.12111150203715 1.12195989233127 1.12375308675883 1.11990892486845 >>>
I also tried with the configuration 16g range set. More or less the same.
>>> for i in range(5): ... print((imu.acceleration[0],imu.acceleration[1],imu.acceleration[2])) ... wait(1) ... ... ... (0.137, 0.059, 1.12) (0.137, 0.059, 1.11) (0.142, 0.062, 1.11) (0.139, 0.053, 1.108) (0.128, 0.063, 1.107) >>> >>> import math >>> for i in range(5): ... print(math.sqrt(imu.acceleration[0]**2+imu.acceleration[1]**2+imu.acceleration[2]**2)) ... wait(1) ... ... ... 1.13100221043108 1.12003080314784 1.1184927357833 1.11923321966425 1.117821094809 >>> ···

acceleration z is 1g, is normal

but it is 11% more than 1g.
Is it normal? I suppose the tolerance is much lower than 10%.

It need calibration, maybe... i will check it

@heybin I also found "non zero" values for acceleration and gyro. Is there a special calibration method?
Thanks....