I2C/The two wires/How big a pull-up
Lesson 10 of 12 · in 3D and VR

How big a pull-up

Too big a pull-up and the line cannot rise in time for the next clock. Too small and a chip cannot pull it down to a clean zero. The specification sets both limits, and a few kilohms sits between them.

Lonely BinaryUpdated 2026-09-275 min readNo board required

View it in VR

Lesson 10 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/10

A pull-up resistor charges the wire back up every time a chip lets go. The wire, and every pin on it, has capacitance, so the rise is a curve, not a step: the resistor times the capacitance, R·C, sets how long it takes.

The bench keeps lesson 9's glass of water: the pull-up is the thin pipe that refills it, drawn thinner for a bigger resistor, and the wire's capacitance is the width of the glass, drawn wider for more.

Too big: a slow edge

The specification measures the rise from 30 % to 70 % of the supply, which takes 0.8473·R·C, and allows at most 1000 ns at 100 kHz and 300 ns at 400 kHz. With 100 pF of wire and pins:

Pull-upRise100 kHz400 kHz
2.2 kΩ186 nsyesyes
4.7 kΩ398 nsyesno
10 kΩ847 nsyesno
47 kΩ3982 nsnono

Longer wire, more pins, more capacitance, and the same resistor rises more slowly. The limit is 400 pF on each line; each chip's pin may add up to 10 pF of it.

Too small: no clean zero

A chip only promises to sink 3 mA while holding the line at 0.4 V or less. Against a small resistor that is not enough: the smallest pull-up that works on 3.3 V is (3.3 − 0.4) V ÷ 3 mA, about 970 Ω. With 470 Ω the chip can only get the line down to about 1.9 V, which a chip may well read as a 1.

What to fit

On a short bus at 100 kHz, 4.7 kΩ. At 400 kHz, 2.2 kΩ. Only one set per bus: the next lesson is what happens when every module brings its own.

Edit this page — content/fundamentals/i2c/pull-up-size.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 →