SI7021 not visible in weathershield [solved]

Started by RTFM, March 06, 2016, 02:09:21 PM

RTFM

Hello,

I'm about to run the weather shield, BMP180 and SI7021 as sold and solder by LowPowerLab on a ordinary 5V Arduino.

I having issues to get SI7021 to work. Problems arose early already: The sensor.begin() - it fails.
Having a look to the library, to
  SI7021::begin()     
  ......
  if (Wire.endTransmission() == 0) {
          _si_exists = true;

Wire.endTransmission() puts back value "2" always.

Applying the I2C Scanner, I receive :
Scanning...
I2C device found at address 0x27  !
I2C device found at address 0x77  !
done

-  0x27 is my LCD display,
-  0x77 is the BMP180  of weather shield ---> At least weather shield is on the bus. 
    Btw, the pressure values I obtain using BMP180 are OK.

1) Where is the "0x40" of the SI7021? Why it is neither not addressable nor even recognised?

I have soldered 4 Pins: 3.3 V, Gnd, SCL,SDA
2) Is there something I have to solder or remove additionally? At the copper plates at "pullup", may be?

Thanks,
RTFM

syrinxtech

Not making any assumptions, but I'm guessing you have the following in your code:

#include <Wire.h>
#include <SI7021.h>

Felix

Your wiring seems correct but i have no way of verifying the 3.3v signals going into your 5v arduino will be registered.
I am interested to see if this works on a Moteino, with the sketches I have provided: https://github.com/LowPowerLab/WeatherShield

RTFM

Hello,
Thanks for your answers, that pointed me to right direction.
I was aware of the 3.3 V issue at a 5 V Arduino and installed one of this Bi-Directional level shifters.
From that side: All OK.

But my 3.3V bus is, because of it's consumption, a 5.0 V bus minus the drop out voltage of 2 SI-Diodes, what computes to 3.6 V, a bit more or less. But 3.6 V is the  maximum of SI7021 as per data sheet.
Now I'm using the Arduino built in 3.3V Power supply - the SI7210 appears in IIC scanner and it can be used by the software.

Thanks,
RTFM   

Felix