I2C pullup resistor discussion notes

Active today
Viewed 7 times

Hello i have designed a modular shield like value that uses the i2c buss of the raspberry but i do not know what resistor value for the pull ups to use. most guides tells us to use a safe 4.7k resistor but upon adding more of this modular device that 4.7k ohms will go down because of parelling resistors.

The theoretical max is 32 modular i2c devices before the power supply of the pi cant handle any furthur. When all 32 is placed, the resistance will go down to 146 ohms which is very low. But the value should also work with only 1 device is placed. because of that i cant set the value to high either.

Any thoughts?

  • Ah let me see. Almost all I2C modules come with 4k7 SMD pull ups on PCB. I usually remove them using soldering gun at 350C to desolder/remove them. The first time I did the removal took me 15 minutes and ended up removing all the 2 neighbouring components and into the dust bin. After about 20 times, I can now do it in average less than two minutes. You might like to see my finished job in the answers of the following questions: / to continue, …. – tlfong01 21 mins ago   
  • In the above and other related posts, I also pointed out the pull up is not critical problem. What is causing trouble is the I2C 400pf max capaticance problem. One way to minimize capitance is NOT to use star topology for wiring the I2C. Instead using daisy chain and also Short wires ASAP. Of course you can use 3V3 stepped up to 5V logic and also very expensive bus extenders and expanders. – tlfong01 14 mins ago   
  • My answer to the following question includes more references and app notes (TI and NXP are the best) to dealing with I2C pullup/capacitance problems: raspberrypi.stackexchange.com/questions/104538/…. – tlfong01 11 mins ago   
  • By the way, all may answers in the above posts are OUT OF DATE, because I use as example Rpi3B+ with limited, flat 100kHz I2C speed. Recently I tried Rpi4B and surprisingly found that even I stretch speed to almost the seemingly upper limit 900kHz, I can still entertain many more I2C devices on a single one of the 4 or 5 I2C buses. I guess the Rpi4B I2C (SCL, SDA) circuits have been improved, become stronger to drive higher impedance, ie, capacitance, perhaps much higher than 400pF. But I need to do more engineering experimentation and calibration to verify my hobbyist guess. – tlfong01 just now   Edit   


DO NOT use ANY pullups!

All Pi models come with 1.8kΩ pullup to 3.3V.

Your Answer


Categories: Uncategorized

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: