From: Andrey Skvortsov <andrej.skvortzov@gmail.com>
To: Dragan Simic <dsimic@manjaro.org>
Cc: "Chen-Yu Tsai" <wens@csie.org>,
"Jernej Skrabec" <jernej.skrabec@gmail.com>,
"Samuel Holland" <samuel@sholland.org>,
linux-arm-kernel@lists.infradead.org,
linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Ondřej Jirman" <megi@xff.cz>
Subject: Re: [PATCH] arm64: dts: sun50i-a64-pinephone: Add mount matrix for accelerometer
Date: Wed, 18 Sep 2024 16:41:49 +0300 [thread overview]
Message-ID: <ZurYndjVz7r0U6dz@skv.local> (raw)
In-Reply-To: <8df5fc79a3e899738aa944a290774c72@manjaro.org>
On 24-09-18 13:27, Dragan Simic wrote:
> > >
> > > After going through the InvenSense MPU-6050 datasheet, [1] the
> > > MPU-6050 evaluation board user guide, the PinePhone schematic,
> > > the PinePhone mainboard component placement, [2] and the kernel
> > > bindings documentation for mount-matrix, [3] I can conslude that
> > > only the direction of the accelerometer's y-axis is inverted,
> > > while the direction of the z-axis remain unchanged, according
> > > to the right-hand rule.
> >
> > yes, it looks so on the first glance, but in MPU-6050 datasheet there
> > is also following information:
> >
> > 7.8 Three-Axis MEMS Accelerometer with 16-bit ADCs and Signal
> > Conditioning
> >
> > When the device is placed on a flat surface, it will measure
> > 0g on the X- and Y-axes and +1g on the Z-axis.
I'll try to explain how I read sensor's documentation and what bothers me.
Picture 1.
up
^ Z
!
! X=Y=0
++++++++++
! !
+--------+
!
!
v
gravity
down
Screen (drawn as ++++++++++) is looking upwards. Device is on the flat
surface. Sensor returns +1g, although gravity points into *apposite* direction.
Experiment:
When I put PinePhone like in the sensor's documentation with the screen
upwards (Picture 1), gravity and Z axis point into different
directions, I read positive values from the sensor. So sensor works as
it's described in the documentation.
> >
> > So sensors reports positive acceleration values for Z-axis, when
> > the gravity points to Z-minus. I see the same on device. positive
> > values are returned, when screen and IC point upwards (not the center
> > for gravity).
> > In device tree mount-matrix documentation [3] there is
> >
> > users would likely expect a value of 9.81 m/s^2 upwards along the (z)
> > axis, i.e. out of the screen when the device is held with its screen
> > flat on the planets surface.
> >
how I read kernel documentation.
Picture 2.
up
+--------+
! !
++++++++++
!
!
v
gravity, Z
down
Screen (drawn as ++++++++++) is looking downwards ("its screen flat on
the planets surface"). Gravity and Z axis point into the same
direction and it's expected to read positive value.
Notice, that Z-axis on Picture 1 and Picture 2 point into different
directions to get positive values.
Experiment:
Now, I go to the real device and check how the sensor actually works.
When I put PinePhone like is described in the kernel documentation
with the screen downwards, "screen flat on the planets surface"
(Picture 2), gravity and Z axis point into the same direction, but I
read negative values from the sensor. So the sensor works not as
expected by kernel documentation, when I understand documentation
correctly. Z-axis inversion comes from this.
> > According to that, it looks like Z-axis here has to be inverted.
>
> Yes, reporting +1 g on the z-axis with the device remaining stationary
> on a level surface is the normal behavior, and the returned positive
> value actually goes along with the quoted description from the kernel
> documentation. The z-axis of the MPU-6050 goes upward and out of the
> screen, the way the MPU-6050 is placed inside the PinePhone.
> > It applies to other axes as well. And because of that I came from
> > (only Y-axis is inverted)
> >
> > x' = -y
> > y' = x
> > z' = z
> >
> > to inverted solution (Y-axis is kept, but X and Z are inverted).
> >
> > x' = y
> > y' = -x
> > z' = -z
> >
> > probably should put this information into commit description.
>
> Wouldn't inverting the direction of the z-axis go against the
> above-quoted description from the kernel documentation?
See my comments above.
> > > [1] https://rimgo.reallyaweso.me/vrBXQPq.png
> > > [2] https://rimgo.reallyaweso.me/uTmT1pr.png
> > > [3] https://www.kernel.org/doc/Documentation/devicetree/bindings/iio/mount-matrix.txt
--
Best regards,
Andrey Skvortsov
next prev parent reply other threads:[~2024-09-18 13:41 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-16 20:45 [PATCH] arm64: dts: sun50i-a64-pinephone: Add mount matrix for accelerometer Andrey Skvortsov
2024-09-16 21:08 ` Dragan Simic
2024-09-17 17:56 ` Andrey Skvortsov
2024-09-18 9:27 ` Dragan Simic
2024-09-18 10:02 ` Dragan Simic
2024-09-18 11:00 ` Andrey Skvortsov
2024-09-18 11:22 ` Dragan Simic
2024-09-18 11:27 ` Dragan Simic
2024-09-18 13:41 ` Andrey Skvortsov [this message]
2024-09-18 15:58 ` Andrey Skvortsov
2024-09-19 18:34 ` Dragan Simic
2024-09-21 7:44 ` Dragan Simic
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=ZurYndjVz7r0U6dz@skv.local \
--to=andrej.skvortzov@gmail.com \
--cc=conor+dt@kernel.org \
--cc=dsimic@manjaro.org \
--cc=jernej.skrabec@gmail.com \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sunxi@lists.linux.dev \
--cc=megi@xff.cz \
--cc=robh@kernel.org \
--cc=samuel@sholland.org \
--cc=wens@csie.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.