No signal on SCL (pin 1)

My simple starter project uses an Imp breakout board from SparkFun connected to an Arduino. The Arduino is configured as in I2C slave (with arbitrary address 0xD3). The imp is configured as master (I’m assuming at any rate). My logic analyzer shows only traffic on the SDL line and the SCL line is quiet. I have soldered up the 4k7 pullup resistors. I have verified that the logic analyzer and Arduino both work by changing the Arduino’s firmware to be an I2C master and observed both the SCL and SDA lines active (the was successfully asking for slave 0x08 which doesn’t exists). Is there something I’m missing? Is there some secret sauce needed to get the Imp to generate a clock on pin1/SCL line? Code below…

Imp code:
`local ARDUINO_SLAVE_ADDR = 0xD3;

//------------------------------------------------------------------------
// Class to interact with the Arduino as an IC2 slave device
class ArduinoI2CSlave
{
i2cPort = null;
i2cAddress = null;
i2cRegister = “\x00”;

constructor(port, address)
{
    if (port == I2C_12)
    {
        // Configure I2C bus on pins 1 & 2
        hardware.configure(I2C_12);
        i2cPort = hardware.i2c12;
        
        hardware.pin1.configure(DIGITAL_OUT);
    }
    else if (port == I2C_89)
    {
        // Configure I2C bus on pins 8 & 9
        hardware.configure(I2C_89);
        i2cPort = hardware.i2c89;
    }
    else
    {
        server.log("Invalid I2C port specified.");
    }

    i2cPort.configure(CLOCK_SPEED_100_KHZ);
    i2cAddress = address << 1;
}

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
// returns a block of data from the arduino
function read(numBytes)
{
    local data = i2cPort.read(i2cAddress, "", numBytes);
    if (data == null)
    {
        server.log("I2C Arduino Read Failure");
        return null;
    }
    
    return data;
}

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
// writes a block of data to the arduino
function write(data)
{
    i2cPort.write(i2cAddress, data);
}

}

//---------------------------------------------------------------------------------
function startSlave()
{
// write greeting to the slave
arduino.write("\xA0");
imp.wakeup(0.25, readFromArduino);
}

//---------------------------------------------------------------------------------
function readFromArduino()
{
// read data from the i2c device
local greeting = arduino.read(17);
if (null != greeting)
{
server.show(greeting);
}
else
{
server.show("No response from arduino: " + time());
}

imp.wakeup(5.0, startSlave);

}

imp.configure(“Foo”, [], []);

// construct an arduino object
arduino <- ArduinoI2CSlave(I2C_12, ARDUINO_SLAVE_ADDR);

startSlave();

`

Here’s a screenshot from the Salee log logic analyzer window.

It may be due to a bad contact between the imp and the SD connector. What is happening if you maintain a small pressure on the imp to guarantee good contacts? i had the same problem a few days ago. Finally it was just a contact problem.
J-P

Sometimes it’s just that easy. Thanks for the tip! I’m getting a solid clock on the SCL line. I’ll have to double check those connectors and maybe see if SparkFun has an updated Imp shield.

If you have this issue, please contact info@electricimp.com and we’ll get you a replacement imp (and ask for your imp back for analysis).

I have this issue, but it does not improve by pressing on the socket / pin area.
Also, I checked connectivity between pins and socket on the board and it seems fine. So the problem is somewhere between the imp and the socket, I guess.
info@electricimp.com have said to post it back, but I am not in the US, so it will take weeks for a turnaround.
There’s got to be a quicker & cheaper solution, no?

have you tried pushing the card just slightly deeper into the socket. Perhaps you can find some tape to apply between the two to hold it in just a tad tighter.

At our company we have done this (not for imp, but for regular SD memory) in production to improve reliability in a vibration environment. We use Kapton tape but maybe anything with good adhesive will work.

@popsharma We would send you a replacement in advance, so you wouldn’t be imp-less…