Skip to content

Added documentation for modes #52

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jul 13, 2020
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
138 changes: 102 additions & 36 deletions adafruit_bno055.py
Original file line number Diff line number Diff line change
Expand Up @@ -143,44 +143,110 @@ def _reset(self):
@property
def mode(self):
"""
Switch the mode of operation and return the previous mode.

Mode of operation defines which sensors are enabled and whether the
measurements are absolute or relative.
If a sensor is disabled, it will return an empty tuple.

legend: x=on, -=off
+------------------+-------+---------+------+----------+
| Mode | Accel | Compass | Gyro | Absolute |
+==================+=======+=========+======+==========+
| CONFIG_MODE | - | - | - | - |
+------------------+-------+---------+------+----------+
| ACCONLY_MODE | X | - | - | - |
+------------------+-------+---------+------+----------+
| MAGONLY_MODE | - | X | - | - |
+------------------+-------+---------+------+----------+
| GYRONLY_MODE | - | - | X | - |
+------------------+-------+---------+------+----------+
| ACCMAG_MODE | X | X | - | - |
+------------------+-------+---------+------+----------+
| ACCGYRO_MODE | X | - | X | - |
+------------------+-------+---------+------+----------+
| MAGGYRO_MODE | - | X | X | - |
+------------------+-------+---------+------+----------+
| AMG_MODE | X | X | X | - |
+------------------+-------+---------+------+----------+
| IMUPLUS_MODE | X | - | X | - |
+------------------+-------+---------+------+----------+
| COMPASS_MODE | X | X | - | X |
+------------------+-------+---------+------+----------+
| M4G_MODE | X | X | - | - |
+------------------+-------+---------+------+----------+
| NDOF_FMC_OFF_MODE| X | X | X | X |
+------------------+-------+---------+------+----------+
| NDOF_MODE | X | X | X | X |
+------------------+-------+---------+------+----------+
.. code-block::

legend: x=on, -=off
+------------------+-------+---------+------+----------+
| Mode | Accel | Compass | Gyro | Absolute |
+==================+=======+=========+======+==========+
| CONFIG_MODE | - | - | - | - |
+------------------+-------+---------+------+----------+
| ACCONLY_MODE | X | - | - | - |
+------------------+-------+---------+------+----------+
| MAGONLY_MODE | - | X | - | - |
+------------------+-------+---------+------+----------+
| GYRONLY_MODE | - | - | X | - |
+------------------+-------+---------+------+----------+
| ACCMAG_MODE | X | X | - | - |
+------------------+-------+---------+------+----------+
| ACCGYRO_MODE | X | - | X | - |
+------------------+-------+---------+------+----------+
| MAGGYRO_MODE | - | X | X | - |
+------------------+-------+---------+------+----------+
| AMG_MODE | X | X | X | - |
+------------------+-------+---------+------+----------+
| IMUPLUS_MODE | X | - | X | - |
+------------------+-------+---------+------+----------+
| COMPASS_MODE | X | X | - | X |
+------------------+-------+---------+------+----------+
| M4G_MODE | X | X | - | - |
+------------------+-------+---------+------+----------+
| NDOF_FMC_OFF_MODE| X | X | X | X |
+------------------+-------+---------+------+----------+
| NDOF_MODE | X | X | X | X |
+------------------+-------+---------+------+----------+

The default mode is ``NDOF_MODE``.

| You can set the mode using the line below:
| ``sensor.mode = adafruit_bno055.ACCONLY_MODE``
| replacing ``ACCONLY_MODE`` with the mode you want to use

.. data:: CONFIG_MODE
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this render it on the module or class?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Class. Here's what it looks like. I can have it render on the module, so it starts right after the author, but I thought this way was a bit cleaner.

docs


This mode is used to configure BNO, wherein all output data is reset to zero and sensor
fusion is halted.

.. data:: ACCONLY_MODE

In this mode, the BNO055 behaves like a stand-alone acceleration sensor. In this mode the
other sensors (magnetometer, gyro) are suspended to lower the power consumption.

.. data:: MAGONLY_MODE

In MAGONLY mode, the BNO055 behaves like a stand-alone magnetometer, with acceleration
sensor and gyroscope being suspended.

.. data:: GYRONLY_MODE

In GYROONLY mode, the BNO055 behaves like a stand-alone gyroscope, with acceleration
sensor and magnetometer being suspended.

.. data:: ACCMAG_MODE

Both accelerometer and magnetometer are switched on, the user can read the data from
these two sensors.

.. data:: ACCGYRO_MODE

Both accelerometer and gyroscope are switched on; the user can read the data from these
two sensors.

.. data:: MAGGYRO_MODE

Both magnetometer and gyroscope are switched on, the user can read the data from these
two sensors.

.. data:: AMG_MODE

All three sensors accelerometer, magnetometer and gyroscope are switched on.

.. data:: IMUPLUS_MODE

In the IMU mode the relative orientation of the BNO055 in space is calculated from the
accelerometer and gyroscope data. The calculation is fast (i.e. high output data rate).

.. data:: COMPASS_MODE

The COMPASS mode is intended to measure the magnetic earth field and calculate the
geographic direction.

.. data:: M4G_MODE

The M4G mode is similar to the IMU mode, but instead of using the gyroscope signal to
detect rotation, the changing orientation of the magnetometer in the magnetic field is
used.

.. data:: NDOF_FMC_OFF_MODE

This fusion mode is same as NDOF mode, but with the Fast Magnetometer Calibration turned
‘OFF’.

.. data:: NDOF_MODE

This is a fusion mode with 9 degrees of freedom where the fused absolute orientation data
is calculated from accelerometer, gyroscope and the magnetometer.

"""
return self._read_register(_MODE_REGISTER)

Expand Down
12 changes: 4 additions & 8 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,12 @@
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
"sphinx.ext.autodoc",
"sphinx.ext.intersphinx",
"sphinx.ext.viewcode",
]
extensions = ["sphinx.ext.autodoc", "sphinx.ext.intersphinx", "sphinx.ext.viewcode"]

# Uncomment the below if you use native CircuitPython modules such as
# digitalio, micropython and busio. List the modules you use. Without it, the
# autodoc module docs will fail to generate with a warning.
# autodoc_mock_imports = ["adafruit_bus_device", "micropython", "adafruit_register"]
autodoc_mock_imports = ["adafruit_bus_device", "micropython", "adafruit_register"]

intersphinx_mapping = {
"python": ("https://docs.python.org/3.4", None),
Expand Down Expand Up @@ -144,7 +140,7 @@
"Adafruit BNO055 Library Documentation",
"Radomir Dopieralski",
"manual",
),
)
]

# -- Options for manual page output ---------------------------------------
Expand Down Expand Up @@ -175,5 +171,5 @@
"AdafruitBNO055Library",
"One line description of project.",
"Miscellaneous",
),
)
]