This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

HDC1080: Unable to get the HDC to work

Part Number: HDC1080
Other Parts Discussed in Thread: MSP430G2553,

I had a HDC1080 EVM. I read that the back end of the evm can be broken off from the perforation and used as a standalone sensor on a micro-controller. I tried to interface it with the MSP430G2553. I have done the following with no avail:

1) the jumper on P1.6 has been removed(no interference of led with SCL line)

2) I have tried using pullup resistors on both the SCL and SDA lines. I have tried out with the standard 4.7k resistors and also with 10k resistors.

3) I always get a temperature value of -40 degree C and humidity of 0%, which means that the MSP is not able to get the readings through.

4) I am using the Wire library on Energia1.6.10E18 and I followed TI's tutorial video on how to implement HDC1080 on Arduino. Here's the link ()

Here's my code:

#include <Wire.h>

void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
 
Wire.begin();
//Wire.setModule();
Wire.beginTransmission(0x40);
Wire.write(0x02);
Wire.write(0x90);
Wire.write(0x00);
Wire.endTransmission();
delay(20);
}

void loop() {
  // put your main code here, to run repeatedly: 
double temperature;
double humidity;

humidity = readSensor(&temperature);
Serial.println(temperature);
Serial.println(humidity);
delay(1000);
}

double readSensor(double* temperature){
 uint8_t Byte[4];
 int value;
 uint16_t temp;
 uint16_t humidity;

  Wire.beginTransmission(0x40);
  Wire.write(0x00);
  Wire.endTransmission();

  delay(20);
  Wire.requestFrom(0x40,4);

  if(4<=Wire.available())
  {
   Byte[0]=Wire.read();
   Byte[1]=Wire.read();
   Byte[3]=Wire.read();
   Byte[4]=Wire.read();

   temp = (((unsigned int)Byte[0] <<8 | Byte[1]));
   *temperature = (double)(temp)/(65536)*165-40;
   humidity = (((unsigned int)Byte[3] <<8 | Byte[4]));
   return (double)(humidity)/(65536)*100;
   }
}

Where is it going wrong?