What you can do in Electrace
Electrace is the electrical engineer's IDE — a transparent, block-based schematic and PCB tool with live checks, no SPICE required. Here's the lay of the land.
Designing a schematic
- Place blocks. Drag from the palette (left) onto the canvas, or click to add. Blocks are grouped: My blocks, Library, and Connectors.
- Wire terminals. Drag from one terminal handle to another. Terminals are typed (power / rail / signal / gnd) and have a role (in = load, out = driver) — wiring two drivers onto a net flags a warning.
- Functional blocks. A block is a subcircuit, not one part — an oscillator block holds the crystal and its two load caps. Crack any block open (double-click) to see/edit its internal schematic.
- Make your own blocks. Create a block with the terminals you need, then draw its internal schematic (or have Sparky author it from a part number). Expose just the pins the rest of the design connects to.
- Connectors are the board-edge home for off-board nets — USB, barrel jacks, headers, screw terminals, RJ45. Dock a block terminal onto a connector pin.
Checking your work
- Live linting runs on every change — errors, warnings, and notes appear in the bottom panel and on the selected block. Click a finding to jump to the block.
- Acknowledge a finding that's correct-but-noisy (e.g. USB + regulator legitimately sharing a rail) with the mark intended button — it mutes with your reason and stops counting.
- Power budgets (bottom bar) show each rail's load vs the source's capacity.
What the checks mean (and what they don't)
Electrace's checks are structural — not a simulation. They look at how your design is connected and the values you declared, and catch the dumb-but-deadly mistakes: two drivers fighting on a net, an undriven rail, an open/unconnected pin, a power pin tied to ground, a rail drawing more than its source can supply, a polarized part wired backwards.
What they don't do: any analog or time-domain behaviour. No SPICE, no transient/inrush, no thermal, no ripple-current-on-the-caps, no EMI or loop-stability. A clean result means your design is structurally sane — typed-correct and connected as intended — not that it's validated. Component values you (or Sparky) set are starting points; nothing here checks them against a real part's datasheet. Treat a green check as "the first 80% is correct and BOM-ready," then take it to a simulator and a real EDA/PCB review for the analog 20%. The KiCad export is that escape hatch — Electrace never locks you in.
Author a block vs. use a library block
- Use a library block when a stock part fits as-is (a header, a generic passive, a connector).
- Author a block when you need a real part or a functional grouping: an MCU/driver IC (author it from its part number → real footprint + BOM), or a subcircuit like a power stage or oscillator. A block should be a functional unit — fold its support parts (decoupling, gate resistors, shunts, load caps) inside it, and expose only the pins the rest of the design connects to. Don't scatter loose passives on the canvas, and don't leave a block as a hollow shell (it won't reach the BOM).
Outputs
- BOM — built from the real parts inside your blocks; exportable.
- PCB — open the PCB view to get footprints + a ratsnest from your schematic, route traces, run DRC, and export to KiCad.
The symbol library
Passives (R, C, L, crystal, ferrite, fuse…), diodes (incl. Zener, Schottky, TVS, LED), transistors (BJT/MOSFET/JFET), ICs (with full pinouts → real footprints), sources, and electromechanical parts including switches and relays (SPST/SPDT/DPDT/solid-state).
Sparky, your assistant ✨
Open Sparky (bottom-right) to build and reason about your design in plain language. Sparky can place and wire blocks, author a chip from its part number (dropping the real IC into a block with its footprint), add the support parts a block needs, place connectors, run the analysis, read the net graph and power budgets, and explain what's on any net. Start a new chat any time; conversations are saved.