Skip to content

Commit 3a636e9

Browse files
authored
Merge pull request #48 from brian-eng/osr2
Add Temperature Oversampling
2 parents 7647704 + 76f0fb9 commit 3a636e9

1 file changed

Lines changed: 18 additions & 1 deletion

File tree

adafruit_mlx90393.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,7 @@ def __init__(
215215
filt: int = FILTER_7,
216216
oversampling: int = OSR_3,
217217
temperature_compensation: bool = False,
218+
temperature_oversampling: int = OSR_0,
218219
offset: int = 0,
219220
debug: bool = False,
220221
) -> None:
@@ -226,6 +227,7 @@ def __init__(
226227
self._osr = oversampling
227228
self._gain_current = gain
228229
self._temperature_compensation = temperature_compensation
230+
self._osr2 = temperature_oversampling
229231
# Typical value according the application note
230232
self._tref = 0xB668
231233
self._off_x = self._off_y = self._off_z = offset
@@ -387,7 +389,7 @@ def filter(self, level: int) -> None:
387389

388390
@property
389391
def oversampling(self) -> int:
390-
"""The oversampling level."""
392+
"""The magnetic sensor oversampling level."""
391393
return self._osr
392394

393395
@oversampling.setter
@@ -414,6 +416,21 @@ def temperature_compensation(self, temperature_compensation: bool) -> None:
414416
self.write_reg(_CMD_REG_CONF2, reg)
415417
self._temperature_compensation = temperature_compensation
416418

419+
@property
420+
def temperature_oversampling(self) -> int:
421+
"""The temperature sensor oversampling level."""
422+
return self._osr2
423+
424+
@temperature_oversampling.setter
425+
def temperature_oversampling(self, level: int) -> None:
426+
if level not in range(4):
427+
raise ValueError("Incorrect oversampling level.")
428+
reg = self.read_reg(_CMD_REG_CONF3)
429+
reg &= 0xE7FF
430+
reg |= (level & 0x3) << 12
431+
self.write_reg(_CMD_REG_CONF3, reg)
432+
self._osr2 = level
433+
417434
@property
418435
def offset_x(self) -> int:
419436
"""The X axis offset."""

0 commit comments

Comments
 (0)