Can't find I2C device/address - TMP006

Hello

I’ve purchased TMP006 from Sparkfun

I’ve connected the TMP006 up to my Electron as per diagram below:

This was based upon @krvarma instructions here:

However - Electron can’t find the TMP006 device using I2C it seems. I used a scanner (code below), and this doesn’t find any devices…

    #include <application.h>

//#include <Wire.h>


void setup()
{
  Wire.begin();

  Serial.begin(9600);
  delay(10000);
  Serial.println("\nI2C Scanner");
}


void loop()
{
  byte error, address;
  int nDevices;

  Serial.println("Scanning...");

  nDevices = 0;
  for(address = 1; address < 127; address++ )
  {
    // The i2c_scanner uses the return value of
    // the Write.endTransmisstion to see if
    // a device did acknowledge to the address.
    Wire.beginTransmission(address);
    error = Wire.endTransmission();

    if (error == 0)
    {
      Serial.print("I2C device found at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.print(address,HEX);
      Serial.println("  !");

      nDevices++;
    }
    else if (error==4)
    {
      Serial.print("Unknow error at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.println(address,HEX);
    }
  }
  if (nDevices == 0)
    Serial.println("No I2C devices found\n");
  else
    Serial.println("done\n");

  delay(5000);           // wait 5 seconds for next scan
}

Any ideas? Have I hooked this up incorrectly? Something else I need to do to initialise the sensor?

Thanks in advance

Matt

Try flipping SCL and SDA. If i am not wrong:

SDA is on D0
SCL is on D1

No luck :frowning:
Do I have these pull up resistors configured correctly?
M

You can actually try removing them since the way its wired looking like current limiting and not pull-up.

Just removed them, and tried flipping SCL/SDA again - to no avail.

@krvarma's instructions here advise need for Pullup resistor:

TMP006 Vcc to 3.3V
TMP006 GND to GND
TMP006 SCL to D1 (with pullup resistor)
TMP006 SDA to D0 (with pullup resistor)

If you want, you can make it in the pull-up resistor wiring:

3V3 ------/\/\/\/\/\/\/------ SCL/SDA

Maybe you can double check / count that it’s D0 and D1 :smiley:

The TMP006 already has pullup resistors on the board, so you don’t need to add your own.

Hmm in that case, still can’t work out why it’s not working when I remove resistors .
Tried a second TMP006 that I have, and that also didn’t work
M

Can you post a photo of your actual setup (good enough quality to follow the connections)?

Thanks!


You should definetly solder some pins into your board.
Just pushing the jumper wires through the holes won’t give you reliable contact.

Also the SCL should be connected to D1 and SDA to D0 - you’ve got that swapped on that pic.
https://docs.particle.io/reference/firmware/photon/#wire-i2c-

4 Likes

Yep, that worked. I thought I had touching ends to board, but obviously not!
Thanks!
M

1 Like