Two MinIMU-9 v2 with LPCxpresso, or Arduino Uno/Mega

i2cimulpcxpresso

I am working on a project that interfaces two IMU sensors to one microprocessor (NXP LPCxpresso). The purpose is to read both of gyro and accelero at two different place on the bodies. I have foolishly rushed to buy this product:
http://www.pololu.com/catalog/product/1268

The sad thing about it is that "The accelerometer’s slave address is fixed to 0011001b", so I cant use two different I2C addresses for two IMUs. (but it is possible in version 1 of this sensor!).

Is there anyways I can overcome this dilemma? I am also thinking about switching to MPU-6050, but sadly, I cant find a library for MPU-6050 for LPCxpresso.

Could you please giving me some suggestions?

Best Answer

The least significant bit of the slave address is set by the SA0 pin. The last bit of the address reflects this bit. In the schematic you can see that this pin is pulled up via 4.7k to VCC. You can ground this pin to change the last bit of the address.

Look at page 23 of the L3GD20 datasheet for information on this. So in your case you will need to depopulate R6 and connect the pin to ground.

This doesn't solve the issue completely since LSM303 doesn't seem to have the same capability. The easiest way here is to connect it to a separate I2C bus if you have another one available.

An interesting option is that there are two transistors Q1 and Q2 on the board. You could disconnnect them from VCC by cutting the traces and routing to a GPIO that will select the IMU you want to talk to.