I am using a Pololu AltIMU-10 v4 on BeagleBone Black. Recently, I am unable to read or write the registers of AltIMU-10 v4. I tried to use i2cdump to read the register. The output of accelerometer and magnetometer is not what should be getting.
For accelerometer and magnetometer, the register 08 to 0D and 28 to 2D are not changing at all.
For barometer, the register 2B and 2C are not changing.
For gyroscope, 28 to 2D are not changing at all.
I can only figure out that the chip is damaged.
Is there any other possibility?
It looks like you are expecting the sensors onboard the IMU to output their data over I2C as soon as power is applied, which is not the case. There are a few things you need to do in order to initialize the sensors. We do not have code for the BeagleBone Black, but you can take a look at what we do inside our LSM303 and L3G Arduino libraries to get a better idea of how to properly read and write to the registers. You should also read the datasheets for the sensors. The Arduino libraries and the datasheets can be found under the “Resources” tab of the AltIMU’s product page.
You are right that my debug process is incorrect. I have found that the problem initially arises due to the my recent firmware update of BeagleBone Black. The library BlackLib v3.0 I used uses /dev/i2c-1 for my Pololu AltIMU-10 v4 (Which I assume that it is I2C2 on board). With older firmware for BeagleBone Black, it will not have any issue. But for the latest firmware (Debian 8.6 2016-11-06 4GB SD LXQT), i2c-2 is the bus that I should really use. After changing the header file, the code is working again.
Thank you for you timely help. I appreciate a lot.