{
  "id": "i2c-pullup",
  "slug": "i2c-pullup-calculator",
  "url": "https://electronics.tools/tools/i2c-pullup-calculator/",
  "name": "I2C Pull-Up Calculator",
  "group": "cap-ind",
  "summary": "Rmin = (VDD − VOLmax) / IOL. 3.3 V, 0.4 V, 3 mA, 100 pF, 300 ns is 966.667 Ω–3.54066 kΩ.",
  "formulas": [
    {
      "id": "rmin",
      "label": "Minimum pull-up",
      "plain": "Rmin = (VDD − VOLmax) / IOL",
      "mathml": "<math display=\"block\" xmlns=\"http://www.w3.org/1998/Math/MathML\" aria-label=\"Rmin = (VDD − VOLmax) / IOL\"><mrow><msub><mi>R</mi><mi>min</mi></msub><mo>=</mo><mfrac><mrow><msub><mi>V</mi><mi>DD</mi></msub><mo>-</mo><msub><mi>V</mi><mi>OLmax</mi></msub></mrow><msub><mi>I</mi><mi>OL</mi></msub></mfrac></mrow></math>",
      "symbols": [
        "Rmin",
        "VDD",
        "VOLmax",
        "IOL"
      ],
      "sources": [
        "um10204",
        "slva689a"
      ]
    },
    {
      "id": "rmax",
      "label": "Maximum pull-up (30–70 % rise)",
      "plain": "Rmax = tr / (0.8473 Cb)",
      "mathml": "<math display=\"block\" xmlns=\"http://www.w3.org/1998/Math/MathML\" aria-label=\"Rmax = tr / (0.8473 Cb)\"><mrow><msub><mi>R</mi><mi>max</mi></msub><mo>=</mo><mfrac><msub><mi>t</mi><mi>r</mi></msub><mrow><mn>0.8473</mn><msub><mi>C</mi><mi>b</mi></msub></mrow></mfrac></mrow></math>",
      "symbols": [
        "Rmax",
        "tr",
        "Cb"
      ],
      "sources": [
        "um10204",
        "slva689a"
      ]
    },
    {
      "id": "tre",
      "label": "Estimated 30–70 % rise",
      "plain": "tre = 0.8473 Req Cb",
      "mathml": "<math display=\"block\" xmlns=\"http://www.w3.org/1998/Math/MathML\" aria-label=\"tre = 0.8473 Req Cb\"><mrow><msub><mi>t</mi><mi>re</mi></msub><mo>=</mo><mn>0.8473</mn><msub><mi>R</mi><mi>eq</mi></msub><msub><mi>C</mi><mi>b</mi></msub></mrow></math>",
      "symbols": [
        "tre",
        "Req",
        "Cb"
      ],
      "sources": [
        "um10204"
      ]
    }
  ],
  "variables": [
    {
      "symbol": "VDD",
      "name": "Bus supply",
      "unit": "V",
      "role": "input",
      "precision": {
        "sig": 4
      },
      "range": {
        "min": 0,
        "note": "Must be > VOLmax"
      },
      "default": 3.3,
      "urlParam": "vdd"
    },
    {
      "symbol": "VOLmax",
      "name": "Low-level output (user/datasheet)",
      "unit": "V",
      "role": "input",
      "precision": {
        "sig": 4
      },
      "range": {
        "min": 0,
        "note": "Table 10 VOL1 is 0.4 V at 3 mA when VDD > 2 V; override from the pin datasheet"
      },
      "default": 0.4,
      "urlParam": "vol"
    },
    {
      "symbol": "IOL",
      "name": "Low-level sink (user/datasheet)",
      "unit": "A",
      "role": "input",
      "precision": {
        "sig": 4
      },
      "range": {
        "min": 0,
        "note": "Table 10 IOL min is 3 mA (Sm/Fm) or 20 mA (Fm+) at VOL = 0.4 V; not a capability guarantee"
      },
      "default": 0.003,
      "urlParam": "iol"
    },
    {
      "symbol": "Cb",
      "name": "Total bus capacitance",
      "unit": "F",
      "role": "input",
      "precision": {
        "sig": 4
      },
      "range": {
        "min": 0,
        "note": "Table 11 Cb max is 400 pF (Sm/Fm) or 550 pF (Fm+); not a clamp"
      },
      "default": 1e-10,
      "urlParam": "cb"
    },
    {
      "symbol": "mode",
      "name": "Speed mode (sets default tr)",
      "unit": "1",
      "role": "input",
      "precision": {
        "sig": 1
      },
      "default": "fm",
      "urlParam": "mode"
    },
    {
      "symbol": "tr",
      "name": "Rise-time limit (Table 11 or custom)",
      "unit": "s",
      "role": "input",
      "precision": {
        "sig": 4
      },
      "range": {
        "min": 0,
        "note": "Sm 1000 ns, Fm 300 ns, Fm+ 120 ns from Table 11; custom overridable"
      },
      "default": 3e-7,
      "urlParam": "tr"
    },
    {
      "symbol": "Rmin",
      "name": "Minimum pull-up",
      "unit": "Ω",
      "role": "output",
      "precision": {
        "sig": 6
      }
    },
    {
      "symbol": "Rmax",
      "name": "Maximum pull-up",
      "unit": "Ω",
      "role": "output",
      "precision": {
        "sig": 6
      }
    },
    {
      "symbol": "Req",
      "name": "Enabled parallel equivalent",
      "unit": "Ω",
      "role": "output",
      "precision": {
        "sig": 6
      }
    },
    {
      "symbol": "tre",
      "name": "Estimated 30–70 % rise",
      "unit": "s",
      "role": "output",
      "precision": {
        "sig": 6
      }
    },
    {
      "symbol": "Isink",
      "name": "Low-state current at VOLmax",
      "unit": "A",
      "role": "output",
      "precision": {
        "sig": 4
      }
    },
    {
      "symbol": "ok",
      "name": "Non-empty [Rmin, Rmax] interval",
      "unit": "1",
      "role": "output",
      "precision": {
        "sig": 1
      }
    }
  ],
  "examples": [
    {
      "id": "fm-3v3-100pf-4k7",
      "title": "Fm 3.3 V, four 4.7 kΩ, 100 pF",
      "input": [
        {
          "symbol": "VDD",
          "value": 3.3,
          "unit": "V",
          "display": "3.3 V"
        },
        {
          "symbol": "VOLmax",
          "value": 0.4,
          "unit": "V",
          "display": "0.4 V"
        },
        {
          "symbol": "IOL",
          "value": 0.003,
          "unit": "A",
          "display": "3 mA"
        },
        {
          "symbol": "Cb",
          "value": 1e-10,
          "unit": "F",
          "display": "100 pF"
        },
        {
          "symbol": "mode",
          "value": "fm",
          "unit": "1",
          "display": "fm"
        }
      ],
      "output": [
        {
          "symbol": "Rmin",
          "value": 966.6666666666666,
          "unit": "Ω",
          "display": "966.667 Ω"
        },
        {
          "symbol": "Rmax",
          "value": 3540.658562492623,
          "unit": "Ω",
          "display": "3.54066 kΩ"
        },
        {
          "symbol": "Req",
          "value": 1175,
          "unit": "Ω",
          "display": "1.175 kΩ"
        },
        {
          "symbol": "tre",
          "value": 9.955775000000002e-8,
          "unit": "s",
          "display": "99.5578 ns"
        },
        {
          "symbol": "Isink",
          "value": 0.0024680851063829785,
          "unit": "A",
          "display": "2.468 mA"
        }
      ],
      "computedBy": "i2cPullup"
    },
    {
      "id": "fm-3v3-400pf-empty",
      "title": "Fm 3.3 V, 400 pF — empty window",
      "input": [
        {
          "symbol": "VDD",
          "value": 3.3,
          "unit": "V",
          "display": "3.3 V"
        },
        {
          "symbol": "VOLmax",
          "value": 0.4,
          "unit": "V",
          "display": "0.4 V"
        },
        {
          "symbol": "IOL",
          "value": 0.003,
          "unit": "A",
          "display": "3 mA"
        },
        {
          "symbol": "Cb",
          "value": 4e-10,
          "unit": "F",
          "display": "400 pF"
        },
        {
          "symbol": "mode",
          "value": "fm",
          "unit": "1",
          "display": "fm"
        }
      ],
      "output": [
        {
          "symbol": "Rmin",
          "value": 966.6666666666666,
          "unit": "Ω",
          "display": "966.667 Ω"
        },
        {
          "symbol": "Rmax",
          "value": 885.1646406231557,
          "unit": "Ω",
          "display": "885.165 Ω"
        },
        {
          "symbol": "Req",
          "value": 1175,
          "unit": "Ω",
          "display": "1.175 kΩ"
        },
        {
          "symbol": "tre",
          "value": 3.9823100000000007e-7,
          "unit": "s",
          "display": "398.231 ns"
        }
      ],
      "computedBy": "i2cPullup"
    },
    {
      "id": "two-of-four",
      "title": "Two of four 4.7 kΩ enabled",
      "input": [
        {
          "symbol": "VDD",
          "value": 3.3,
          "unit": "V",
          "display": "3.3 V"
        },
        {
          "symbol": "VOLmax",
          "value": 0.4,
          "unit": "V",
          "display": "0.4 V"
        },
        {
          "symbol": "IOL",
          "value": 0.003,
          "unit": "A",
          "display": "3 mA"
        },
        {
          "symbol": "Cb",
          "value": 1e-10,
          "unit": "F",
          "display": "100 pF"
        },
        {
          "symbol": "mode",
          "value": "fm",
          "unit": "1",
          "display": "fm"
        }
      ],
      "output": [
        {
          "symbol": "Req",
          "value": 2350,
          "unit": "Ω",
          "display": "2.35 kΩ"
        },
        {
          "symbol": "tre",
          "value": 1.9911550000000003e-7,
          "unit": "s",
          "display": "199.116 ns"
        }
      ],
      "computedBy": "i2cPullup"
    },
    {
      "id": "custom-1us",
      "title": "Custom 1000 ns rise (Sm table value)",
      "input": [
        {
          "symbol": "VDD",
          "value": 3.3,
          "unit": "V",
          "display": "3.3 V"
        },
        {
          "symbol": "VOLmax",
          "value": 0.4,
          "unit": "V",
          "display": "0.4 V"
        },
        {
          "symbol": "IOL",
          "value": 0.003,
          "unit": "A",
          "display": "3 mA"
        },
        {
          "symbol": "Cb",
          "value": 1e-10,
          "unit": "F",
          "display": "100 pF"
        },
        {
          "symbol": "mode",
          "value": "custom",
          "unit": "1",
          "display": "custom"
        },
        {
          "symbol": "tr",
          "value": 0.000001,
          "unit": "s",
          "display": "1 µs"
        }
      ],
      "output": [
        {
          "symbol": "Rmax",
          "value": 11802.195208308744,
          "unit": "Ω",
          "display": "11.8022 kΩ"
        },
        {
          "symbol": "tre",
          "value": 9.955775000000002e-8,
          "unit": "s",
          "display": "99.5578 ns"
        }
      ],
      "computedBy": "i2cPullup"
    }
  ],
  "sources": [
    {
      "title": "NXP UM10204 I2C-bus specification and user manual Rev. 7.0 — 1 October 2021, §7.1 Pull-up resistor sizing, Equation (1)–(2), Table 10–11",
      "url": "https://www.nxp.com/docs/en/user-guide/UM10204.pdf",
      "retrieved": "2026-11-14",
      "standard": "UM10204 Rev. 7.0"
    },
    {
      "title": "TI SLVA689A I2C Bus Pull-Up Resistor Calculation, §2 Equations (1)–(6), Table 2-1",
      "url": "https://www.ti.com/lit/an/slva689a/slva689a.pdf",
      "retrieved": "2026-11-14",
      "standard": "SLVA689A"
    }
  ],
  "datePublished": "2026-11-14T00:00:00+08:00",
  "dateModified": "2026-11-14T00:00:00+08:00",
  "author": {
    "name": "Jasper",
    "url": "https://electronics.tools/about/#jasper"
  },
  "relatedTools": [
    "https://electronics.tools/tools/rc-time-constant-calculator/",
    "https://electronics.tools/tools/parallel-resistor-calculator/",
    "https://electronics.tools/tools/series-parallel-capacitor-calculator/"
  ]
}
