Jump to content
I2Cdevlib Forums


  • Content Count

  • Joined

  • Last visited

Posts posted by Kryzzalid

  1. Hi!

    I've got the MPU-9250 working but there seems to be some problem with the accelerometer. When the board is moving and then at rest, the values of the accelerometer don't go back to the "resting values" (ideally it would be (x, y, z) = (0,0,0)). To make this clear I attached the image "accelerometer.png".

    For this image: between 1.5s to 3.2s I move the board, then leave it at rest for about 2 seconds and then I move it again for 1.7s and then I leave it at rest again.

    After each time, the values at rest of the axes X Y Z are different. It is like the registers stop updating when the board doesn't move any more even if the values didn't come back to the origin. Maybe, there is some threshold. The gyroscope doesn't have that problem. At rest, the values come back nicely to the "rest values".

    The module is initialized with the following command:

    	I2CSend(MPU9250_ADDRESS, 2, PWR_MGMT_1, 0x00);  // Clear sleep mode
    	I2CSend(MPU9250_ADDRESS, 2, PWR_MGMT_1, 0x01); // Clock Source
    	I2CSend(MPU9250_ADDRESS, 2, CONFIG, 0x06); // Gyroscope Filter BW = 5Hz, delay = 33,48ms, Fs = 1kHz
    	I2CSend(MPU9250_ADDRESS, 2, PWR_MGMT_2, 0x00); // Enable Accelerometer and gyroscope
    	I2CSend(MPU9250_ADDRESS, 2, GYRO_CONFIG, 0x00); // +-250dps
    	I2CSend(MPU9250_ADDRESS, 2, ACCEL_CONFIG, 0x00);// +-2G
    	I2CSend(MPU9250_ADDRESS, 2, ACCEL_CONFIG_2, 0x05); // Accelerometer Filter BW = 10Hz, delay = 35,70ms, Fs = 1kHz
    	I2CSend(MPU9250_ADDRESS, 2, INT_PIN_CFG, 0x02); //  Bypass for the magnetometer enable
    	I2CSend(MPU9250_ADDRESS, 2, I2C_MST_CTRL, 0x00); // I2C speed at 358 kHz
    	I2CSend(MAG_ADDRESS, 2, MAG_CNTL_1, 0x00);// Power down magnetometer
    	I2CSend(MAG_ADDRESS, 2, MAG_CNTL_1, 0x16); // sampling rate 100Hz and word is 16-bit

    I2CSend() writes values in the specified register.

    I thought first that it could be tied to the Wake on Motion thing. But even if I set it to 0x00, it doesn't change anything. Basically, I would like to have the values read continuously without any sleep or standby mode.

    Does anyone has an idea of what could be wrong? Thank you for your time!



  • Create New...