9 Replies Latest reply on Sep 13, 2016 11:33 AM by Intel Corporation

    IO18/IO19 for I2C Connectivity ERROR

    ROBBIOT

      Hi,

       

      I am configuring Intel Edison with Arduino Breakout Board to establish I2C connection with GY-87 (GY 87 10DOF MPU6050 HMC5883L BMP180 Sensor Module New | eBay ) through a shift level (5pcs IIC I2C Logic Level Converter Bi Directional Module 5V to 3 3V for Arduino | eBay ).

       

      GY-87, breakout board with the following chips:

      1. MPU6050 - Accelerometer + Gyroscope
      2. BMP180 - Barometer + Thermometer
      3. HMC5883L - Compass

      I used the instructions of Hardware Guide of Intel Edison Kit for Arduino on 11.6, page 29 to enable the communication.

       

      The electrical connection tried was:

       

      1. Pins A4 and A5.

      2. Digital pins SCL and SDA.

       

      After configuring I tried to scan the I2C using i2cdetect command which I receive the following results:

       

      root@test:/# i2cdetect -y -r 1

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

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

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

      20: UU UU UU UU -- -- -- -- -- -- -- -- -- -- -- --

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

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

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

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

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

      root@test:/# i2cdetect -y -r 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: -- -- -- -- -- -- -- --

       

      What should be the next steps to debug this?

        • 1. Re: IO18/IO19 for I2C Connectivity ERROR
          Intel Corporation
          This message was posted on behalf of Intel Corporation

          Hi Robbiot,

           

          Thanks for the information provided and we’ll try to help.

           

          According to the instructions in the Hardware Guide of Intel® Edison kit for Arduino (page 29) that you followed, could you please check if the changes are made when you ran these commands? (You can use the cat command)

           

          # echo low > /sys/class/gpio/gpio214/direction
          # echo high > /sys/class/gpio/gpio204/direction
          # echo high > /sys/class/gpio/gpio205/direction
          # echo in > /sys/class/gpio/gpio14/direction
          # echo in > /sys/class/gpio/gpio165/direction
          # echo low > /sys/class/gpio/gpio236/direction
          # echo low > /sys/class/gpio/gpio237/direction
          # echo in > /sys/class/gpio/gpio212/direction
          # echo in > /sys/class/gpio/gpio213/direction
          # echo mode1 > /sys/kernel/debug/gpio_debug/gpio28/current_pinmux
          # echo mode1 > /sys/kernel/debug/gpio_debug/gpio27/current_pinmux
          # echo high > /sys/class/gpio/gpio214/direction
          

           

          Please let us know if these changes were made. We’ll be waiting.

           

          Regards,

           

          Yermi

          • 2. Re: IO18/IO19 for I2C Connectivity ERROR
            ROBBIOT

            Hello,

             

            Thanks for your support.

             

            Follow the commands and its results, plus i2cdetect command that I used to check if detects:

             

            root@RobbiotMasRob3:~# echo low > /sys/class/gpio/gpio214/direction

             

            root@RobbiotMasRob3:~# echo high > /sys/class/gpio/gpio204/direction

             

            root@RobbiotMasRob3:~# echo high > /sys/class/gpio/gpio205/direction

             

            root@RobbiotMasRob3:~# echo in > /sys/class/gpio/gpio14/direction

            -sh: /sys/class/gpio/gpio14/direction: No such file or directory

             

            root@RobbiotMasRob3:~# echo in > /sys/class/gpio/gpio165/direction

            -sh: /sys/class/gpio/gpio165/direction: No such file or directory

             

            root@RobbiotMasRob3:~# echo low > /sys/class/gpio/gpio236/direction

            -sh: /sys/class/gpio/gpio236/direction: No such file or directory

             

            root@RobbiotMasRob3:~# echo low > /sys/class/gpio/gpio237/direction

            -sh: /sys/class/gpio/gpio237/direction: No such file or directory

             

            root@RobbiotMasRob3:~# echo in > /sys/class/gpio/gpio212/direction

             

            root@RobbiotMasRob3:~# echo in > /sys/class/gpio/gpio213/direction

             

            root@RobbiotMasRob3:~# echo mode1 > /sys/kernel/debug/gpio_debug/gpio28/current_ pinmux

             

            root@RobbiotMasRob3:~# echo mode1 > /sys/kernel/debug/gpio_debug/gpio27/current_ pinmux

             

            root@RobbiotMasRob3:~# echo high > /sys/class/gpio/gpio214/direction

             

            root@RobbiotMasRob3:~# i2cdetect -y -r 1

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

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

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

            20: UU UU UU UU -- -- -- -- -- -- -- -- -- -- -- --

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

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

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

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

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

            • 3. Re: IO18/IO19 for I2C Connectivity ERROR
              ROBBIOT

              Hello,

               

              Just to add few more info:

              1. I tested the sensors in an I2C scanner and are working fine.
              2. I tested sensors with additional pull up resistors o 10k ohms. Failure to be detected.
              • 4. Re: IO18/IO19 for I2C Connectivity ERROR
                Intel Corporation
                This message was posted on behalf of Intel Corporation

                Hi Robbiot,

                 

                I apologized for not being clearly enough in my previous post, what I tried to say was:

                 

                1. Run the instructions in the Hardware Guide of Intel® Edison kit for Arduino exactly as they are (page 29).
                2. Use the command cat in the instruction that I posted. See picture below.

                            
                                        Note: This applies only to check the changes applied.

                 

                On the other hand, in the Intel Edison Arduino board, we need to use the I2C_6_ for connecting devices to I2C communication (A4/A5 – analog headers and SDA/SCL – digital header), the I2C_1_ is used for the Edison Arduino board internally and it isn’t available, so in order to detect your device please use this i2cdetect -y -r 6.

                Additionally, we would like to suggest this thread https://communities.intel.com/message/276726#276726 where they discussed about the Edison I2C communication and shifter uses.

                 

                Hope this information helps, please let me know if you have any other questions.

                 

                Regards,

                 

                -Yermi

                • 5. Re: IO18/IO19 for I2C Connectivity ERROR
                  ROBBIOT

                  Hi,

                   

                  I don't think is configuration. I change the sensor GY-87 by GY-291 (ADXL345) and works fine:

                   

                  ARDUINO BREAKOUT:

                   

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

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

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

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

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

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

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

                  50: -- -- -- 53 -- -- -- -- -- -- -- -- -- -- -- --

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

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

                   

                  ARDUINO BREAKOUT MINI

                   

                  root@RobbiotMasRob2:~# i2cdetect -y -r 1

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

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

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

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

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

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

                  50: -- -- -- 53 -- -- -- -- -- -- -- -- -- -- -- --

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

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

                   

                  As I tested the GY-87 module in an I2C scan and works fine the question is where is the problem?

                  How can I identify where is the problem?

                   

                  Thanks again,

                  • 6. Re: IO18/IO19 for I2C Connectivity ERROR
                    Intel Corporation
                    This message was posted on behalf of Intel Corporation

                    Hi Robbiot,

                    The GY-87 can work at 5V (VCC_IN pin) and at 3.3V, so I would like you to try this (without using a level shifter):

                    1. Set up the jumper J8 at the default position (1-2)
                    2. Set up the jumper J9 at the position 5V (1-2) and then connect the Edison 5V pin to your VCC_IN pin in the GY-87. Review if it is detected
                    3. Set up the jumper J9 at the position 3.3V (2-3) and then connect the Edison 3.3V pin to your 3.3V pin in the GY-87. Review if it is detected

                     

                    Position J8 and J9 (see picture)

                    Hope this helps. Let me know if you can detect your GY-87.

                     

                    Regards,
                    -Yermi

                    • 7. Re: IO18/IO19 for I2C Connectivity ERROR
                      Intel Corporation
                      This message was posted on behalf of Intel Corporation

                      Hi Robibiot,

                      I would like to know if you’ve been able to try my suggestions. Please let me know if you have any questions.

                      Regards,
                      -Yermi
                       

                      • 8. Re: IO18/IO19 for I2C Connectivity ERROR
                        ROBBIOT

                        Thanks Yermi,

                        I will try late this week.

                        thanks,

                        • 9. Re: IO18/IO19 for I2C Connectivity ERROR
                          Intel Corporation
                          This message was posted on behalf of Intel Corporation

                          Hi,

                          OK, please let me know your results or if you need help.

                          Regards,
                          -Yermi