I am currently using the Nordic-Thingy-91 to test the nRF9160 and other components on the board.
Now I am trying to implement a simple motion detection with the low power accelerometer ADXL362.
The goal is a simple state information, if the board is moving or not.
The strange thing is, it works in all cases, except when the board lies flat (= -1g on Z axis).
In all other maximal positions (1g on X, -1g on X, 1g on Y, -1g on Y, 1g on Z) it detects the lack of motion correctly.
In the case of -1g on Z it does not detect inactivity.
I have implemented the motion detection according to the ADXL362 datasheet. Here is my configuration:
- Range: +-2g
- Absolute activity/inactivity detection in Loop-Mode
- Active threshold set to 1200
- Inactive threshold set to 1100
- Inactive time set to 24 (~4sec)
- ADXL362 operating in Wakeup mode
- Mapped AWAKE bit to INT1, which I monitor with the controller
I have read back all the registers to make sure the values are written correctly and they are.
I have also tried "Referenced" activity/inactivity detection as it is described in the datasheet (Application examples, page 36),
but I could not make it work. It just didn't detect inactivity.
As I said before, it works nicely in all cases, except when Z = -1g, then it doesn't detect inactivity.
Has anyone encountered this problem before?
Or has anyone implemented a stable and working motion detection and could share their configuration?
ADXL362 Silicon revision id: 3