Vibration Detection Using FXOS8700CQ

Showing results for 
Search instead for 
Did you mean: 

Vibration Detection Using FXOS8700CQ

Contributor I


I have observed some strange behavior when using FXOS8700CQ in the hybrid mode running at 400KHz. The Acelorometer signal is noisy (noise mean is around 200>please see figure 1) and transient spikes with high amplitude are observed (please see figure 2 and 3) without causing any movement or Vibrations!

In brief, I would use the Accelorometer sensor to detect the vertical acceleration on a surface, caused by a car passing adjacent to the sensor, which is fixed to the surface. In such case, what would be the best configuration for the accelerometer? What is the reason for these transient spikes?

The configuration I set for the sensor is as follows:

Fxos8700cq_mag_ctrl_reg1_adr = B00011111

Fxos8700cq_mag_ctrl_reg2_adr = B00100000

Fxos8700cq_xyz_data_cfg = B00000000

Fxos8700cq_sys_ctrl_reg3_adr = B00000000

Fxos8700cq_sys_ctrl_reg4_adr = B00000001

Fxos8700cq_sys_ctrl_reg5_adr = B00000001

Fxos8700cq_m_vecm_cfg = B01111110

Fxos8700cq_m_vecm_ths_msb = B10000000

Fxos8700cq_m_vecm_ths_lsb = 70

Fxos8700cq_m_vecm_cnt = 2


Tags (1)
0 Kudos
2 Replies

NXP Employee
NXP Employee


1. As you know, the Output data rates (ODR) when operated in hybrid mode with both sensors active is up to 400 KHz.

Have you tried to use another ODR? I would like to know if the accelerometer signal is noisy even when you change the ODR.

2. Have you performed a calibration procedure for the acceleration module?

In this case, I recommend to perform a simple accelerometer offset calibration according to the AN4069.

You may refer to the FXOS8700CQ - Bare metal example project​ in order to get the offset calibration source code.

Please let me know if this material is useful for you.

If I misunderstood your question, feel free to let me know.  I will be glad to help.

Have a great day.

David Diaz.

Note: If this post answers your question, please click the Correct Answer button. Thank you!

0 Kudos

Contributor I

It turned out that the problem is in converting the 2's complement into integer.

0 Kudos