Possible to run Arduino's (WeMos D1 R2) I²C on 3.3V?

Hello, this is my first post on this forum and I'm still learning, but here's my problem:

I want to rebuild a CO² traffic light with the WeMos mentioned above that collects CO² and VOC data and sends it via WLAN. As a main sensor I use the SGP30 from Adafruit, which can only be accurate with a humidity sensor. For this purpose, I could use the SI7021, which unfortunately has a maximum input voltage of 3.3V. I also attached an LCD with I²C control to display the data...

Can I therefore run I²C only on 3.3 V to match the humidity sensor and not damage it? And are there any other alternatives to a logic level converter? Or (for those who might know the SGP30) do I even need the SI7021? What would you recommend?

Right now the configuration works, the SI7021 is fine and sends data but I fear that running it for a longer time might break it...

Here is a datasheet link to the SI7021: https://www.neuhold-elektronik.at/datenblatt/N8817.pdf
I also got a very fancy scheme attached...

Double check your I2C display device many operate on 5 volts but use open drain for the outputs. They will work all you need to do is be sure the pull up resistors are to the 3.5V, not the 5V. They do not have active high drivers. The easiest way is to look at the part number on the display interface, not the controller, and get its data sheet.

@tm_28 You do know the Wemos is a 3v3 device, right?

The Wemos D1 R2 uses the ESP8266, which runs at 3.3V. Its I2C bus is therefor a 3.3V I2C bus.
The ESP8266 has pins that are more or less 5V tolerant (the ESP32 is not!). So the ESP8266 will not get damaged when a higher voltage is applied to SDA or SCL.

Could you give a link to your SI7021 module ? (a link to where you bought it).
The SI7021 runs at 1.9V to 3.6V, so 3.3V is perfect.
The maximum voltage on its SDA and SCL pins is 3.3 + 0.3 = 3.6V (page 10 of datasheet). That means it may only be connected to a 3.3V I2C bus.

Adafruit SGP30: Adafruit SGP30 Air Quality Sensor Breakout - VOC and eCO2 [STEMMA QT / Qwiic] : ID 3709 : $17.50 : Adafruit Industries, Unique & fun DIY electronics and kits.
I'm very glad you bought the Adafruit module, because the SGP30 itself runs at a very low voltage. The Adafruit module works with 3.3V and 5V. Power it with 3.3V and it will have a 3.3V I2C bus. Why did you decide to power it with 5V ?

The I2C LCD display needs 5V and probably has pullup resistors from SDA to 5V and from SCL to 5V that gilshultz already wrote about.
Could you use another display ?
You could perhaps remove those pullup resistors. Can you give a link to where you bought it. Perhaps we can tell which resistors to remove.
OLED displays are running at 3.3V, but they cause troubles. A OLED display from Adafruit seems to have less troubles.
Your Wemos D1 R2 module has enough memory to use a OLED with a nice font, however, using a library for a OLED display is harder than a LCD display.

I made this a week ago: How to make a reliable I2C bus · Koepel/How-to-use-the-Arduino-Wire-library Wiki · GitHub.
Please read the first five things to remember.

Stay in the 3.3V world and remove everything that is 5V. That will prevent a lot of problems.

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