Skip to content

Commit d48ec14

Browse files
authored
Merge pull request #27 from peterhinch/mode-fix
mode setter enables changes and honors delays.
2 parents 32a5a8a + 29784ae commit d48ec14

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

adafruit_bno055.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,14 @@ def mode(self):
197197
"""
198198
return self._read_register(_MODE_REGISTER)
199199

200+
@mode.setter
201+
def mode(self, new_mode):
202+
self._write_register(_MODE_REGISTER, CONFIG_MODE) # Empirically necessary
203+
time.sleep(0.02) # Datasheet table 3.6
204+
if new_mode != CONFIG_MODE:
205+
self._write_register(_MODE_REGISTER, new_mode)
206+
time.sleep(0.01) # Table 3.6
207+
200208
@property
201209
def calibration_status(self):
202210
"""Tuple containing sys, gyro, accel, and mag calibration data."""
@@ -213,10 +221,6 @@ def calibrated(self):
213221
sys, gyro, accel, mag = self.calibration_status
214222
return sys == gyro == accel == mag == 0x03
215223

216-
@mode.setter
217-
def mode(self, new_mode):
218-
self._write_register(_MODE_REGISTER, new_mode)
219-
220224
@property
221225
def external_crystal(self):
222226
"""Switches the use of external crystal on or off."""

0 commit comments

Comments
 (0)