6 Replies Latest reply on Oct 6, 2015 8:43 AM by Intel_Alvarado

    Intel Edison with Arduino Breakout can't detect Grove I2C Motor Driver correctly

    bneo99

      I am trying to use my Edison to control 2 motors using the Grove I2C motor driver (http://www.seeedstudio.com/wiki/Grove_-_I2C_Motor_Driver_V1.3) by Seeedstudio but I have problems detecting the motor driver correctly. I have the motor driver connected to I2C bus (pin A4 and A5) and somehow when using i2cdetect I am not able to see the expected address(0x0f in this case)

       

      This is my result when running i2cdetect -y -r 6.

      root@edison:~# i2cdetect -r -y 6

           0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f

      00:          -- -- -- -- -- -- -- -- -- -- -- -- --

      10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

      20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

      30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

      40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

      50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

      60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

      70: -- -- -- -- -- -- -- --       

      To make sure it wasn't a problem with the motor driver I added another I2c device into the bus and i get the same result, nothing. I tried disconnecting the motor driver and leaving the other device connected and i2cdetect detects that device correctly. (the other device's address was 0x22)

      root@edison:~# i2cdetect -r -y 6

           0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f

      00:          -- -- -- -- -- -- -- -- -- -- -- -- --

      10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

      20: -- -- 22 -- -- -- -- -- -- -- -- -- -- -- -- --

      30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

      40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

      50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

      60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

      70: -- -- -- -- -- -- -- --   

      But I've observed a weird behaviour during my random testing to try to get it to work.

      When I run i2cdetect and press the reset button on the motor driver, it was detected correctly and both addresses was detected. (i2cdetect would slowly detect the addresses but when the motor driver was reset it finishes instantly)

      root@edison:~# i2cdetect -r -y 6

           0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f

      00:          -- -- -- -- -- -- -- -- -- -- -- -- 0f

      10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

      20: -- -- 22 -- -- -- -- -- -- -- -- -- -- -- -- --

      30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

      40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

      50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

      60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

      70: -- -- -- -- -- -- -- --     

      So I was wondering what's wrong with the motor driver... Is there a way to get the motor driver to work correctly with the Edison? Thanks in advance.