Skip to content

Commit ad477c2

Browse files
committed
feat(ism330dl): add accelerometer offset support and calibration helpers
1 parent 53415d5 commit ad477c2

1 file changed

Lines changed: 25 additions & 1 deletion

File tree

lib/ism330dl/ism330dl/device.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ def __init__(self, i2c, address=ISM330DL_I2C_DEFAULT_ADDR):
5151
self._gyro_scale = GYRO_FS_250DPS
5252
self._gyro_odr = GYRO_ODR_104HZ
5353

54+
self._accel_offset_x = 0.0
55+
self._accel_offset_y = 0.0
56+
self._accel_offset_z = 0.0
57+
5458
self._temp_gain = 1.0
5559
self._temp_offset = 0.0
5660

@@ -200,7 +204,27 @@ def temperature_raw(self):
200204
def acceleration_g(self):
201205
sens = ACCEL_SENSITIVITY_MG[self._accel_scale]
202206
raw = self.acceleration_raw()
203-
return tuple((v * sens) / 1000.0 for v in raw)
207+
values = tuple((v * sens) / 1000.0 for v in raw)
208+
209+
return (
210+
values[0] - self._accel_offset_x,
211+
values[1] - self._accel_offset_y,
212+
values[2] - self._accel_offset_z,
213+
)
214+
215+
def set_accel_offset(self, ox=0.0, oy=0.0, oz=0.0):
216+
"""Set accelerometer bias offsets in g."""
217+
self._accel_offset_x = float(ox)
218+
self._accel_offset_y = float(oy)
219+
self._accel_offset_z = float(oz)
220+
221+
def get_accel_offset(self):
222+
"""Return accelerometer bias offsets in g."""
223+
return (
224+
self._accel_offset_x,
225+
self._accel_offset_y,
226+
self._accel_offset_z,
227+
)
204228

205229
def acceleration_ms2(self):
206230
g = self.acceleration_g()

0 commit comments

Comments
 (0)