cancel
Showing results for 
Search instead for 
Did you mean: 

Doubt 6D orientation mode(LIS2DW12)

MIR.1
Associate II

Hi,

I am using an accelerometer (LIS2DW12) from STMicroelectronics. An interrupt is generated only for (50,60,70,80) degrees only while setting on 6D orientation mode. I would expect to get an interrupt for even small degrees of tilt starting from 10 degrees as a part of my project. 

Can you please inform me whether it is realizable using LIS2DW12.?

Please let me know if there are any other option to get the interrupt for small degrees in any of the modes

1 ACCEPTED SOLUTION

Accepted Solutions

Hi Msn @MIR.1​ ,

Maybe it is the right direction...

Can we however close this thread and open a new one?

To close this post, please click on Select as Best at the bottom of this post. This will help other users with the same issue to find the answer faster.

Thanks,

-Eleon

View solution in original post

5 REPLIES 5
Eleon BORLINI
ST Employee

Hi @MIR.1​ ,

Yes, those are the selectable threshold degrees. For a smaller tilt angle detection with the LIS2DW12 (or, in other words, a more resolute selection of the threshold), you might use the activity recognition feature and the related interrupt (or the stationary/motion detection that doesn't change the configuration before and after the interrupt event, as described in the application note AN5038, p.31). The unsigned threshold value is defined using the WK_THS[5:0] bits in the WAKE_UP_THS register; the value of 1 LSB of these 6 bits depends on the selected accelerometer full scale: 1 LSB = 1 / 64 of FS. The threshold is applied to both positive and negative (high-pass filtered) data. The interrupt should be available for the 3 axis in the WAKE_UP_SRC (38h) register (X_WU, Y_WU and Z_WU bits).

For completeness, I suggest you check your code with the one available on Github for the 6D recognition (lis2dw12_orientation.c) and to see the lis2dw12_activity.c for the activity/inactivity recognition.

Please let me know if this could help you in implementing a finer tilt detection.

-Eleon

MIR.1
Associate II

Hi Eleon,

Thank you very much for your support.

I have already attempted the activity/inactivity recognition. Interrupt event occurred during very sharp/impulsive movements or shocks only. Actually my requirement is to get an interrupt event for 10 degrees of tilt. The expected time to reach the threshold is about 20 secs or higher. I got the requirement in 6D orientation mode but the minimum threshold we can choose is only 50 degree. I want to set the threshold value from 10 degree.

Please suggest a solution

Msn

Hi Msn @MIR.1​ ,

you can try to increase the duration of the event to be detected by configuring the WAKE_UP_DUR (35h) bits, for example the WAKE_DUR[1:0] for short events or SLEEP_ DUR[3:0]  for long events.

Did you already try with it?

-Eleon

Hi Eleon,

Thank you very much.

I have increased the sleep durartion(sleep_dur) about 38 sec.

I have set the offset weight to 15.6 mg/LSb.

Instead of using HP filter, I have used the offset output method.

Now I can get interrupt event on small degrees of tilt.😊

But still one more serious issue is the interrupt event is unnecessarily occurring during physical shocks/knocks which is not expected.

I have read all the interrupt sources(all_int_src, sixd_src, wake_up_src, tap_src, status_dup)

I have given a physical shock/knock but no changes in any of the above mentioned registers.

But still interrupt is triggering for shocks /knocks.

Can you please suggest a solution for this too?

Msn

Hi Msn @MIR.1​ ,

Maybe it is the right direction...

Can we however close this thread and open a new one?

To close this post, please click on Select as Best at the bottom of this post. This will help other users with the same issue to find the answer faster.

Thanks,

-Eleon