Hello
I'm designing a custom PCB using an ESP32 that communicates over I²C with multiple devices (SEN55 air quality sensor and 4 ADS1115 ADCs) Currently all devices are connected to the same SDA and SCL lines.
Each device datasheet suggests pull-up resistors on SDA and SCL (SEN55 recommends 4.7kΩ, ADS1115 recommends 10kΩ), and as a result, I currently have 4 resistors on the I²C bus (2 × 4.7kΩ, 2 × 10kΩ).
My questions are:
1. Is it electrically safe and recommended to have multiple pull-up resistor pairs on the same I²C bus?
2. Should I remove all but one pair of pull-ups? If so, which value is ideal for ESP32 with short trace lengths (less than 10 cm)?
Thanks in advance for your help
I²C Pull-up Resistors with Multiple Devices on SDA/SCL – ESP32 Design Question
-
muhammed12
- Posts: 5
- Joined: Thu Apr 17, 2025 2:46 pm
Re: I²C Pull-up Resistors with Multiple Devices on SDA/SCL – ESP32 Design Question
you will be just fine with just one set of 4.7k on the bus.
Re: I²C Pull-up Resistors with Multiple Devices on SDA/SCL – ESP32 Design Question
The whole concept of the I2C bus is that you have one (1) set of pull up resistors. With every resistor you add in parallel, the pull-up resistors values decreases (if they're the same value, the values become half of it). Normally each device type has a maximum bus drive strength which translates into a minimum pull-up resistor value. Most devices can drive 2k2 though, some even 1k. 4k7 is a very safe default (which I always use), you only need to explore lower values if your bus becomes long, very long, e.g. over 5 meters. Over around 10 meters I'd use a bus extender. Or place another microcontroller altogether.
Who is online
Users browsing this forum: No registered users and 5 guests