libctru icon indicating copy to clipboard operation
libctru copied to clipboard

Gyroscope / Accelerometer return wrong values

Open MrHuu opened this issue 4 years ago • 0 comments

I noticed some strange behavior while trying to make use of the new3DS's gyroscope and accelerometer. After reading both gyroscope and accelerometer data, i noticed the returned accelerometer data is actually the rotation data and vice versa.

  • hidAccelRead() returns a accelVector * (x,y,z) struct containing values from the gyroscope (rotation).
  • hidGyroRead() returns a angularRate * (x,z,y) struct containing the accelerometer values (acceleration).

On an additional note: I also noticed, before specifically enabling the sensors with:

HIDUSER_EnableAccelerometer();
HIDUSER_EnableGyroscope();

The gyroscope(accelerometer?) data already is accessible and updated using hidGyroRead(), while the accelerometer hidAccelRead() data is not.

  • The gyroscope(accelerometer?) is enabled by default until it's disabled with:
HIDUSER_DisableGyroscope();

Wouldn't it be desired for the gyroscope(accelerometer?) to be disabled by default?

*Now i'm confused myself; The accelerometer data is available, before enabling, returned from hidGyroRead().

MrHuu avatar Jan 25 '22 17:01 MrHuu