All of lore.kernel.org
 help / color / mirror / Atom feed
From: <andrea.merello@iit.it>
To: <jic23@kernel.org>, <mchehab+huawei@kernel.org>,
	<linux-iio@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<devicetree@vger.kernel.org>
Cc: <lars@metafoo.de>, <robh+dt@kernel.org>,
	<andy.shevchenko@gmail.com>, <matt.ranostay@konsulko.com>,
	<ardeleanalex@gmail.com>, <jacopo@jmondi.org>,
	<andrea.merello@gmail.com>, <bagasdotme@gmail.com>,
	Andrea Merello <andrea.merello@iit.it>
Subject: [v7 14/14] docs: iio: add documentation for BNO055 driver
Date: Wed, 7 Sep 2022 15:22:05 +0200	[thread overview]
Message-ID: <20220907132205.28021-15-andrea.merello@iit.it> (raw)
In-Reply-To: <20220907132205.28021-1-andrea.merello@iit.it>

From: Andrea Merello <andrea.merello@iit.it>

The bno055 driver is rather complex and have some oddities and not-obvious
things that worth to document (e.g. calibration files).

This patch also contains this [0] fix squashed in.

[0] https://lore.kernel.org/lkml/20220704034041.15448-1-bagasdotme@gmail.com/

Signed-off-by: Andrea Merello <andrea.merello@iit.it>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
---
 Documentation/iio/bno055.rst | 51 ++++++++++++++++++++++++++++++++++++
 Documentation/iio/index.rst  |  2 ++
 2 files changed, 53 insertions(+)
 create mode 100644 Documentation/iio/bno055.rst

diff --git a/Documentation/iio/bno055.rst b/Documentation/iio/bno055.rst
new file mode 100644
index 000000000000..9a489a79d8f5
--- /dev/null
+++ b/Documentation/iio/bno055.rst
@@ -0,0 +1,51 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+==============================
+BNO055 driver
+==============================
+
+1. Overview
+===========
+
+This driver supports Bosch BNO055 IMUs (on both serial and I2C busses).
+
+Accelerometer, magnetometer and gyroscope measures are always provided.
+When "fusion_enable" sysfs attribute is set to 1, orientation (both Euler
+angles and quaternion), linear velocity and gravity vector are also
+provided, but some sensor settings (e.g. low pass filtering and range)
+became locked (the IMU firmware controls them).
+
+This driver supports also IIO buffers.
+
+2. Calibration
+==============
+
+The IMU continuously performs an autocalibration procedure if (and only if)
+operating in fusion mode. The magnetometer autocalibration can however be
+disabled writing 0 in the sysfs in_magn_calibration_fast_enable attribute.
+
+The driver provides access to autocalibration flags (i.e. you can known if
+the IMU has successfully autocalibrated) and to the calibration data blob.
+
+The user can save this blob in a firmware file (i.e. in /lib/firmware) that
+the driver looks for at probe time. If found, then the IMU is initialized
+with this calibration data. This saves the user from performing the
+calibration procedure every time (which consist of moving the IMU in
+various way).
+
+The driver looks for calibration data file using two different names: first
+a file whose name is suffixed with the IMU unique ID (exposed in sysfs as
+serial_number) is searched for; this is useful when there is more than one
+IMU instance. If this file is not found, then a "generic" calibration file
+is searched for (which can be used when only one IMU is present, without
+struggling with fancy names, that change on each device).
+
+Valid calibration file names would be e.g.
+ bno055-caldata-0e7c26a33541515120204a35342b04ff.dat
+ bno055-caldata.dat
+
+In non-fusion mode the IIO 'offset' attributes provide access to the
+offsets from calibration data (if any), so that the user can apply them to
+the accel, angvel and magn IIO attributes. In fusion mode they are not
+needed (the IMU firmware internally applies those corrections) and they
+read as zero.
diff --git a/Documentation/iio/index.rst b/Documentation/iio/index.rst
index 58b7a4ebac51..1b7292c58cd0 100644
--- a/Documentation/iio/index.rst
+++ b/Documentation/iio/index.rst
@@ -10,3 +10,5 @@ Industrial I/O
    iio_configfs
 
    ep93xx_adc
+
+   bno055
-- 
2.17.1


  parent reply	other threads:[~2022-09-07 13:39 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-07 13:21 [v7 00/14] Add support for Bosch BNO055 IMU andrea.merello
2022-09-07 13:21 ` [v7 01/14] iio: add modifiers for linear acceleration andrea.merello
2022-09-07 13:21 ` [v7 02/14] iio: document linear acceleration modifiers andrea.merello
2022-09-07 13:21 ` [v7 03/14] iio: event_monitor: add " andrea.merello
2022-09-07 13:21 ` [v7 04/14] iio: add modifers for pitch, yaw, roll andrea.merello
2022-09-07 13:21 ` [v7 05/14] iio: document pitch, yaw, roll modifiers andrea.merello
2022-09-07 13:21 ` [v7 06/14] iio: event_monitor: add pitch, yaw and " andrea.merello
2022-09-07 13:21 ` [v7 07/14] iio: add support for binary attributes andrea.merello
2022-09-07 13:21 ` [v7 08/14] iio: imu: add Bosch Sensortec BNO055 core driver andrea.merello
2022-09-18 17:27   ` Jonathan Cameron
2022-09-23  7:25     ` Andrea Merello
2022-09-07 13:22 ` [v7 09/14] iio: document bno055 private sysfs attributes andrea.merello
2022-09-07 13:22 ` [v7 10/14] iio: document "serialnumber" sysfs attribute andrea.merello
2022-09-07 13:22 ` [v7 11/14] dt-bindings: iio/imu: Add Bosch BNO055 andrea.merello
2022-09-07 13:22 ` [v7 12/14] iio: imu: add BNO055 serdev driver andrea.merello
2022-09-07 13:22 ` [v7 13/14] iio: imu: add BNO055 I2C driver andrea.merello
2022-09-07 14:09   ` Andy Shevchenko
2022-09-08  6:42     ` Andrea Merello
2022-09-18 17:26       ` Jonathan Cameron
2022-09-07 13:22 ` andrea.merello [this message]
2022-09-07 14:12 ` [v7 00/14] Add support for Bosch BNO055 IMU Andy Shevchenko
2022-09-18 17:30   ` Jonathan Cameron
2022-09-08  3:47 ` Bagas Sanjaya
2022-09-08  6:51   ` Andrea Merello
2022-09-08  7:32     ` Bagas Sanjaya
2022-09-08 12:40       ` Jonathan Cameron

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220907132205.28021-15-andrea.merello@iit.it \
    --to=andrea.merello@iit.it \
    --cc=andrea.merello@gmail.com \
    --cc=andy.shevchenko@gmail.com \
    --cc=ardeleanalex@gmail.com \
    --cc=bagasdotme@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=jacopo@jmondi.org \
    --cc=jic23@kernel.org \
    --cc=lars@metafoo.de \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matt.ranostay@konsulko.com \
    --cc=mchehab+huawei@kernel.org \
    --cc=robh+dt@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.