devkitPro / libctru

Homebrew development library for Nintendo 3DS/Horizon OS user mode (Arm11)

Home Page:https://libctru.devkitpro.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Gyroscope / Accelerometer return wrong values

MrHuu opened this issue · comments

commented

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().