Skip to main content
Associate III
May 30, 2024
Solved

LIS2DH12 acceleration data not stable

  • May 30, 2024
  • 1 reply
  • 1041 views

I am using the STM driver to control the LIS2DH12TR accelerometer.

The freeRTOS sensor task is as following (checks on return values and variables definitions are removed to simplify the code comprehension):

 

void MEMS_task(void)
{
 lis2dh12_self_test(&dev_ctx);

 result = lis2dh12_operating_mode_set(&dev_ctx, LIS2DH12_HR_12bit);
 result = lis2dh12_data_rate_set(&dev_ctx, LIS2DH12_ODR_100Hz);
 result = lis2dh12_fifo_mode_set(&dev_ctx, LIS2DH12_BYPASS_MODE);
 result = lis2dh12_block_data_update_set(&dev_ctx, PROPERTY_ENABLE);
 result = lis2dh12_temperature_meas_set(&dev_ctx, LIS2DH12_TEMP_ENABLE);

 for (;;)
 {
 result = lis2dh12_xl_data_ready_get(&dev_ctx, &acceleration_data_available);
 if (acceleration_data_available != 0)
 {
 /* Read accelerometer data */
 memset(data_raw_acceleration, 0x00, sizeof(data_raw_acceleration));
 lis2dh12_acceleration_raw_get(&dev_ctx, data_raw_acceleration);
 acceleration_mg[0] = lis2dh12_from_fs2_hr_to_mg(data_raw_acceleration[0]);
 acceleration_mg[1] = lis2dh12_from_fs2_hr_to_mg(data_raw_acceleration[1]);
 acceleration_mg[2] = lis2dh12_from_fs2_hr_to_mg(data_raw_acceleration[2]);
 }
 }
}​

 

 

If I put my board on a table I would expect to read zero on X ands Y axes and 1g on Z axe, but instead read values that flickers around the expected ones.
Here a few samples:

 

X: 0
Y: -22
Z: 1016

X: -2
Y: -20
Z: 1024

X: -1
Y: -21
Z: 1017

X: 4
Y: -24
Z: 1019

 

Is this normal?
How do I define a position as stable, if acceleration values are so variable?
Best answer by Federica Bossi

Hi @Manuel Ferrero ,

Yes, it is normal. You have to consider the impact of noise.

In addition, test them in controlled environment to minimize ambient noise as well.

1 reply

Federica Bossi
Federica BossiBest answer
Technical Moderator
June 3, 2024

Hi @Manuel Ferrero ,

Yes, it is normal. You have to consider the impact of noise.

In addition, test them in controlled environment to minimize ambient noise as well.

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.