I am working with an LSM9DS1 IMU, and now specifically trying to program a wakeup feature into the system. My idea is to set the accelerometer at the lowest possible read rate, then when the accelerometer value exceeds a predefined level, to have the system wake up.
When programming the sensor, there is a register called INT_GEN_CFG_XL that has a "6-Direction detection for interrupt." I was wondering what this means. Does this perhaps calculate the magnitude of acceleration, and see if that goes above a predefined value? I can see the other interrupt generators are for 1-direction of each of the three axes, but I can't interrupt this one.
Here is a link to the device datasheet
1 Answer 1
The INT_GEN_CFG_XL 6-Direction detection interrupt apparently is aimed at detecting change of direction of travel, rather than an axis-combined acceleration level.
See the LSM303 discussion at Polulu.com. That page includes a link to App Note CD00290365.pdf for the LIS3DH. Here is what that app note says, on page 27:
There are two possible configurations for the 6D direction function:
• 6D movement recognition: In this configuration the interrupt is generated when the device moves from a direction (known or unknown) to a different known direction. ...
• 6D position recognition: In this configuration the interrupt is generated when the device is stable in a known direction. ...
With the LSM9DS1 that you are using, you can leave OR enabled, set separate X,Y,Z threshholds in INT_GEN_THS_X_XL, INT_GEN_THS_Y_XL, INT_GEN_THS_Z_XL, and set the "Enable interrupt generation on accelerometer's X axis high event" (sim. for Y and Z) bits in the INT_GEN_CFG_XL register.
Explore related questions
See similar questions with these tags.