---
title: "Select bypass and bulk decoupling capacitors for IC power supply pins. Computes the target PDN (Power Distribution Network) impedance from supply current, voltage, and allowable ripple using Z_target = V_ripple / I_total. Recommends a ceramic bypass capacitor (high-frequency decoupling, placed closest to IC pins) and a bulk capacitor (low-frequency decoupling, near the regulator). Calculates the ceramic cap's self-resonant frequency assuming typical lead inductance, and checks whether ESR-induced ripple stays within limits. Essential for digital, analog, and mixed-signal PCB design. Chain with lc_resonance to verify the decoupling capacitor's resonant behavior, or with trace_width to size the power trace."
method: POST
path: "/api/power_supply_decoupling"
tags: ["pcb"]
---

# Select bypass and bulk decoupling capacitors for IC power supply pins. Computes the target PDN (Power Distribution Network) impedance from supply current, voltage, and allowable ripple using Z_target = V_ripple / I_total. Recommends a ceramic bypass capacitor (high-frequency decoupling, placed closest to IC pins) and a bulk capacitor (low-frequency decoupling, near the regulator). Calculates the ceramic cap's self-resonant frequency assuming typical lead inductance, and checks whether ESR-induced ripple stays within limits. Essential for digital, analog, and mixed-signal PCB design. Chain with lc_resonance to verify the decoupling capacitor's resonant behavior, or with trace_width to size the power trace.

`POST /api/power_supply_decoupling`

## Request

- Base URL: `https://calc.engineer`
- URL: `https://calc.engineer/api/power_supply_decoupling`
- Auth: none declared

## Request body

- object
  - `supply_current_ma` number, required: IC supply current draw in milliamps (mA). Use the maximum or typical from the datasheet.
  - `supply_voltage_v` number, required: Supply voltage in volts (V). Common values: 1.8, 2.5, 3.3, 5.0, 12.0.
  - `switching_freq_mhz` number: Primary switching or clock frequency of the IC in MHz. Determines the target impedance frequency range.
  - `max_ripple_mv` number: Maximum allowable supply ripple in millivolts (mV). Typical: 50 mV for digital, 10 mV for analog/RF.
  - `num_ics` number: Number of identical ICs sharing this supply rail. Scales the total current demand.
  - `esr_mohm` number: Equivalent series resistance (ESR) of the ceramic bypass capacitor in milliohms. Typical MLCC: 5-20 mohm.

## Response `200`

Computed result for power_supply_decoupling

- object
  - `result` object, required
    - `target_impedance_ohm` number, required: Target supply impedance at the switching frequency: Z_target = V_ripple / I_total. The decoupling network must keep PDN impedance below this value.
    - `ceramic_cap_uf` number, required: Recommended ceramic bypass capacitor value in microfarads (uF). Placed closest to IC pins.
    - `ceramic_cap_value` string, required: Nearest standard E12 capacitor value with unit (e.g. '100 nF', '1 uF').
    - `bulk_cap_uf` number, required: Recommended bulk capacitor value in microfarads (uF). Placed near the voltage regulator for low-frequency decoupling.
    - `bulk_cap_value` string, required: Nearest standard bulk capacitor value with unit (e.g. '10 uF', '47 uF').
    - `self_resonant_freq_mhz` number, required: Self-resonant frequency of the recommended ceramic capacitor assuming 0.5 nH lead inductance. Above this frequency, the capacitor becomes inductive.
    - `total_current_ma` number, required: Total supply current for all ICs on this rail.
    - `ripple_at_esr_mv` number, required: Estimated ripple voltage due to ESR at the switching frequency: V = I_peak * ESR.
    - `bypass_adequate` boolean, required: Whether the ESR-induced ripple is within the specified max_ripple_mv limit.
  - `tool` string, required
  - `version` string, required
  - `computed_at` string, date-time, required
  - `chain` object, required
    - `feeds` unknown[]
      - unknown
    - `accepts_from` unknown[]
      - unknown

## Other responses

- `400`: Validation error or invalid JSON
- `404`: Tool not found

---

[API](https://skmtc.dev/calc/apis/calc-engineer-api.md) · [All operations](https://skmtc.dev/calc/apis/calc-engineer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/calc/apis/calc-engineer-api/revisions/8830480ec488?raw)
