I²C Pull-up Resistor Calculator

Minimum and maximum pull-up from bus voltage, capacitance and speed — per the I²C spec.

Recommended pull-up

Two limits bound the pull-up

I²C is an open-drain bus: devices only pull the line low, and the pull-up resistor pulls it back high. Too large and the line rises too slowly; too small and a device can't sink enough current to reach a valid low. The maximum comes from the rise-time limit — the line is an RC charging through Rp and the bus capacitance Cb:

with = 1000 ns (standard), 300 ns (fast) or 120 ns (fast-mode plus). The minimum comes from the low-level output: a device must pull the line to while sinking the pull-up current:

where is typically 0.4 V and is 3 mA (standard / fast) or 20 mA (fast-mode plus). Pick a standard value between the two — 4.7 kΩ is the classic default at 3.3 V/100 pF, but a heavily loaded or fast bus pushes you toward 2.2 kΩ or lower. If the rise time is your wall, reduce bus capacitance (shorter traces, fewer devices) rather than just shrinking Rp.