A pull-up resistor gently ties a signal to VCC so it reads high when nothing is driving it; a pull-down ties it to ground for a default low. They set a defined logic level for floating inputs, buttons, and open-drain buses. The value is a trade-off: too large and the line is slow and noise-prone; too small and it wastes current and can overload the driver.
| Quantity | Formula |
|---|---|
| Current when opposed | I = VCC / R |
| Power dissipated | P = VCC² / R |
| I²C minimum R | Rmin = (VCC − VOL) / IOL |
| I²C maximum R | Rmax = tr / (0.8473 × Cbus) |
For simple logic, 10 kΩ is a common default. For I²C the resistor must be small enough to charge the bus capacitance within the required rise time, yet large enough that the driver can still pull the line low — giving a valid range.
It connects a signal line to VCC through a resistor so the line reads a defined high level when nothing actively drives it, while still allowing a driver to pull it low.
A pull-up defaults the line high (tied to VCC); a pull-down defaults it low (tied to ground). Choose based on the idle state your circuit needs.
10 kΩ is a common, safe default — low current and good noise immunity. Many microcontrollers also have internal pull-ups you can enable instead.
I²C uses open-drain drivers that can only pull the line low, so a pull-up resistor is required to return the line high. Its value must suit the bus speed and capacitance.
Between Rmin = (VCC−VOL)/IOL (so the driver can still pull low) and Rmax = tr/(0.8473×Cbus) (so the line rises in time). 4.7 kΩ is a typical choice.
The total capacitance on the I²C line from wiring, pins, and traces — usually tens to a few hundred pF. More capacitance needs a smaller pull-up to keep the rise time fast.
The line rises too slowly, so at higher speeds the signal never fully reaches the high level in time and communication becomes unreliable.
It draws more current and the open-drain driver may not be able to pull the line low enough (below VOL), causing logic errors and extra power use.
For simple inputs, yes — but internal pull-ups are weak (tens of kΩ) and usually too high for I²C, which needs dedicated external resistors.
Only while the line is held low: P = VCC²/R. A 10 kΩ on 3.3 V wastes about 1 mW in that state, and nothing when the line is high.
One pair for the whole bus, typically near the master or at the electrical centre. Do not add a pull-up on every device or the effective resistance becomes too low.
Yes — longer wires add capacitance, lowering Rmax, so you may need a smaller pull-up or a slower bus speed.
Ohm's Law Calculator • Resistor Power Rating • Voltage Divider • All Calculators