user16549: 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

user3917: 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.

16549: <p>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.</p>

<p>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.</p>

<p>Here is a link to the <a href="http://www.st.com/web/en/resource/technical/document/datasheet/DM00103319.pdf" rel="nofollow">device datasheet</a></p>
 3917: <p>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.</p>

<p>See the <a href="https://forum.pololu.com/t/design-qs-lsm303-sleep-to-wakeup-and-inertial-interrupts/4900/2" rel="nofollow">LSM303</a> discussion at Polulu.com.  That page includes a link to <a href="http://www.st.com/web/en/resource/technical/document/application_note/CD00290365.pdf" rel="nofollow">App Note CD00290365.pdf</a> for the LIS3DH.  Here is what that app note says, on page 27:</p>

<blockquote>
  <p>There are two possible configurations for the 6D direction function:  </p>
  
  <blockquote>
    <p>• 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. ...<br>
    •  6D position recognition: In this configuration the interrupt is generated when the device is stable in a known direction. ...</p>
  </blockquote>
</blockquote>

<p>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.</p>
