SHTC3 Temp & Humidity sensor works on all other devices except Particle devices

Has anyone used the new SHTC3 temp and humidity sensor with a Particle device successfully. I recently created a PCB with an Si7021 and the SHTC3 as redundant environmental sensors. I can communicate with both sensors flawlessly when I use an Arduino, ESP32, Feather. But, when I communicate with the board using a Photon, P1 board or any other Particle device, I cannot communicate with the SHTC3, only the Si7021. I have ran the I2C scanner code, and the Photon/etc does not even report back the address of the SHTC3. It’s like it’s not even there on the I2C bus.

Here is the code I’m using. Note that I am using a chip that bit shifts the I2C address of every device after it to allow for the same device to appear on the bus multiple times despite having only one factory I2C address. However, this portion of the circuit has worked flawlessly. I do not believe it is responsible for the Photon being unable to communicate with the SHTC3 because I still cannot communicate with it when I bypass the address shifting IC and plug directly into the I2C bus on the photon.

#include "Si7021.h"
#include "SHTC3.h"

Adafruit_Si7021 Si7021_1 = Adafruit_Si7021();
Adafruit_Si7021 Si7021_2 = Adafruit_Si7021();
SHTC3 SHTC3_1;
SHTC3 SHTC3_2;              

void setup() {
  Serial.begin(115200);
  Wire.begin();
  
  if (!Si7021_1.begin(0x49)) {//Unit 1
    Serial.println("Did not find Si7021 sensor!");
  }
  if (!Si7021_2.begin(0x48)) {//Unit 2
    Serial.println("Did not find Si7021 sensor!");
  }

  SHTC3_1.begin(0x79);//Unit 1
  SHTC3_2.begin(0x78);//Unit 2
}

void loop() {

  Serial.print("Unit 1: SHTC3:");

  SHTC3_1.update();                                          // Call "update()" to command a measurement, wait for measurement to complete, and update the RH and T members of the object
  if(SHTC3_1.lastStatus == SHTC3_Status_Nominal)              // You can also assess the status of the last command by checking the ".lastStatus" member of the object
  {
    Serial.print(" RH% = "); 
    Serial.print(SHTC3_1.toPercent());                   // "toPercent" returns the percent humidity as a floating point number

    Serial.print(", T_C = "); 
    Serial.print(SHTC3_1.toDegC());

    Serial.print(", T_F = "); 
    Serial.print(SHTC3_1.toDegF());                        // "toDegF" and "toDegC" return the temperature as a flaoting point number in deg F and deg C respectively 
  }
  else
  {
    Serial.println("SHTC3 Failure: "); 
  }
  
  Serial.print("   Si7021: RH% = ");
  Serial.print(Si7021_1.readHumidity(), 2);
  Serial.print(", T_C = ");
  Serial.print(Si7021_1.readTemperature(), 2);
  Serial.print(", T_F = ");
  float tempF = (Si7021_1.readTemperature() * 9)/5 + 32;
  Serial.println(tempF, 2);

  Serial.print("Unit 2: SHTC3:");
  SHTC3_2.update();                                         // Call "update()" to command a measurement, wait for measurement to complete, and update the RH and T members of the object
  if(SHTC3_2.lastStatus == SHTC3_Status_Nominal)              // You can also assess the status of the last command by checking the ".lastStatus" member of the object
  {
    Serial.print(" RH% = "); 
    Serial.print(SHTC3_2.toPercent());                   // "toPercent" returns the percent humidity as a floating point number

    Serial.print(", T_C = "); 
    Serial.print(SHTC3_2.toDegC());

    Serial.print(", T_F = "); 
    Serial.print(SHTC3_2.toDegF());                        // "toDegF" and "toDegC" return the temperature as a flaoting point number in deg F and deg C respectively 
  }
  else
  {
    Serial.println("SHTC3 Failure: "); 
  } 

  Serial.print("   Si7021: RH% = *");
  Serial.print(Si7021_2.readHumidity(), 2);
  Serial.print("*, T_C = ");
  Serial.print(Si7021_2.readTemperature(), 2);
  Serial.print(", T_F = ");
  float tempF2 = (Si7021_2.readTemperature() * 9)/5 + 32;
  Serial.println(tempF2, 2);
  
  Serial.println("");
  delay(2500);
}

I’ve tried numerous Particle devices, with the same result on each. Has anyone experienced something similar or used the SHTC3 successfully with a Photon or other device?

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.