Schematic review: ESP32-C6 + MAX30102 + MPU6050 (I²C logic level question)

Hi everyone,

I’m designing a circuit using an ESP32-C6 as the main microcontroller, and I’d really appreciate some help reviewing my schematic before moving on to the PCB stage.

The design includes:

  • ESP32-C6
  • MAX30102 (optical sensor) powered with VDD = 1.8 V and VLED+ = 3.3 V
  • MPU-6050 (IMU) powered at 3.3 V
  • Regulators providing 3.3 V and 1.8 V
  • A LiPo battery connected to BAT+ / BAT-, with a resistor divider to the ESP32 ADC for voltage measurement
  • A shared I²C bus between ESP32, MAX30102, and MPU-6050, with 4.7 kΩ pull-ups to 3.3 V

My main question:

  • The MAX30102 runs its core at 1.8 V, but according to the datasheet SDA and SCL are open-drain and allow external pull-ups. Is it safe to keep the I²C bus pulled up to 3.3 V (shared with ESP32 and MPU-6050), or do I really need a level shifter / separate 1.8 V I²C bus for the MAX30102?

In addition, if you spot any other mistakes or weak points in the schematic, please let me know, or if it generally looks fine, I’d also like to hear your opinion.

Below I’m attaching my schematic as an image.

You don't want pull-up resistors on SDA/SCL of each of your i2c devices, just one pair.

If you add pull-ups for each device, those pull-ups combine and may become too strong and prevent the bus from working.

1 Like

Wow, thank you so much! I had only read a little about that and I still had that conflict. I’ll remove a couple of pull-ups and just leave one, thanks!

My interpretation of the data sheet is: yes it is

It would be good to get a second opinion from other, more experienced forum members.

Here is a good discussion re I2C pull ups
https://dronebotworkshop.com/i2c-esp32/

I also think that it's okay to pull up SCL and SDA ("other pins") to up to 6V. As Vdd max is only 2.2V I can not see a restriction for pin voltage vs. Vdd. No phantom powering as with AVR chips.