devkitPro/libctru

Gyroscope / Accelerometer return wrong values

MrHuu opened this issue · 0 comments

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