Solve a design
solve_designSolve a design and return node voltages, currents, dissipation, junction temperatures, rating checks and warnings. Solved server-side through the signed-in account: unmetered on Pro and Team; on the Free plan each solve counts toward its 10 a month through connected apps (meta.solvesRemaining says how many are left), and a design has 1 sheet. It takes a design document, a template id, OR a saved design's designId (so a design you saved with create_design is solved at every corner without re-sending it), validates before solving, and names the tolerance corner plainly. Every warning carries a stable code, a level (info | caution | warning | critical), a human label, a message and a remedy saying what to change; summary.warningGroups collapses repeats. Read each sheet's converged boolean — never infer success from the absence of an error. A converter reports TWO efficiencies and they are meant to differ: a node's efficiency is the conversion efficiency read off its own curve at this load point, while summary.stages[].eff is the whole stage, Pout / Pin, which also pays the quiescent current. A 12 V to 5 V buck at 1 A reads 0.920 on the node and 0.910 on the stage, because the 0.060 W its iq draws is real dissipation the curve does not describe. Quote the STAGE figure for a power budget and the node figure when you are describing the part. The full result also gives each SMPS an efficiencyCurve: the curve the solver used, as [outputCurrent A, efficiency 0..1] pairs from 0 to iMax at the solved input and rail (light-load mode and effVin applied), with the node's efficiency on it; compact leaves it out. PREFER compact: true: the full result echoes every node's properties and repeats each warning three or four times, which is 55–70 KB for a 34-node design; compact keeps every solved number and one grouped warning list per sheet at a quarter to a third of the size. For a range of input voltage (a battery from empty to full, a supply across its tolerance) pass sweep: true rather than guessing charge levels: one call, three solved points, counted as one solve.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sweep | No | Solve at three input points in one call: every battery empty (0 %), half (50 %) and full (100 %), every supply at the low end, middle and high end of its voltage tolerance. Use it for "across the battery range" or "at low and high line"; `corner` still applies, so "worst" with a sweep is worst case at low and at high line. Returns `points[]`, each with its inputs (setting, terminal voltage, current), totals, `stages` (with temperature) and grouped warnings; always terse. Counts as one solve. Default false. | |
| corner | No | Tolerance corner. "nom" is nominal values; "min"/"max" push every toleranced value the same way, which is how you find a rail that only fails at one end. "worst" moves each one the way that raises the draw and the heat (loads up, efficiencies down, a switcher's output up, an LDO's down) and holds the input at nominal: minimum efficiency at maximum load. Each sheet's `worstCase.held` lists what it held and why. Default "nom". | |
| design | No | The design document. Give this, `templateId` or `designId`. | |
| compact | No | Return the terse result: solved numbers per node without the property echo, `warningGroups` per sheet instead of the repeated warning arrays, the summary totals and `stages`. Default false (the full result). | |
| designId | No | A saved design's id from create_design or list_designs — needs the signed-in account. Give this, `design` or `templateId`. | |
| templateId | No | A shipped template id from list_templates. Give this, `design` or `designId`. | |
| ambientTemperature | No | Ambient in °C for the thermal estimates. Default is the design's own setting, else 25. | |
| includePortVoltages | No | Include per-port voltages on every node result. Default false. |