I2C/The two wires/Too many pull-ups
Lesson 11 of 12 · in 3D and VR

Too many pull-ups

Most modules carry their own pull-ups, and on one bus they all end up in parallel. A few are fine; five 4.7 kΩ pull-ups make 940 Ω, too strong for a chip to pull the line to a clean zero.

Lonely BinaryUpdated 2026-09-274 min readNo board required

View it in VR

Lesson 11 of the I2C course opens in a VR headset, on a table in front of you, and a voice starts three seconds after you arrive. Type this short address into the browser on a headset such as Meta Quest or Apple Vision Pro, and press Enter VR. No headset? Press Start the lesson: the same lesson, full screen.

learn.lonelybinary.com/vr/i2c/11

A module sold on its own has to work on its own, so almost every I2C module has pull-up resistors on the board. Put several on one bus and those resistors sit side by side, from the same line to the same supply. In parallel, they add up to less than any one of them:

Modules with 4.7 kΩTogether
14.7 kΩ
22.35 kΩ
31.57 kΩ
5940 Ω
6783 Ω

On the bench, each module brings its own thin pipe from the tank to the glass. Five of them pour in faster than the ESP32's drain can let out.

Below about 970 Ω on 3.3 V, a chip sinking the 3 mA it promises can no longer pull the line under 0.4 V (lesson 10). With five modules the lowest it reaches is about 0.48 V, and with six about 0.95 V. Nothing breaks: the bus that worked with three modules starts failing with six, some reads come back wrong, and some chips stop answering.

The fix: one set of pull-ups

Keep the pull-ups on one module and take them off the rest. Most modules have a way to do that: a solder jumper to cut, or resistors to remove. On our TK42 temperature board the jumper is on the back, labelled I2C PULL UP, and it ships joined, connecting two 10 kΩ pull-ups. Cut it on every TK42 but one.

If the modules' pull-ups are all removed, fit your own: 4.7 kΩ from SDA to 3.3 V and another from SCL to 3.3 V, once, anywhere on the bus.

Edit this page — content/fundamentals/i2c/too-many-pull-ups.mdx

Discuss this article

Ask about this page. The answer stays here, on the page it belongs to, for whoever hits the same wall next.

Browse Fundamentals on the forum →