7 Replies Latest reply on Aug 21, 2015 2:57 PM by Intel_Jesus

    Problems with Grove OLED SSD1327

    Mach_5

      Hello,

      I am having trouble getting the example code compiling for my SSD1327 OLED. (https://software.intel.com/en-us/iot/hardware/sensors/ssd1327-oled-display)

      I have the display connected to my Arduino Breakout board and I get the error:

      undefined reference to `upm::SSD1327::SSD1327(int, int)'

       

      I am just using the example provided:

       

      /*
       * Author: Yevgeniy Kiveish <yevgeniy.kiveisha@intel.com>
       * Copyright (c) 2014 Intel Corporation.
       *
       * Permission is hereby granted, free of charge, to any person obtaining
       * a copy of this software and associated documentation files (the
       * "Software"), to deal in the Software without restriction, including
       * without limitation the rights to use, copy, modify, merge, publish,
       * distribute, sublicense, and/or sell copies of the Software, and to
       * permit persons to whom the Software is furnished to do so, subject to
       * the following conditions:
       *
       * The above copyright notice and this permission notice shall be
       * included in all copies or substantial portions of the Software.
       *
       * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
       * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
       * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
       * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
       * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
       * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
       * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
       */
      
      
      #include "ssd1327.h"
      
      
      #define DEVICE_ADDRESS    0x3C
      #define BUS_NUMBER        0x0
      
      
      static uint8_t SeeedLogo[] ={
      0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x60, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x06, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x03, 0x80, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x03, 0x80,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x01, 0xC0, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
      0x07, 0x80, 0x01, 0xE0, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x0F, 0x80, 0x01, 0xE0,
      0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x0F, 0x00, 0x01, 0xE0, 0x08, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x30, 0x0F, 0x00, 0x01, 0xE0, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
      0x0F, 0x00, 0x01, 0xE0, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x0F, 0x00, 0x01, 0xE0,
      0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x0F, 0x00, 0x01, 0xE0, 0x18, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x38, 0x0F, 0x00, 0x01, 0xE0, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38,
      0x0F, 0x80, 0x01, 0xE0, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x0F, 0x80, 0x01, 0xE0,
      0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x0F, 0x80, 0x03, 0xE0, 0x78, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x1E, 0x07, 0x80, 0x03, 0xE0, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E,
      0x07, 0x80, 0x03, 0xE0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x07, 0x80, 0x03, 0xC1,
      0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x87, 0xC0, 0x07, 0xC1, 0xF0, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x0F, 0x83, 0xC0, 0x07, 0x83, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F,
      0xC3, 0xC0, 0x07, 0x87, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xE1, 0xE0, 0x07, 0x0F,
      0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF0, 0xE0, 0x0F, 0x0F, 0x80, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x01, 0xF8, 0xF0, 0x0E, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
      0xF8, 0x70, 0x1C, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x30, 0x18, 0x7E,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x18, 0x30, 0xFC, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x1F, 0x88, 0x21, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x0F, 0xC4, 0x47, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xE0, 0x0F, 0x80,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x02, 0x00, 0x06, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x06,
      0x00, 0x00, 0x60, 0x00, 0x7E, 0x3F, 0x0F, 0xC3, 0xF0, 0xFA, 0x0F, 0xDF, 0xE1, 0x9F, 0xEC, 0x7E,
      0xE6, 0x73, 0x9C, 0xE7, 0x39, 0xCE, 0x1C, 0xDF, 0xE1, 0xB9, 0xEC, 0xE7, 0xE0, 0x61, 0xD8, 0x66,
      0x1B, 0x86, 0x1C, 0x06, 0x61, 0xB0, 0x6D, 0xC3, 0x7C, 0x7F, 0xFF, 0xFF, 0xFF, 0x06, 0x0F, 0x86,
      0x61, 0xB0, 0x6D, 0x83, 0x3E, 0x7F, 0xFF, 0xFF, 0xFF, 0x06, 0x07, 0xC6, 0x61, 0xB0, 0x6D, 0x83,
      0xC3, 0x61, 0x18, 0x46, 0x03, 0x86, 0x18, 0x66, 0x61, 0xB0, 0x6D, 0xC3, 0xFE, 0x7F, 0x9F, 0xE7,
      0xF9, 0xFE, 0x1F, 0xE6, 0x3F, 0x9F, 0xEC, 0xFE, 0x7E, 0x3F, 0x0F, 0xC3, 0xF0, 0xFA, 0x0F, 0xC6,
      0x3F, 0x9F, 0xEC, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00,
      0x00, 0x20, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x20, 0x82, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xF3, 0xCF, 0x70, 0x9E, 0x79, 0xE7, 0x80, 0x00, 0x00,
      0x00, 0x00, 0x7D, 0x9E, 0x68, 0x20, 0xB2, 0xC8, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x9E,
      0x6F, 0x20, 0xB2, 0xF9, 0xE7, 0x80, 0x00, 0x00, 0x00, 0x00, 0x46, 0x9A, 0x61, 0x20, 0xB2, 0xCB,
      0x60, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xF3, 0xCF, 0x30, 0x9E, 0x79, 0xE7, 0x90, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x02, 0x00, 0x00, 0x82, 0x60, 0x00, 0x00,
      0xF8, 0x00, 0x00, 0x40, 0x40, 0x02, 0x00, 0x00, 0x83, 0x60, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x40,
      0x60, 0xB7, 0x79, 0xE7, 0x81, 0xC7, 0x92, 0x70, 0x89, 0xE7, 0x9E, 0x78, 0x7C, 0xE2, 0xC9, 0x2C,
      0x81, 0xCC, 0xD2, 0x40, 0xFB, 0x21, 0xB2, 0x48, 0x40, 0x62, 0xF9, 0x2C, 0x80, 0x8C, 0xD2, 0x40,
      0x8B, 0xE7, 0xB0, 0x48, 0x40, 0xE2, 0xC9, 0x2C, 0x80, 0x84, 0xD2, 0x40, 0x8B, 0x2D, 0x92, 0x48,
      0x7D, 0xB3, 0x79, 0x27, 0x80, 0x87, 0x9E, 0x40, 0x8D, 0xE7, 0x9E, 0x48, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
      };
      
      
      
      
      int
      main(int argc, char **argv)
      {
      //! [Interesting]
        upm::SSD1327 *lcd = new upm::SSD1327(BUS_NUMBER, 0x3C);
      
      
        // If you don't set the display to be white, the seeed logo will appear jagged
        lcd->setGrayLevel(12);
        lcd->draw(SeeedLogo, 96 * 96 / 8);
      
      
        // Simple print hello world
        for (uint8_t i = 0; i < 12; i++)
        {
        lcd->setCursor(i, 0);
        lcd->setGrayLevel(i);
        lcd->write("Hello World");
        }
      
      
        delete lcd;
      //! [Interesting]
              return 0;
      }
      

       

      I have little C++ knowledge so hopefully its an easy fix.

      Thank you

      Tyler

        • 1. Re: Problems with Grove OLED SSD1327
          Intel_Alvarado

          Hi,

           

          What command are you running to compile and run the code, are you using any IDE? Are you running the latest image? What is the output of configure_edison –version?

          Is that the only error you get, can you also post a screenshot of the error?

           

          Sergio

          • 2. Re: Problems with Grove OLED SSD1327
            Mach_5

            I am using the Intel Eclipse IDE (I have also tried g++ but same error). I am using Yocto 1.7.2  and configure_edison --version outputs 159. There are other errors, but they are because of the one listed above. Below is a screenshot.

            Untitled.png

            Thank a bunch

            • 3. Re: Problems with Grove OLED SSD1327
              Mach_5

              To get the program to compile, I added the lines:

              #include <ssd1308.h>
              #include <sainsmartks.h>
              #include <lcm1602.h>
              #include <jhd1313m1.h>
              #include <eboled.h>
              
              

               

              and instead of using the 5V line for power I used 3v3.

              • 4. Re: Problems with Grove OLED SSD1327
                Mach_5

                Using the 3v3 line instead of the 5V line fixed the problem. (Not sure why as the device should work just fine at 5v too)

                But, the framerate is terribly atrociously sloooooow.

                Anyone know how to speed up the i2c bus?

                • 5. Re: Problems with Grove OLED SSD1327
                  Mach_5

                  Well, its not working again. I have the following connections:

                  OLED SCL > A5

                  OLED SDA > A4

                  GND > GND

                  VCC > 5V

                   

                  When I boot up the edison and run "i2cdetect -y -r 6" the kernel crashes and spits out this:

                   

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

                  00:          [  51.239445] i2c-designware-pci 0000:00:09.1: ===== REGISTER DUMP (i2c) =====

                  [  51.239543] i2c-designware-pci 0000:00:09.1: DW_IC_CON:              0x65

                  [  51.239621] i2c-designware-pci 0000:00:09.1: DW_IC_TAR:              0x3

                  [  51.239697] i2c-designware-pci 0000:00:09.1: DW_IC_SS_SCL_HCNT:      0x2f8

                  [  51.239773] i2c-designware-pci 0000:00:09.1: DW_IC_SS_SCL_LCNT:      0x37b

                  [  51.239850] i2c-designware-pci 0000:00:09.1: DW_IC_FS_SCL_HCNT:      0x87

                  [  51.239925] i2c-designware-pci 0000:00:09.1: DW_IC_FS_SCL_LCNT:      0x10a

                  [  51.240001] i2c-designware-pci 0000:00:09.1: DW_IC_INTR_STAT:        0x0

                  [  51.240076] i2c-designware-pci 0000:00:09.1: DW_IC_INTR_MASK:        0x246

                  [  51.240152] i2c-designware-pci 0000:00:09.1: DW_IC_RAW_INTR_STAT:    0x10

                  [  51.240227] i2c-designware-pci 0000:00:09.1: DW_IC_RX_TL:            0x20

                  [  51.240302] i2c-designware-pci 0000:00:09.1: DW_IC_TX_TL:            0x20

                  [  51.240377] i2c-designware-pci 0000:00:09.1: DW_IC_ENABLE:            0x1

                  [  51.240451] i2c-designware-pci 0000:00:09.1: DW_IC_STATUS:            0x2

                  [  51.240525] i2c-designware-pci 0000:00:09.1: DW_IC_TXFLR:            0x1

                  [  51.240599] i2c-designware-pci 0000:00:09.1: DW_IC_RXFLR:            0x0

                  [  51.240673] i2c-designware-pci 0000:00:09.1: DW_IC_TX_ABRT_SOURCE:    0x0

                  [  51.240747] i2c-designware-pci 0000:00:09.1: DW_IC_DATA_CMD:          0x0

                  [  51.240821] i2c-designware-pci 0000:00:09.1: ===============================

                  [  51.240928] CPU: 1 PID: 334 Comm: i2cdetect Tainted: G        W  O 3.10.17-poky-edison+ #1

                  [  51.240933] Hardware name: Intel Corporation Merrifield/BODEGA BAY, BIOS 542 2015.01.21:18.19.48

                  [  51.240940] task: f50c1bd0 ti: f5066000 task.ti: f5066000

                  [  51.241003] Stack:

                  [  51.241071] Call Trace:

                  [  51.241487] Code: e8 2f 59 6b 00 8b 15 c0 6c bd c1 b8 02 00 00 00 ff 52 7c eb 0f b8 58 89 41 00 e8 c8 65 2b 00 83 eb 01 74 09 f6 05 00 7b c7 c1 03 <75> e8 f0 80 25 f4 f3 d1 c1 fe eb ab 8b 15 c0 6c bd c1 55 b8 20

                  [  51.241512] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G        W  O 3.10.17-poky-edison+ #1

                  [  51.241517] Hardware name: Intel Corporation Merrifield/BODEGA BAY, BIOS 542 2015.01.21:18.19.48

                  [  51.241525] task: c1bce1c0 ti: c1bc8000 task.ti: c1bc8000

                  [  51.241588] Stack:

                  [  51.241656] Call Trace:

                  [  51.241892] Code: 50 08 83 e2 08 75 39 31 d2 83 c0 08 89 d1 0f 01 c8 0f ae f0 89 f6 89 e0 25 00 e0 ff ff 8b 40 08 a8 08 75 07 b1 01 89 f0 0f 01 c9 <85> 1d 78 60 c1 c1 75 0d 8d 55 f0 b8 05 00 00 00 e8 47 1a d7 ff

                  [  51.295172] i2c-6: recovery ignore

                  -- ^C[  54.289076] i2c-designware-pci 0000:00:09.1: ===== REGISTER DUMP (i2c) =====

                  [  54.289172] i2c-designware-pci 0000:00:09.1: DW_IC_CON:              0x65

                  [  54.289243] i2c-designware-pci 0000:00:09.1: DW_IC_TAR:              0x4

                  [  54.289312] i2c-designware-pci 0000:00:09.1: DW_IC_SS_SCL_HCNT:      0x2f8

                  [  54.289381] i2c-designware-pci 0000:00:09.1: DW_IC_SS_SCL_LCNT:      0x37b

                  [  54.289451] i2c-designware-pci 0000:00:09.1: DW_IC_FS_SCL_HCNT:      0x87

                  [  54.289519] i2c-designware-pci 0000:00:09.1: DW_IC_FS_SCL_LCNT:      0x10a

                  [  54.289589] i2c-designware-pci 0000:00:09.1: DW_IC_INTR_STAT:        0x0

                  [  54.289656] i2c-designware-pci 0000:00:09.1: DW_IC_INTR_MASK:        0x246

                  [  54.289726] i2c-designware-pci 0000:00:09.1: DW_IC_RAW_INTR_STAT:    0x10

                  [  54.289794] i2c-designware-pci 0000:00:09.1: DW_IC_RX_TL:            0x20

                  [  54.289863] i2c-designware-pci 0000:00:09.1: DW_IC_TX_TL:            0x20

                  [  54.289931] i2c-designware-pci 0000:00:09.1: DW_IC_ENABLE:            0x1

                  [  54.289999] i2c-designware-pci 0000:00:09.1: DW_IC_STATUS:            0x2

                  [  54.290066] i2c-designware-pci 0000:00:09.1: DW_IC_TXFLR:            0x1

                  [  54.290134] i2c-designware-pci 0000:00:09.1: DW_IC_RXFLR:            0x0

                  [  54.290202] i2c-designware-pci 0000:00:09.1: DW_IC_TX_ABRT_SOURCE:    0x0

                  [  54.290269] i2c-designware-pci 0000:00:09.1: DW_IC_DATA_CMD:          0x0

                  [  54.290336] i2c-designware-pci 0000:00:09.1: ===============================

                  [  54.290436] CPU: 0 PID: 334 Comm: i2cdetect Tainted: G        W  O 3.10.17-poky-edison+ #1

                  [  54.290441] Hardware name: Intel Corporation Merrifield/BODEGA BAY, BIOS 542 2015.01.21:18.19.48

                  [  54.290448] task: f50c1bd0 ti: f5066000 task.ti: f5066000

                  [  54.290510] Stack:

                  [  54.290579] Call Trace:

                  [  54.291014] Code: 10 b3 ff ff 89 f8 09 d0 80 ce 04 83 ff 02 0f 45 d0 a1 94 72 bd c1 89 90 00 b3 ff ff f7 c6 00 02 00 00 74 15 e8 20 58 0b 00 56 9d <83> c4 04 5b 5e 5f 5d c3 8d b6 00 00 00 00 56 9d e8 39 5b 0b 00

                  [  54.291038] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G        W  O 3.10.17-poky-edison+ #1

                  [  54.291043] Hardware name: Intel Corporation Merrifield/BODEGA BAY, BIOS 542 2015.01.21:18.19.48

                  [  54.291052] task: f6c83d30 ti: f6e1e000 task.ti: f6e1e000

                  [  54.291114] Stack:

                  [  54.291183] Call Trace:

                  [  54.291391] Code: 50 08 83 e2 08 75 39 31 d2 83 c0 08 89 d1 0f 01 c8 0f ae f0 89 f6 89 e0 25 00 e0 ff ff 8b 40 08 a8 08 75 07 b1 01 89 f0 0f 01 c9 <85> 1d 78 60 c1 c1 75 0d 8d 55 f0 b8 05 00 00 00 e8 47 1a d7 ff

                  [  54.292022] i2c-6: recovery ignore

                   

                  If I run this shell script i2cdetect runs fine but nothing is detected.

                   

                  #!/bin/bash
                  echo "Running..."
                  
                  
                  
                  
                  echo 28 > /sys/class/gpio/export
                  echo 27 > /sys/class/gpio/export
                  echo 204 > /sys/class/gpio/export
                  echo 205 > /sys/class/gpio/export
                  echo 236 > /sys/class/gpio/export
                  echo 237 > /sys/class/gpio/export
                  echo 14 > /sys/class/gpio/export
                  echo 165 > /sys/class/gpio/export
                  echo 212 > /sys/class/gpio/export
                  echo 213 > /sys/class/gpio/export
                  echo 214 > /sys/class/gpio/export
                  echo low > /sys/class/gpio/gpio214/direction
                  echo low > /sys/class/gpio/gpio204/direction
                  echo low > /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
                  

                   

                  I've tried setting internal pullups, switching the J9 jumper to change the logic, and countless other things. Using the same connections everything works just fine on an Arduino UNO. The C++ demo code works when the device is actually detected, so it must be something with the Edison software

                  • 6. Re: Problems with Grove OLED SSD1327
                    Mach_5

                    It seems I am in the habit of answering my own questions.

                    The I2C bus works fine when the board is powered by the OTG port. Otherwise nothing is ever detected. Is there any way to use the I2C bus with power coming from the DC jack? Or am I missing something?

                    • 7. Re: Problems with Grove OLED SSD1327
                      Intel_Jesus

                      Hi Mach_5,

                       

                      This might be related to a known issue with I2C. Try moving the jumper on J9 to position 2-3 by default this jumper is set to position 1-2.

                      Let me know if this works for you.

                       

                      Regards,

                      Jesus