๐ŸŽ„โ›„โ„๏ธ๐ŸŽ It's beginning to look a lot like ADABOX-mas! The next ADABOX from Adafruit ships soon! Get yours now, or give as a gift! ๐ŸŽ„โ›„โ„๏ธ๐ŸŽ
0

Adafruit ESP32 feather and BME680 - i2c pull up resistors
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

Adafruit ESP32 feather and BME680 - i2c pull up resistors

by brodseba on Tue Jun 11, 2019 11:31 pm

Hi,

I'm trying to read from an BME680 sensor from an Adafruit ESP32 feather using I2C. The doc said: I2C pins do not have pull up resistors. And we must add them if we want to communicate with an I2C device.

IMG_20190611_230454.jpg
Wiring setup
IMG_20190611_230454.jpg (205.14 KiB) Viewed 79 times


But how to decide witch resistors to use? Is it a 4.7K, 10K. Will it depend on the sensor? What am I looking for in the datasheet of the sensor? The Bosch doc seem to indicate I need to use 4.7K resistors. But I try both, 4.7K and 10K and I still getting the same error message: Could not find a valid BME680 sensor, check wiring!

Here what I try already:
  • Using Port 0x77 and 0x76
  • Using 4.7K, 10K and no pull up resistors
  • Moving the sensor on another part of the breadboard
  • Checking multiple time the wiring
  • Looking at my solder pins

I am kind of out of option here. May I have damage the sensor by not using pull up resistors the first time? How do I check if the sensor is damaged?

I may also try to use SPI instead of I2C, but not sure if it need pull resistors when using SPI instead.

brodseba
 
Posts: 2
Joined: Tue Jun 11, 2019 10:21 pm

Re: Adafruit ESP32 feather and BME680 - i2c pull up resistor

by jerryn on Wed Jun 12, 2019 6:12 am

Just a few observations:
The BME680 breakout has 10K Pull-ups -- see the schematic https://learn.adafruit.com/assets/48082
The BME680 can take 3-5V as Vin, but it pulls the SDA/SCL to Vin to match the level.but so you should be powering the BME680 from 3.3V not VUSB as you have it since that will pull the SCA/SDL to 5V which is not appropriate for the ESP32.
I don't know if that would explain the problems, but it may be worth try:

Not using pull-ups should have been no problem -- the default address is 0x77 but using 5V for Vin may not be good for the ESP32 SDA/SCL pins.
from the guide: https://learn.adafruit.com/adafruit-bme680-humidity-temperature-barometic-pressure-voc-gas/pinouts
Vin - this is the power pin. Since the sensor chip uses 3 VDC, we have included a voltage regulator on board that will take 3-5VDC and safely convert it down. To power the board, give it the same power as the logic level of your microcontroller - e.g. for a 5V micro like Arduino, use 5V

jerryn
 
Posts: 1056
Joined: Sat Sep 14, 2013 9:05 am

Re: Adafruit ESP32 feather and BME680 - i2c pull up resistor

by brodseba on Thu Jun 13, 2019 1:07 am

Hum, I switch to the 3V pinout.

I also try to switch from 4.7K to 10K. (The Bosch datasheet to indicate 4.7k pull up thou: https://cdn-shop.adafruit.com/product-f ... BME680.pdf
For the I2C connection, it is recommended to use 100 nF for C1 and C2. Moreover, the value for the pull-up resistors R1 and
R2 should be based on the interface timing and the bus load; a normal value is 4.7 kฮฉ.


I also check all my wire for connectivity.

But I keep getting the same result.

brodseba
 
Posts: 2
Joined: Tue Jun 11, 2019 10:21 pm

Re: Adafruit ESP32 feather and BME680 - i2c pull up resistor

by adafruit_support_carter on Thu Jun 13, 2019 1:05 pm

You don't need to add any pullups. The wiring connection is shown here:
https://learn.adafruit.com/adafruit-bme ... cuitpython

Check your soldering. It looks like it might be a little thin on some of the pins.
https://learn.adafruit.com/adafruit-gui ... n-problems

adafruit_support_carter
 
Posts: 13589
Joined: Tue Nov 29, 2016 2:45 pm

Please be positive and constructive with your questions and comments.