The new MinIMU-9 cannot work

Hi,

I called to ask about the new MinIMU-9 (pololu.com/catalog/product/1265) questions. I cannot make it to work.

I use the platform RF100 and SN171 proto board from Synapse company. See picture: https://docs.google.com/open?id=0B0s1PE6BqBpMT0tZeVFUTnE1Z0k This board is driven by 3v voltage, and GPIO 18 (the 5th pin from the bottom) and GPIO 17 (the 4th pin) are pins dedicated for I2c SCL and SDA lines respectively. I set the MinIMU board as this picture shows. https://docs.google.com/open?id=0B0s1PE6BqBpMMEdvUTNqSl8xVkk The power of MinUMU board is supplied by two extenal AA batteries (3V). I connect the IMU to RF100 as this picture shows. https://docs.google.com/open?id=0B0s1PE6BqBpMcUVQZHJKZHN4MlU . Then I did the following testing:

  1. I set GPIO 17 and GPIO 18 as input pins (which means the IMU control the SCL and SDA), and measure the voltage reading by multimeter. At this time, both of them are around 3.2V. See pictures https://docs.google.com/open?id=0B0s1PE6BqBpMY0ljUlkyMFUyNEE and https://docs.google.com/open?id=0B0s1PE6BqBpMVVJmaTVnT3I0cEU

  2. I set GPIO 17 as input pin (controled by IMU), GPIO 18 as output pin (controled by RF100), and set GPIO as high. The measurements for GPIO 17 and 18 are both around 3.2v. See pictures https://docs.google.com/open?id=0B0s1PE6BqBpMYmp3RVN3a2FFaVU and https://docs.google.com/open?id=0B0s1PE6BqBpMcVl5ajRaaGhZRnM

  3. I set GPIO 17 as input pin (controled by IMU), GPIO 18 as output pin (controled by RF100), and set GPIO as low. The measurements for GPIO 18 is around 0v, while GPIO 17 is around 0.9v. See pictures https://docs.google.com/open?id=0B0s1PE6BqBpMY3JZUnYtbW96LWM and https://docs.google.com/open?id=0B0s1PE6BqBpMTmlWaXJ6bE9tRWs

The SDA and SCL lines should be independent, but in my experiment, they are dependent (when SCL is high, the reading for SDA is also high; while SCL is low, the reading for SDA is also low). Also please notice that SCL and SDA are not

shortage, since when they are both low, their readings are different: one is 0v, while the other is 0.9v.

Since when RF100 sends the address to IMU, RF100 needs to read the ACK from the IMU. And the ACK is only correct when the reading of SDA is 0 while SCL is 1. But through the above experiment, you can see that we can never get the correct

ACK since when SCL is 1, SDA is always 1 in this case. So I think there may be a hardware problem. SDA and SCL should not be dependent, right?

Hello,

I spoke to you on the phone earlier; thanks for posting pictures of your setup. I see a couple issues in your pictures:

First, it does not look like you have a common ground connection between the IMU and your development board. The grounds on the two devices need to be connected for the voltages on the I2C lines to be meaningful. (This is also true for your multimeter measurements, since you are probing a ground on the dev board.)

Second, you are using wires loosely wrapped around the header pins on the IMU, which are not likely to make reliable connections. I recommend making those connections through a breadboard or using appropriate female jumper wires or test clips.

Finally, if your development board makes its logic level voltage accessible (probably on the VCC pin), you should just use that to power the IMU through its VIN pin. This way, you can make sure you do not expose either device to higher voltages than they are designed to handle, and you will not need to deal with the hassle of using a separate battery pack.

Please let me know if fixing these issues solves the problem.

- Kevin

Hi, Kevin,

Thank you for your info. I took your suggestion: power the IMU with the VCC from my mote. And now I can correctly get the ACK from IMU! Thanks! I will continue to work on it!

I’m glad to hear you’re making progress. Please note that the first problem I pointed out (the lack of a common ground) was likely your biggest problem, which you probably corrected in the course of switching the IMU to use power from the mote. Unless you are doing something rather fancy (e.g. using optocouplers to electrically isolate two systems), establishing a common ground is a general requirement for any two devices/systems you want to connect electrically.

- Kevin